Controlling Servos using Shift Registers

Hi All,

I'm new to electronics. I'm having Arduino Uno. I have to use 10 servos for a bot. I researched around this forum and found out that's not possible if I use shift registers and servos need PWM for input.

I tried the following scenario.

  1. Connected Arduino PWM (9) pin to one of the breadboard terminal. By this way I can supply PWM to Servos.

  2. Used the Shift Registers pin as +ve to Servo and grounded servo as well.

It doesn't work any way. But when I just connected to constant power supply to servo, it works.

I thought the Registers where not able to provide enough supply voltage to it and used relay with external power supply. Input to relay comes from shift registers. It also doesn't worked.

I want to know what have I done wrong?

Thanks,
Santhosh

When you said you used pin 9, were you using an analogWrite, or were you using a Servo library write?

analogWrite uses a higher frequency than most servos can cope with.

I used Servo Library Write.

The PCA9685 can control up to 16 servos (per board).

Adafruit PCA9685.
(second small picture).

Also available on ebay.
PCA9685 servo or LED driver.
Leo..

PCA9685 looks cool. Can anyone please share the code for that?

All the info is on that Adafruit page I linked to.
Libraries, tutorial, etc.
Leo..