伺服响应伺服测试仪,而不响应微控制器。信号看起来一样
我有一个TowerPro MG90D伺服器(制造商链接)(ServoDatabase Link)。 它具有180度范围(非连续)。 它对我的伺服测试仪反应很好: 在测试仪上观察以下7%的占空比(大约90度): 伺服响应良好。 但是,当我servo.write()与Arduino Mega 2560克隆一起使用时,伺服器不会响应任何角度输出。我还有其他几个伺服器,它们在相同的引脚上使用相同的代码也可以正常工作。 使用以下命令在Arduino上观察以下7%的占空比servo.write(90): 没有反应。伺服是“一跳”;它没有担任任何职务。 在写这个问题时,我想到了尝试servo.writeMicroseconds()。 这里是servo.writeMicroseconds(1450): 伺服响应! 这是servo.writeMicroseconds(1472)(工作中),其时间间隔与prevoius非工作中相同servo.write(90)! servo.writeMicroseconds(1550) (工作中): 有什么区别? 伺服测试仪的工作频率servo.write()为49.5Hz ,而失败的频率为49.9Hz。我想知道0.4Hz是否会有所不同,但是后来我看到它servo.writeMicroseconds()也以49.9Hz起作用。 在上面的范围捕获中,可以看出两者servo.write(90)和servo.writeMicroseconds(1472)具有相同的时间间隔: 1,474,560ns HIGH 18,544,640ns LOW 信号是如此相似... 是什么原因导致servo.write()无法工作? 我的代码是尽可能基本的: #include <Servo.h> Servo serv1; void setup() { serv1.attach(3); // Pin 3 } void loop() { serv1.write(90); // No response delay(3000); serv1.writeMicroseconds(1472); …