Go Down

Topic: Arduino internal power supply driving capabilities (Read 2 times) previous topic - next topic

GaryY

My animatronics project will use 3 or 4 servos, several SSRs for LED drivers & other peripherals.

It looks like the Uno can drive 5V @ 40ma per pin, but not to exceed 200mA total for all pins.
The 9g TowerPro SG90 microservos do not specify rated current VS speed / torque . I have 2 servos running direct drive eyeballs from an UNO as a test, so far havent failed anything.  Is there a rule of thumb available about driving servos loads ? Does it make sense to supply servo power separately and just use the PWM output ? ( making sure both supplies reference the same common )

The 3.3 V power supply specs 50mA available, hopefully enough to power a WTV020-16P audio player.

The Mega2560 has alot more IO , still has 40mA per pin limit, and the 5V voltage regulator chip NCP1117ST50T3G is spec'd at 1A max , but with a caveat that it can do 1500mA but may thermally protect itself.

Can the Mega2560 circuit board traces and connectors handle 1 A steady state ?

MichaelMeissner

#1
Aug 21, 2012, 03:51 am Last Edit: Aug 21, 2012, 03:53 am by MichaelMeissner Reason: 1
I believe the conventional wisdom is you should always power the servos separately, though you might get away with it for just a single servo or two.  When you power the servos separately you do want to connect all of the grounds together.  Here is a tutorial I've seen posted before: http://rcarduino.blogspot.com/2012/04/servo-problems-with-arduino-part-1.html.

Now, some shields or Arduino replacements have external power supplies that you can power the servos separately without having to do more wiring.

For example, I believe the DFRobot I/O expansion shield has an external power port specifically for servos: http://www.dfrobot.com/index.php?route=product/product&product_id=264.

Also, DFRobot makes an Arduino clone (Romeo) that has the external power port and 3 pin servo posts directly on the board and does not need a shield http://www.dfrobot.com/index.php?route=product/product&filter_name=romeo&product_id=656ser

The sensor shield V5, which I believe is made by SainSmart, also seems to have an external power port for the servos http://www.sainsmart.com/evaluation-board/atmel-avr-board/sainsmart-sensor-shield-v5-4-arduino-apc220-bluetooth-analog-module-servo-motor-1.html

Note, this note from the Servo documentation:

The Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega. On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on pins 9 and 10, whether or not there is a Servo on those pins. On the Mega, up to 12 servos can be used without interfering with PWM functionality; use of 12 to 23 motors will disable PWM on pins 11 and 12.

retrolefty

#2
Aug 21, 2012, 04:38 am Last Edit: Aug 21, 2012, 04:46 am by retrolefty Reason: 1

My animatronics project will use 3 or 4 servos, several SSRs for LED drivers & other peripherals.

It looks like the Uno can drive 5V @ 40ma per pin, but not to exceed 200mA total for all pins.

Arduino output pin current ratings do not mean anything in the context of driving servos as the output pins just carry the pwm logic control signal and there will be almost no current required by the servo's control input.

The 9g TowerPro SG90 microservos do not specify rated current VS speed / torque . I have 2 servos running direct drive eyeballs from an UNO as a test, so far havent failed anything.  Is there a rule of thumb available about driving servos loads ?
My personal 'rule of thumb' is to always use an external regulated +5vdc power supply to wire to the power wire of any and all servos, and allow one amp of power supply capacity for each servo you plan to drive. You also have to wire this external supply's ground to an arduino ground pin.

Does it make sense to supply servo power separately and just use the PWM output ? ( making sure both supplies reference the same common )

Again the PWM output has nothing to do with the power requirement needed by the servo. A servo has 3 wires, one for +5vdc power, one for a PWM control signal, and one ground wire. The servo power requirement issue has nothing to do with the arduino's PWM output pin.

The 3.3 V power supply specs 50mA available, hopefully enough to power a WTV020-16P audio player.

Check a datasheet for the audio player, it should give you such information about its power requirements. Also older arduino boards had the 50ma 3.3vdc limit as the power came from a very small regulator inside the FTDI USB serial converter chip. Newer boards like the Uno use a dedicated on-board 3.3vdc voltage regulator chip that can provide much more then 50ma of current.

The Mega2560 has alot more IO , still has 40mA per pin limit, and the 5V voltage regulator chip NCP1117ST50T3G is spec'd at 1A max , but with a caveat that it can do 1500mA but may thermally protect itself.

Output pin current draw is not the issue with servos, it's the total current being drawn from the 5V shield pin, which is the +5vdc voltage source coming from either the USB connector (with a 500ma max rating) or the on-board +5vdc voltage regulator if you are using the external power connector (with a somewhat less then 1 amp max rating).

Can the Mega2560 circuit board traces and connectors handle 1 A steady state ?
Yes, but current limit is based on USB or voltage regulator not traces or connector pins.

Lefty


GaryY

Thank you Michael & Left for the great advice.

To summarize, the servo control input is a high impedance {  >5k ? } so the arduino pin load is well under the Arduino pin's max rating.

The servo power needed is highly variable, even with small micro servos. The plastic gears may be stickier, stiffer & spongy than the metal ones, acceleration and sudden direction change highly impacts the needed torque current to where it could easily exceed an UNO's available 5V power of 200 mA even with one servo.

I had wired a12V 3A power supply and a 5V 4A power supply for my project. After thought and advice, will use the 12 V to power the arduino & audio amps, the 5V supply will be used for servos and LEDs.

Thanks for the shield recommendations, too.

 


 

GaryY

I've powered a WTV020-SD-16P  from the Arduino 3.3 V power supply. Is there any concerm driving serial lines or the discrete control inputs of the WTV020 from the 5V Arduino ?  Is there a suggested series resistance , voltage divider , or optical isolation from Arduino outputs to the WTV020 inputs ?

I tried moving the solder jumper on the WTV020 to 5V from 3.3 V , and it didnt work, so I had to put it back.

Go Up