如何在伺服电机上使用 pwm 将度数转换为占空比以实现平稳移动?

How to convert degrees to duty cycles for a smooth move using pwm on a servo motor?

我想用伺服电机从 0 度到 180 度平稳移动,反之亦然。 我只知道三个值: 0 度为 2.5 个占空比,90 度为 7.5 个占空比,180 度为 12.5 个占空比。 我想在所有角度之间平滑移动,所以我想要某种功能 return 每个角度的占空比。我找到了这个函数Dc(d)=d/10+2.5,但是没有用。

我使用这些命令来设置 pwm 引脚

GPIO.setup(servo,GPIO.OUT)
pwm2 = GPIO.PWM(servo,50)

您可以使用以下功能

def get_pwm(angle):
    return (angle/18.0) + 2.5

此函数将为您提供给定角度所需的 PWM。你的问题告诉 0 degrees -> PWM is 2.5, 90 degrees -> PWM is 7.5 and 180 degrees -> PWM is 12.5。这表明PWM和角度具有线性关系。但是当角度为0度时PWM的起始值为2.5。