伺服器通过PWM Arduino上传的代码来回移动

时间:2019-01-06 13:55:41

标签: arduino-uno pwm servo

我正在使用带有Adafruit伺服护罩的Arduino-Uno微控制器。要以所需的角度移动非常快速的0.07秒/ 60°微型数字伺服电机,例如在C#应用程序中:

myport.WriteLine(val.ToString());

我使用PWM library

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);  

这样,电动机将无法完成运动,甚至无法单向运动而无法返回。在上载的代码中进行这种移动的正确方法应该是什么。

任何建议,指南或示例都会很有帮助

1 个答案:

答案 0 :(得分:3)

你不能。

普通伺服器不提供有关其位置的任何反馈。单独使用软件是不可能的,除非您添加足够长的延迟以确保即使在负载下也能完成移动。
您需要其他伺服或其他传感器。

有关Arduino Stack Exchange的更多信息:How long does it take for a servo to change rotation?