【发布时间】:2016-08-09 17:54:32
【问题描述】:
我正在开发一个蓝牙控制的 Arduino 机械臂。 我希望当我发送一个整数时,伺服移动,当我发送另一个整数时,它停止。我在论坛上发现的只是伺服移动到特定位置的系统,但我希望它通过增加角度来真正旋转。 这是我的代码,它不起作用:
#include <Servo.h>
int val;
int angle;
int charsRead;
char buffer[10];
Servo servo;
void setup() {
Serial.begin(9600);
servo.attach(6);
angle = servo.read();
}
void loop() {
servo.write(170);
serialCheck();
if(val == 4021){
servo.write(angle++);
delay(50);
}
}
else if(val == 4022){
servo.write(angle);
}
serialCheck();
}
void serialCheck(){
while(Serial.available() > 0){
charsRead = Serial.readBytesUntil('\n', buffer, sizeof(buffer) - 1);
buffer[charsRead] = '\0';
val = atoi(buffer);
Serial.println(val);
}
}
我使用的应用程序基本上在我长按一个按钮时发送'4021',在我释放它时发送'4022'。
我已经为此工作了几个小时,但我在任何论坛上都没有找到遇到同样问题的人...
请帮忙。
【问题讨论】:
标签: bluetooth arduino serial-port continuous servo