我正在尝试使用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);
}
}
我需要做些什么才能让他转身?因为现在,它不会移动......
非常感谢!!
答案 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);
}