首页 > 解决方案 > 使用 PWM Arduino 上传代码左右伺服运动

问题描述

我正在使用带有 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);  

这种方式电机不完成运动,甚至单向运动不返回。在上传的代码中进行此类移动的正确方法应该是什么。

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

标签: arduino-unopwmservo

解决方案


你不能。

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

有关 Arduino Stack Exchange 的更多信息:伺服器改变旋转需要多长时间?


推荐阅读