【问题标题】:servo motor working incorrectly伺服电机工作不正常
【发布时间】:2017-03-01 23:24:06
【问题描述】:

我正在制作一辆通过蓝牙由 Android 应用程序控制的汽车。我在使用伺服电机时遇到的问题是,在蓝牙模块 hc-05 连接到任何蓝牙设备之前,无论是否连接,伺服电机都会旋转。
这是我的伺服电机 arduino 代码:

#include<Servo.h>
Servo servo1;
Servo servo2;
char val;
void setup()
{
  Serial.begin(9600);
  servo1.attach(5);
  servo2.attach(9);
}

void loop()
{
  if(Serial.available())
  {
    switch(Serial.read())
    {
      case 'F':
        servo1.write(180);
        servo2.write(180);
      break;
      case 'B':
        servo1.write(90);
        servo2.write(90);
      break;
    }
  }
}

我不知道它为什么会旋转。这非常令人沮丧。请帮忙。 顺便说一句,我买的伺服电机只能旋转 180 度。但是我通过从内部移除一些部件使其成为 360 度。 如果我的代码有误,请帮助并纠正我。

【问题讨论】:

  • 你的代码看起来不错(这里用一个伺服测试)。您对电机的修改可能是问题所在。我想你想要一个continuous rotation servo。但我不是工程师。您可能会在Arduino 获得更好的答案。
  • 非常感谢约翰尼·莫普的建议。我会尝试用连续旋转伺服来测试它

标签: bluetooth arduino-uno servo


【解决方案1】:

尝试在此处添加:

switch(Serial.read())
- '0'`

喜欢这里:

switch(Serial.read() - '0')

【讨论】:

  • 这似乎不能解决问题,因为switch 只有两种情况FB,并且绝不会将Serial.read() 的输出作为输入提供给任何一个servo.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-24
相关资源
最近更新 更多