繁体   English   中英

通过树莓派控制伺服电机速度

[英]control servo motor speed by raspberry pi

如何使用带有python的树莓派使伺服电机缓慢达到所需角度? 我试过了,但是似乎不能在所有情况下都起作用。

   p = GPIO.PWM(7,50)
   p.start(7.5)
   def servo(angl) :
       try :
               angle_end = angl 
               for i in range (1,100) :
                   angle_step_to_end = (i *angle_end)/100
                   duty_cycle =(((12.5-2.5)/(180-0) * angle_step_to_end)+2.5
                   p.ChangeDutyCycle(duty_cycle)
       except KeyboardInterrupt :
                           p.stop()
                           GPIO.cleanup()

还有更真实的东西吗?

典型的业余伺服系统设计为尽可能快地旋转到命令位置。 要缓慢移动,必须缓慢更改命令位置。 无需进行大量手动计算,您的代码似乎正在执行此操作。

典型值为每20毫秒(7.5%)大约1.5毫秒的脉冲,以使伺服器在其运动弧中“居中”。 为了达到极限,典型值在一个极限处为1.0毫秒,在另一个极限处为2.0毫秒。

看到7.5是中点,我建议您简单地调用p.ChangeDutyCycle() ,使其值(您希望平滑)在5.0%和10.0%之间变化。 当然,请记住,业余伺服器的开环控制通常由非常便宜的电位计控制,而真正的超精确控制是不可能实现的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM