0

我正在尝试使用 Arduino 微控制器转动连续旋转伺服。

当通过串行连接按下右箭头键时,我想将伺服器向右转动 1 度。这是我的代码:

    const int servoPin = 6;
    int incomingByte; 
    Servo servo;
    int pos;

    void setup() {
        Serial.begin(9600);
        pos = 0;
        servo.attach(servoPin);
        servo.write(pos);
    }

    void loop() {
        incomingByte = Serial.read();

        if (incommingByte == 67) {
            pos++;
            servo.write(pos);
        }
    }

我该怎么做才能让他转身?因为现在,它不动了……

非常感谢!!

4

1 回答 1

1

您的代码有几处问题。您有几个语法错误正在发生。

首先,您需要执行 a#include <Servo.h>并声明incomingByte为 int。您在 if-condition 行中也有错字。

此外,如果键盘未连接到 Arduino 板,则无法从键盘读取,除非您在中间有东西可以将键盘数据中继到板。这是您可以开始使用的代码:

#include <Servo.h>

int incomingByte; 
Servo servo;
int pos;
int dir;

void setup() {
    Serial.begin(9600);
    Serial.print("Test\n");

    pos = 90;
    dir = 1;

    servo.attach(9);
    servo.write(pos);
}

void loop() {
    if (pos >= 180 || pos <= 0) { dir = -dir; }
    pos += dir;
    Serial.print(pos);
    Serial.println();
    servo.write(pos);
    delay(50);
}
于 2012-06-16T15:23:03.967 回答