0

I am using a Arduino MKR 1010 Wifi board to control 4 servo (PS-1109MG). All the circuit is powered by 4 AA rechargeable batteries (1.2V * 4). Arduino is powered through the Vin port.

Below is a circuit just to show how they are connected (board type and other details is not correct). circuit

When all the servos move, the arduino's LED oscillates in intensity. I deduced that the servos have a high instantaneous current consumption and the voltage of the batteries drops too much. I measured this with an oscilloscope.

scope image

The voltage drops to around 4V when the servos try to move. When the Arduino MKR is powered from the usb port and the servos from the batteries, everything works fine.

How can I reduce the voltage drop on the batteries, to use them as the only power source? Could I use some electrolytic capacitors to reduce the voltage drop?

Adrian
  • 11
  • 1

3 Answers3

1

You have a 1V drop from about 5V or a 25% load regulation error you know that you have excessive load and for active servos this is a result of the DC coil resistance of the motors that are active.

  • If you knew the motor coil resistance then for a transient servo seek, the surge voltage drop can be predicted from the ratio of the load to total resistance (Load+Rs of batteries)
  • the main Rule of Thumb to learn is the series resistance adds with batteries in series and reduces with batteries in parallel and thus larger capacity. So you expect the product or Rs and Ah to be constant within some family of same chemistry and brand name.

But there may be sources of deviations to test results so the method must be specified or the same to compare.

  • the Rs of batteries rises sharply as state of charge SoC drops below 10% and gradually with repeated sweep tests but lowers gradually with rising temperature.

Let's compare different brands of NiMH (AA vs C) and see how close this is. You can try your own plots to measure the slope of bulk resistance from the VI plots ΔV / ΔI = Rs [Ω]

  1. https://eneloop101.com/batteries/eneloop-test-results/
  2. https://lygte-info.dk/review/batteries2012/Enesense%20C%204300mAh%20%28White%29%20UK.html
  3. http://lygte-info.dk/review/batteries2012/Eneloop%20AA%20BK-3MCCE%201900mAh%20(White)%20UK.html

enter image description here

This means changing these products from AA to C results in 31% Rs which equates to a voltage drop and 226% of the AA's Ah capacity.

Eneloop is known to be a reliable high-performance NiMH brand. Your batteries may have less performance. You can measure your motor resistance and see if upgrading size or quality and/or cost of batteries to get the performance you need.

The LED fluctuation is a different problem from not using a constant current driver.

0

Consider several options:

  1. Larger batteries. The type of battery was not specified. For comparison a NiMH AA is on average about 800 mAh where a NiMH D is on average about 6600 mAh.
  2. Use two sets of batteries. Connect both battery grounds, all the servo grounds and the Arduino ground together. Only connect the positive of one set of batteries to the Arduino. Only connect the positive of the other set of batteries to the servos. Do not connect the positive Arduino terminal with the positive servo terminals!
  3. Using software, only operate one servo at a time. Some (most) servos will stop moving if the position pulse is not seen by the servo.
st2000
  • 7,513
  • 2
  • 13
  • 19
0

Welcome! You picked a good place to connect the batteries when fully charged but it is the wrong place. You can use the Vin pin to Power your Arduino with an regulated or unregulated 7 to 12-volt power source. Like several AA batteries in series or a wall adapter that is in the range of 7 to 12 volts. Alternatively, you can power your Arduino through the 5V pin with an external regulated 5V power supply. Leave the 9V batteries for the smoke detectors they do not work very well.

Gil
  • 1,863
  • 9
  • 17