arduino-uno - 使用 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 Stack Exchange 的更多信息:伺服器改变旋转需要多长时间?
推荐阅读
- vim - VIM 高亮显示 #IFDEF 和 #IF 语句
- dns - Apache 2 DNS 重定向到内部 IP
- c# - 如何找到与给定向量正交的随机向量
- outlook - Outlook 加载项功能区图标不会仅显示在适用于 Windows 的 Outlook 应用程序上
- postgresql - Hyperledger Explorer 启动失败并进行数据库身份验证
- java - 如何转换此 java 代码以在 MIPS 中对整数进行排序?
- maven - Maven构建可以判断它是否是多模块的
- gssapi - GSSAPI:导入在不同主机上创建的上下文
- java - 插入查询未执行
- node.js - 在特定时间向用户发送多个通知