我使用的是带有Adafruit伺服屏蔽的Arduino-Uno微控制器。要移动速度相当快的0.07秒/60°微型数字伺服电机,需要的角度为:例如,来自C#应用程序:
myport.WriteLine(val.ToString());我使用PWM库:
pwm.setPWM(1, 0, Serial.parseInt());它成功地将电机移动到指定的角度,但我试图弄清楚,如何将伺服电机从一个角度移动到另一个角度,从上传代码完全到达终点。
因此,如果范围的最大值和最小值是:
#define SERVOMIN 160
#define SERVOMAX 500 伺服电机的性能从210到450,这是我的尝试:
pwm.setPWM(1, 0, 210);
delay(12);
pwm.setPWM(1, 0, 450);
delay(12);
pwm.setPWM(1, 0, 210); 这样,电机就不能完成运动,甚至不能进行单向运动而不返回。什么应该是正确的方式,使这样的移动在上传的代码。
任何建议、指南或例子都会很有帮助。
发布于 2019-01-06 14:11:57
你不能这么做。
一般的伺服系统不会对其位置提供任何反馈。这是不可能的软件单独,除非你增加足够长的延迟,以确保它完成移动,即使在负载。
你要么需要另一个伺服系统,要么需要额外的传感器。
更多关于Arduino堆栈交换的信息:伺服改变旋转需要多长时间?
https://stackoverflow.com/questions/54062198
复制相似问题