Go Down

Topic: Arduino internal power supply driving capabilities (Read 2995 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.

GaryY

Have an original homebrew project using the WTV020-SD-16P. The WTV020 3.3V power is provided from an Arduino UNO.  A PIR motion sensor is wired to a TTL NAND gate chip, and interlocked with the WTV020 pin 15 "BUSY" signal.  If the PIR senses movement and the WTV020 is not running, a TTL NAND gate output   wired to WTV020 pin 13 goes to zero, triggering the WTV020 to play the next sound file.  The BUSY signal is also wired to an Arduino input to count & sequence LEDS & animation action.   http://www.youtube.com/watch?v=mVS0TIDwLdM.

A second prototype of this project is in process, using an Arduino 2560Mega instead of the UNO.  Eliminated the TTL HW, direct wire IO to control the WTV020. Have tried 2 different WTV020 modules, both cause the Mega to overheat the 3.3V power supply chip.  A cheap Buck switching power supply is then used to provide 3.3V (from a 5V bulk supply).  The Arduino is fed 12V from a separate supply, COM grounded ( ground prong of 115VAC plug). There is a 5v 5a bulk supply also with COM tied to ground. All COMs are ohm checked to ground.  There was a buzz getting thru the 15W audio amp, adding a series ferrite core choke from the 3.3V supply to the WTV020 squashed the noise. ( Later I also added a 100 mike cap across the 3.3 V supply, and 6 ohm load to ensure continuous current on the 3.3V supply )

Now, the problem: Both WTV020s have somewhat misbehaved. The first WTV020 would lock up if the NEXT pin was grounded while it played. A reset by cycling power or grounding pin 1 would allow it to restart. Still used it to continue working on the project until a replacement arrived.  Once the WTV020 was triggered by grounding pin13, it would not stop at the end of the sound file, it would continue onto the next sound file.

A replacement WTV020 arrived, seemed OK when first tested. Now it does the same thing, once triggered after powerup, it keeps running. Tried using optocouplers ( a 4N35 OMRON 61B1 solid state relay) and then a relay contact to trigger the WTV020, no change. All the WTV020 input pins read the same Vcc 3.3V open circuit. usually when I grounded the pin 13 to trigger , a 1k resistor was in series just in case.
Wondering if I just have bad luck, or if I am missing something in troubleshooting ( been testing things for 2 weeks ). Now waiting for the next WTV020 ordered ( 3rd one) to get here.  The first protoype has a 5V supply from TTL triggering the WTV020 with no trouble. This protoype has no TTL interface, wondering what else could be different between UNO and MEGA, the interface is minimal anyway.......any ideas or experiences ?   
   
   

Go Up