Working on a school project that is due soon. I am pretty new to the Arduino. I am using the Mega 2560.
I am attempting to drive 4 ESC (electronic speed controllers) that in turn drive brushless DC motors. The ESCs have their own large battery power source, but to control the motors you need to supply a servo signal to them (as well as ground).
Here's my problem: I can't get all 4 working at the same time. I can get 3 working, but the 4th (let's call it D out of A,B,C, and D) won't work. If I unplug some of the others, then motor D will work but not the others (obviously).
The ESCs have 3 wires- signal, power, and ground. I have only been using 2 of the 3 wires (signal and ground) and this has worked fine for 3 of the controllers but not all 4.
If I plug in the Arduino 5V to even 1 of the ESCs, the arduino lights turn off and it's almost dead- I assume the controller is drawing way too much current.
Update: Was able to get all 4 running using analog output pins 3,4,7, and 10. I have no clue why, but God knows I'm not changing my setup from here unless I know exactly what's behind this mysterious behavior.
If I plug in the Arduino 5V to even 1 of the ESCs, the arduino lights turn off and it's almost dead
You are not supposed to plug the OUTPUT of the ESC 5V regulator (called a BEC) into the OUTPUT of the arduino 5v regulator.
ESC Basics review.
The ESC has an onboard regulator (BEC) but the that regulator get's it's input from the motor battery which is why when you build a Quadcopter (or use a BEC : Battery Eliminator Circuit ) in your model airplane , if you fry your ESC by trying to be TOP GUN, the BEC will power your servos so you can land. Without the added BEC, you could fry your ESC and loose servo power. Point being that when you have more than ONE ESC running off the same power source (battery) you have to cut all but one +5V line so that only one of the ESC's will provide power to the receiver. ( because you don't want multiple regulator outputs tied together. )You need to explain if you have them wired correctly. If you are connecting them to the arduino you don't need the +5V from the ESCs because that is an OUTPUT. As you mentioned they have their own power source which normally has one purpose and one purpose only and that is to power your receiver and servos , which don't exist in this case so NONE of the +5V (red wires) from the ESC connector need to be connected to anything because you don't have any servos or a reciever.. The RED wires are not power INPUTS they are power OUTPUT to power servos. Cut all of them. (THE RED WIRES)
There should be no reason to use analog pins to get your 4 ESCs working. As far as the Arduino is concerned an ESC is the same as a servo.
You just need to connect each ESC ground to the Arduino ground and then the ESC signal wire to the appropriate Arduino pin that is designated with servo.attach(). As @raschemmel says, there should be no other connection between the ESCs and the Arduino.
BEFORE YOU CUT ANYTHING draw a diagram of how you have everything connected and post a photo of it here. And, if the unwanted wire ends are at risk of causing a short circuit wrapping some insulating tape around them would be less drastic than cutting them off.
I appreciate the replies guys. I have heeded your advice and am doing nothing with the ESC 5V outputs. I am only wiring the ESCs with signal and arduino common ground. However I can still NOT get all 4 to run at the same time. Only 3 will work- if I unplug one, then mysteriously the 4th motor now works. It honestly makes no sense at all.
It just sounds like your power supply is not up to taking that much current.
If it is rated within the current limits then try some bulk decoupling capacitors on each ESC 47uF upwards.