1

我在 Arduino 中使用默认的伺服库。当我的 Arduino Uno 启动并连接伺服电机时,电机将移动其范围的很大一部分。我不能让我的项目发生这种情况,我需要它转动并保持在当前位置。

我也看过这篇文章,但如果我正确阅读它,它适用于不同的图书馆。

4

2 回答 2

3

为什么会出现问题?

RC 伺服系统根据发送给它们的脉冲宽度来设置它们的位置。通常这个宽度在 ~500 - 2500us 的范围内变化,频率为 50Hz。当伺服器接收到这样的信号时,它会转到相应的位置。例如 - 如果它接收到 1500us 宽的脉冲,它将转到中间位置。当您调用时servo.attach(),Arduino 将开始感应DEFAULT_PULSE_WIDTH恰好为 1500us 的脉冲。

对此可以做些什么?

链接问题的解决方案也适用于标准 Arduino 伺服库。找到DEFAULT_PULSE_WIDTH并将其值更改为0。如果没有脉冲,伺服将不会转动。servo.write()Arduino 将在第一次通话后开始发送信号。请记住,在那之前不会有保持扭矩。

于 2016-12-01T08:44:17.943 回答
0

可能的原因

当您的 Arduino Uno 启动时,两件事同时发生

  • Arduino Uno 运行它的引导加载程序并且伺服引脚处于输入模式
  • 伺服器通电并在没有信号的情况下移动一点

引导加载程序完成后,程序启动并执行附加调用。

我可以用我的 Arduino 初学者孩子重现这种效果,它包括便宜的伺服器。

于 2016-12-04T22:36:57.270 回答