Found some help on Adafruit's site - turns out there's some code in the default program that blocks if there's no USB connection, specifically
kbd = Keyboard()
Commented that out and now it runs without USB connection.
3 different ways to power the Mega2560 besides connecting to a PC:
7.5V to 12V 'wallwart' supplying DC to the barrel jack.
5V wallwart connected to the USB port.
5V wallwart connected to the 5V/Gnd pins on the Power header.
I assume you are powering the Nano through VIN or USB, and you are then powering the LED strip from the Nano's 5V pin.
From the 12V battery the current flows through an LM1117 linear voltage regulator. Draw too much current (>800mA) and it will overheat and either shut down (if it's a good one) or melt (if it's an inferior Chinese clone).
From USB the ...
You asked: "Do I need a mosfet considering I'm only using a one color LED strip?"
Yes, absolutely. An Arduino logic line can only put out about 20 mA of power at 5V. That's not an unreasonable amount of power for a single low-power LED. An LED strip is likely to draw a lot more current than that, and it's pretty common for LED strips to use 12V, not 5V.
Setting up the power supplies
As Gerben already stated in the comments, a 9V block battery isn't capable of supplying enough current for the thermal printer, so you cannot simply use one of them (these are meant for low power applications, like a smoke alarm). There are many different types of batteries, that you can use for this. Probably some kind of LiPo ...
I remember Answering similar question somewhere. Do not worry about Arduino sharing 12V supply with LEDs. Any supply with CE mark (I would have expected that to be standard in Russia and nearby countries) would be unlikely to spike above the means of arduinos voltage regulator.
There is a small chance that your supply may assume the consumption is too low ...
Here is a test sketch that I wrote for a different question. The other question's requirement was for a short press (minimum 100ms) to turn on an LED, and a long press (1 second) would turn it off. With a slight modification of this sketch, it may work for you. You will need to install the Bounce2 library.
// Press and hold button for 100 ms to turn LED ON.
In the graphs they've got 2.5mA tops, so you've got about 2mV on that 1.2R shunt resistor.
And Uno's default ADC reference is 5V divided into 1024 steps each of them roughly 5mV. That's more than peak value of measured voltage.
And with such small sampling frequency you won't be even able to spot fast changes as you'll be measuring much slower that it ...
It seems, that the Sim800 module is drawing too much current, when you start it again. The voltage drops and the Arduino/Sim800 stops working.
This datasheet of the Sim800 states, that it can draw up to 2A when doing a sending burst. An USB port on a computer can provide up to 500mA and you can draw between 200mA to 1A from the Arduino's 5V pin (depending ...