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

Posted

技术标签:

【中文标题】如何在伺服电机上使用 pwm 将度数转换为占空比以实现平稳移动?【英文标题】:How to convert degrees to duty cycles for a smooth move using pwm on a servo motor? 【发布时间】:2018-02-24 20:59:05 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

您可以使用以下功能

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。

【讨论】:

这是我的荣幸

以上是关于如何在伺服电机上使用 pwm 将度数转换为占空比以实现平稳移动?的主要内容,如果未能解决你的问题,请参考以下文章

怎样利用51单片机发生PWM,通过调节PWM的占空比控制可控硅调节电机转速,使转速平稳?

pwm的频率和占空比之间的关系?

51单片机实现pwm对电机调速

PWM的占空比如何计算求得

如何通过调节PWM的占空比来调节电压

verilog编写可调PWM波形