如何在伺服电机上使用 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。
我想用伺服电机从 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。