2012-06-16 59 views
0

我试图用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

你的代码有几个错误。你有几个语法错误正在进行。

首先,你需要做一个#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); 
} 
+0

伺服未校准,这是问题...感谢您的时间! – francisMi