伺服电机不当行为

时间:2017-01-23 07:18:29

标签: bluetooth arduino arduino-uno servo

我正在尝试制作一个自动门,通过蓝牙接收命令时打开/关闭门。

我想要伺服的全部是:

  1. 继续稳定地为Arduino供电。 (目前它旋转到一定角度并重新启动Arduino)。

  2. 从0度旋转到90度并停止,接收到另一个命令时,它应该从90度旋转到0度并停止。

  3. 这是我的代码:

    {{1}}

1 个答案:

答案 0 :(得分:1)

  1. 这是伺服电子设备的特征。在上电之前或在几毫秒的上电期间将PWM信号提供给伺服。如果你想继续使用Arduino,引导加载程序会等待几秒钟,在此期间伺服没有信号,所以添加一个晶体管来切换伺服电源,这是启动代码中的最后一件事。如果您可以直接编程微控制器并移除Arduino引导加载程序,那么微控制器应该足够快地开始执行您的伺服控制,以免产生明显的毛刺。在任何一种情况下,伺服仍会跳到你在启动时告诉它的位置而不是随机位置;你可以保存EEROM中的最后一个指令位置,这样跳跃就不那么明显了,但是当没有动力时,如果机械加载伺服会移动,所以可能仍然会有跳跃。没有办法说“保持现状”。到RC伺服。
  2. 你的val == 'i'val == 'j'分支将伺服快速移动到零,然后从90缓慢旋转到零或零到90.记住你所处的位置并且不要移动到零之前从那个位置移动到所需位置。
  3. 在机械方面,由伺服库控制的伺服系统不太可能足以打开或关闭正常门;如果它是一个玩偶房子或猫皮瓣的门,你会没事的,但除此之外你应该使用更强大的执行器和终点挡板和一些力传感器,这样你就不会压垮人。