使用 PWM Arduino 上传的代码从一侧到另一侧进行伺服运动

Servo movement from side to side with PWM Arduino uploaded code

我正在使用带有 Adafruit 伺服扩展板的 Arduino-Uno 微控制器。要以所需的角度快速移动 0.07 sec/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);  

这样电机在没有return的情况下不完成运动甚至单向运动。在上传的代码中进行此类移动的正确方法应该是什么。

任何建议、指南或示例都会非常有帮助

你不能。

普通舵机不提供任何位置反馈。仅靠软件是不可能的,除非你添加足够长的延迟以确保它即使在负载下也能完成移动。
您要么需要不同的伺服系统,要么需要额外的传感器。

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