Electrical – Running 18 servo motors on a Hexapod

arduinopowerrobotroboticsservo

I am working on a hexapod robot that has 18 servo motors(HS-475HB).

My problem is that when I use one servo, the current is about 0.7A at 6V (when moving the servo from its position), when I add more servos the current drops and by the end I get 6 motors running on 0.5A.

The torque that these motors provide is not enough to lift the robot and I could not figure out a way to fix it.

I tried with different power sources for every 3 motors, and the final result was the same, low torque and the robot cannot stand. I also tried with lithium batteries, tested them on 1 ohm resistor and the current was at 2.7A, but for the robot it couldn't go above 0.5A. Another thing was to check the duty cycle, since I was using software PWM from Arduino Mega I thought maybe something was wrong with that and I checked that it was fixed, then I used ESP32 which has hardware PWM on all the pins.

I tried everything I know already but it doesn't solve the problem, can anyone suggest any other ways to fix this issue.

Best Answer

Try creating a delay between each change in servo control (if you're running them sequentially and not all at the same time) and gradually decrease the delay time. Determine how long it takes for a servo to actually stop drawing current once it's in position. Perhaps there is a back EMF if there isn't any internal circuity to protect against that. Multiplexing the control by only allowing a few degrees at a time for each servo could fix it.