Take the 2-minute tour ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

I have built a standalone Arduino device which has a few buttons, LED's and one servo. I also have a power source which on the casing says 4.9VDC ~ 700mA. (Actual reading is 5.7V). This power source worked for a whole year non-stop powering my Arduino UNO at 9 meter length with two solid core wires. [See below.]

Now I built this device to be standalone and also to use a more neat wire. If I use the dual-wire the device gets powered, but malfunctions. If I connect the device directly to the source and skip the extension, it works fine - this brings me to the conclusion that is in fact the wire. The voltage on the other side of the extension seems normal, so I guess it is the current that drops to below required?

What type or sort of wire can I use to prevent to much power loss and to power my device at 9 meters? - obviously as thin and neat as possible.

UPDATE

I investigated the "malfunctioning" and it seems as if the board resets the every time when the servo moves. As if the servo is draining the current or if the servo causes a major voltage drop.

Voltage on both wires are the same on the end as at the source without anything connected and with the device running (without the servo moving).

The Power source:

Power source - Motorola Cell charger

The old but working solid core wire:

Old solid core wire

The new but not working dual wire:

New Dual-wire

share|improve this question
    
Malfunctions how? what's the measured voltage at the board when powered, on both cables? –  Passerby Jan 10 '13 at 17:46
    
@Passerby check the update. –  LouwHopley Jan 10 '13 at 18:05
    
So no difference in voltage (no significant voltage drop) with either cable, powered or unpowered? How much current does the board take, with and without the servo? If the difference is only with the servo load, the wire could have a cut or nick inside that reduces the available current. Hook up a multimeter in current mode to check. –  Passerby Jan 10 '13 at 18:10
    
What are the current requirements of your servo? How have you routed the power rails in your circuit? What filtering capacitors do you have, and where are they? How are you regulating the voltage? What does the power rail at the microcontroller look like on an oscilloscope? –  Phil Frost Jan 10 '13 at 18:36

7 Answers 7

up vote 2 down vote accepted

Thicker wire has lower resistance per unit length. So thicker cross-section (i.e. AWG) wire should give you less resistance. A good reference for wire gauge recommendations for current requirements is http://www.powerstream.com/Wire_Size.htm. So based on that, I would recommend no thinner than 22 AWG wire for power transmission.

share|improve this answer
    
Wire will help, but wire alone is probably not the solution. –  Chris Stratton Mar 13 '13 at 15:40

Your servo is pulling too much power from your Arduino every time it moves, causing your Arduino to reset. You can use some smoothing capacitors to store some extra charge for quick use (although I've never tried this myself), or you can hook up an extra set of batteries/power adaptor for the servo.

Connect the +ve and -ve power from the extra batteries to your servo, and the -ve of the extra power to the -ve of your original power supply (so that the servo positioning signal from the Arduino can ground back to the original supply).

I have a photo of how I have this set up on my site, along with a description of how I set it all up.

share|improve this answer

I wouldn't be so quick to conclude the problem is the wire. A fatter wire may have a lower resistance and mask more fundamental design issues. Have you included any capacitors to filter your input power? Have you inspected your power rails with an oscilloscope?

A thinner or longer wire, with its higher impedance, will degrade the voltage regulation and transient response of your power supply (since it can't know what's happening at the far end of the wire), but with sufficient filtering, it's unlikely to cause the serious issues you describe unless you really use the wrong wire.

share|improve this answer
    
See the wire in the images. It works perfectly if I connect my device 30cm away from the source, but not 8m. I do have 47uF cap(s) tried with one cap and no regulator and tried with cap-regulator-cap. Both work on short range. –  LouwHopley Jan 10 '13 at 18:07

As vicatcu mentions, a wire with a smaller cross section will have higher resistance. The resistance of a wire (with a given cross section) increases with length. The voltage drop across the cable is given by Ohm's law as V = IR. So, the voltage drop is current dependent. To see the voltage drop effects at the far end of the wire, you must measure the voltage under load. Perhaps you did not see a voltage drop because your Arduino was unconnected or was not running under full load when you measured the voltage. It is also possible that your device presents a time varying load (pulses for the servos?). Load current spikes could cause quick voltage drops that your meter may not be able to capture.

share|improve this answer

Regardless of whether the wire registance is a problem or not, I think it is worth mentioning, that given equivalent wire size (thickness), stranded wire (paradoxically, perhaps) conducts better than solid wire. Therefore, in conductance calculations, whether the wire is solid or stranded needs to be taken into account as well.

share|improve this answer

You have a classic "ground loop". The high current to the motor is running on the same wire as the Arduino supply, and when the motor causes a big voltage drop the Arduino resets.

Solve it like this: Make two runs of wire to the adapter. Power the Arduino with one, and the servo with the other. Then, the wire to the servo can drop several volts without causing the Arduino to brownout. This gets your circuit functioning without requiring giant wire gauges or similar heroics.

share|improve this answer
1  
No, that is not what the term "ground loop" means. That has to be one of the most misunderstood and mis-blamed terms in armchair electronics. –  Chris Stratton Mar 13 '13 at 15:39
    
Please explain. –  markrages Mar 13 '13 at 16:56

Unless you are bypassing the regulator, ~5v is well below the designed input range of the Arduino.

You would be better off running a higher voltage over the long cable run, and using separate local regulators for the servo and arduino (the latter already has one on board of course).

A modification of this idea would be to run the AC mains to the device (with code compliant wiring of course!), and place the power supply there. And perhaps choose a more appropriate power supply while you are at it.

If you really want to run the arduino off that supply, you might consider switching to a 3.3v regulator and lowering the clock speed accordingly.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.