通过覆盆子pi控制伺服电机速度

时间:2017-07-05 20:00:43

标签: python raspberry-pi

如何使用覆盆子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()

有更真实的东西吗?!

1 个答案:

答案 0 :(得分:0)

典型的爱好舵机设计为尽可能快地旋转到指令位置。要缓慢移动,您必须慢慢改变命令位置。如果不进行大量的手动计算,您的代码就会出现这种情况。

典型值是每20毫秒(7.5%)左右1.5毫秒脉冲到#34;中心"伺服在其运动弧线上。为了达到极限,典型值在一个极端为1.0毫秒,在另一极端为2.0。

看到7.5是中点,我建议您只需调用p.ChangeDutyCycle(),其值(按您想要的顺利)在5.0%和10.0%之间变化。当然,请记住,爱好伺服系统的开环控制通常由一个非常便宜的电位计控制,并且超精确控制并不是真正可以实现的。