My Servos Won't Move

So you're saying I should return the wire and get one thats 15A instead, and that I should buy a new servo driver that can handle 15A? Someone else here said I should omit the driver entirely, so what would you suggest I do to power all the servos?

So are you saying that for the servo driver instead of connecting the power through the green part with the two screws, I should instead use m to F wires, and have the red wire attach to the V+ pin on the side of the driver, and have the black wire attach to the GND pin? Or would you suggest I throw out the servo driver entirely and try something else?

So would you suggest I try connecting the power directly through the V+ and GND pins on my current driver, or to buy a new servo driver off of amazon?

  • Suggest you make up 6 power cables to an external 5V to 6V power supply.
    Power supply current rating matches 6 servo load current requirement.
  • The servo signal pins connect directly to the Arduino output pins.
  • Of course the Arduino GND needs to connect to the servo power GND.

I'm saying that those wires are too thin to carry that current.
Replace them with two short (5cm) pieces from an old cut mains power cord, or something similar that is thick enough to carry 10A.
Try the way you did before and only move the red power wire to V+ if/when the tiny mosfet should burn.
Try with four servos and your 10A supply first.
Leo..

Your questions regarding my post #19 in this thread lead me to suggest that you read the post more carefully. That is, read the entire sentence.

double check that none of your jumper wires are damaged and make sure all grounds (Arduino, PCA9685, and your 5V supply) are connected together. Without a common ground the servos won’t move at all.

If the wiring is good, try running this test code

#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver board1 = Adafruit_PWMServoDriver(0x40);       // called this way, it uses the default address 0x40   
#define SERVOMIN  125                                                 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX  625                                                 // this is the 'maximum' pulse length count (out of 4096)
void setup() {
  Serial.begin(9600);
  Serial.println("16 channel Servo test!");
  board1.begin();
  board1.setPWMFreq(60);                  // Analog servos run at ~60 Hz updates
}
void loop() 
  { for(int i=0; i<8; i++)
      { board1.setPWM(i, 0, angleToPulse(0) );}
    delay(1000);
    for( int angle =0; angle<181; angle +=10)
      { for(int i=0; i<8; i++)
          { board1.setPWM(i, 0, angleToPulse(angle) );}
      }
    delay(100);
  }
int angleToPulse(int ang)                             //gets angle in degree and returns the pulse width
  {  int pulse = map(ang,0, 180, SERVOMIN,SERVOMAX);  // map angle of 0 to 180 to Servo min and Servo max 
     Serial.print("Angle: ");Serial.print(ang);
     Serial.print(" pulse: ");Serial.println(pulse);
     return pulse;
  }

This code sweeps up to 8 servos from 0° to 180° and prints out the pulses being sent. If everything is wired right, you should at least see your servos twitch.

Also, check out this article for a detailed walkthrough: PCA9685 Multiple Servo Control using Arduino – CircuitDigest