PWM Servo driver - PCA9685 - Output Enable

For other supported Arduino products from Adafruit: Shields, accessories, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
charafantah
 
Posts: 3
Joined: Fri Jan 11, 2008 7:27 pm

PWM Servo driver - PCA9685 - Output Enable

Post by charafantah »

Hello,
I am using 2 PCA9685 PWM Servo driver boards connected in chain to drive 30 motors.

They work perfectly when the servos are powered all the time, however, I am trying to use the output enable to keep the motors from "buzzing" between movements. This technique works most of the time.

Sometimes, when I set OE HIGH, some servos move to a different position than the one they were actually set to, as soon as OE is set back to LOW, they move back to their original position.

How can I fix this? Can this be fixed in the code? Do I have to use a relay instead of using OE?

Thank you in advance

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: PWM Servo driver - PCA9685 - Output Enable

Post by adafruit_support_bill »

The OE pin just cuts the signal to the servos, it does not cut the power. Most servos will just stop where they are and stop controlling the motor. But I've seen some that will twitch randomly or continue actively maintaining the last position.

The other thing that might be happening is that the OE pin cuts off in the middle of a control pulse, so the last pulse to the servo is shortened and the servo tries to seek that position. This could be prevented by stopping the pulses by doing a setPWM with 0 for both the start and stop times.

User avatar
charafantah
 
Posts: 3
Joined: Fri Jan 11, 2008 7:27 pm

Re: PWM Servo driver - PCA9685 - Output Enable

Post by charafantah »

Hello,
Thank you. Your suggestion of doing a setPWM with 0 for both the start and stop times seems to work fine, I ran the servos for a couple of hours and I haven't noticed the problem at all

User avatar
RobertDw
 
Posts: 1
Joined: Wed Mar 22, 2017 4:07 am

Re: PWM Servo driver - PCA9685 - Output Enable

Post by RobertDw »

Just reading your question about the PCA9685 chip problem with stopping mid signal and generating a foreign signal that offsets the servo position, I have tried using the setPWM with 0's but it doesn't have any effect .
Is there another method that stops the signal in a non-distorting way ?
I have checked the signal with an oscilloscope and can see the short pulse at the end of the pulse train.
Any help would be appreciated.

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: PWM Servo driver - PCA9685 - Output Enable

Post by adafruit_support_bill »

I don't know of any other ways to stop the pulses. You could check with NXP.
https://cdn-shop.adafruit.com/datasheets/PCA9685.pdf

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Arduino products from Adafruit”