I have an Arduino Mega (ATMega 1280) and I'm running a sketch on it to control a quadcopter. The sketch is, I guess, fairly intensive, as it involves running Serial2 and Serial3 at 57600baud while controlling four servos using the Servo.h file that comes with the Arduino software.
After the program runs for like 10-20s, the "L" light comes on and stays constant, and the board freezes. What happened?!?!
Note: I had been running the Arduino with a 4.8v battery connected to a shield, so it wasn't going to the power pins directly, but into the positive and negative ends of a digital pin. Is this what messed it up?
It ran fine for a long time like this, but then recently, any method of powering it has just failed.
The board seems fairly fried...so I need some alternatives or solutions...or I am dead because this is my senior project and it's due in a month.
So, please respond so I can get this thing running!!!!!!!
Note: I had been running the Arduino with a 4.8v battery connected to a shield, so it wasn't going to the power pins directly, but into the positive and negative ends of a digital pin.
This doesn't make much sense. Pins don't have positive and negative ends.
You never connected your battery to 5V and GND of the Arduino?
Oh, sorry. I have a sensor shield which allows me to connect devices like servos using the servo connectors. I connected the battery to the negative side, which would be the board's main ground, and the positive connected to the digital pin.
So you are back-powering the Micro / Arduino and wondering why it doesn't work? Here's a tip: You must properly connect power to electronic devices if you expect them to function.
Right, well it has functioned for about 5 months like this with no mishaps, so I assumed it was OK. I understand that may have been naive. I just need an answer as to if I need to get a new board or how to fix this one.
I connected the battery to the negative side, which would be the board's main ground, and the positive connected to the digital pin.
Do you really mean... I connected the battery's negative termianl to a ground pin on the shield, which would be the board's main ground, and the battery's positive terminal connected to the shield's +5vdc pin ? Anything else won't work.
You can't power the arduino by connecting +5vdc battery power to a digital I/O pin.
sprinjer1:
If you connect the positive side to a digital pin and the negative side to the ground, the board turns on. It has done this for 5 months for me.
That was probably powering the board via a 'backdoor' circuit through the I/O pin's clamping diode and has probably burned out the I/O pin you were using. Power the shield/board properly and it won't burn out. What gave you the idea to try and wire it like that?
I had worked with r/c equipment. The receivers used can be powered from any set of pins on them, and I figured this worked the same way, which it did. The biggest problem is that I don't know what the "L" light means. I already ordered another Arduino Mega (the newer one) because of time constraints. I can't spend more time on this one. I need to know what the light means, though, so I don't make the same mistake with the next board, though I won't be powering it the way I have been.
sprinjer1:
I had worked with r/c equipment. The receivers used can be powered from any set of pins on them, and I figured this worked the same way, which it did. The biggest problem is that I don't know what the "L" light means. I already ordered another Arduino Mega (the newer one) because of time constraints. I can't spend more time on this one. I need to know what the light means, though, so I don't make the same mistake with the next board, though I won't be powering it the way I have been.
L just stands for light. It's an led wired to I/O pin 13, and it means whatever your running program wants it to mean.
I too have worked with R/C equipment and the receiver servo output pins were three to a position and are called ground, signal, and +5vdc power. And you could power the whole system by having +5vdc battery power wired to any of the ground and + power pins. But what you tried to do with your arduino was as if trying to power your r/c system by wiring the battery ground to servo ground pin and battery positive to one of the servo signal pins, see the difference/error there?