Arduino旋转伺服

时间:2012-06-16 14:32:04

标签: arduino

我正在尝试使用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);
        }
    }

我需要做些什么才能让他转身?因为现在,它不会移动......

非常感谢!!

1 个答案:

答案 0 :(得分:1)

您的代码有几个问题。你有几个语法错误。

首先,您需要执行#include <Servo.h>并将incomingByte声明为int。您在if条件行中也有拼写错误。

此外,如果键盘未连接到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);
}