The PCA9685 allows the user to operate 16 servos with only 4 wires to the Arduino. Vcc, Ground, Data, & Clock. All control is accomplished from within the parameters of the function used to move the servo.

Multiple PCA’s can be daisy chained to increase the amount of PWM outputs by using the address pads as noted in the video.

The original code used pushbuttons instead of a toggle switch to actuate the servos, pressing the button would drive the servo in one direction, releasing the button would return the servo to the original position. With an On-Off Toggle switch, the servo would be held in position for each direction.

Below is the revised code which allows the servo to stay in each position with each push of the button.

Much better for push button operation

Updated Code To Hold Servo In Position With Each Press Of The Button

There have been many people asking; How do you slow down the speed of the servo? I’ve tried several ways to slow down the servo speed since I first published the video, but have been unsuccessful. It’s very easy to slow down the speed of the servo without the PCA9685, but with the library, there are no easy methods for this to happen.

Recently I’ve been introduced to a few procedures that are claimed to work, only one of those I actually saw work properly. This was published by Hans Tanner shortly after my video came out.  Since he was highlighting a device he offered, the search for slow servo never showed up his video.  He recently contacted me on another video when I talked about another procedure.

The only way I have found to slow down the servos since then with the PCA9685 is with the code used in DCC-EX Command Station.