我正在尝试通过蓝牙用安卓手机和 arduino 控制伺服,但 arduino 中的数据以字符形式接收,arduino 不知道何时收到所有数据并且伺服无法正常移动。arduino代码是这样的: #include
Servo myservo;
char val; // variable to receive data from the serial port
int ledpin = 13; // LED connected to pin 48 (on-board LED)
void setup() {
pinMode(ledpin, OUTPUT); // pin 48 (on-board LED) as OUTPUT
Serial.begin(9600); // start serial communication at 9600bps
myservo.attach(9);
}
void loop() {
if( Serial.available() ) // if data is available to read
{
val = Serial.read(); // read it and store it in 'val'
}
if( val - 0 >= 0 && val - 0 <= 180){
}
// Serial.print("Recibido");
delay(100); // wait 100ms for next reading
}
我该怎么做才能从"val"中获取正确的值来控制伺服?
如果需要,可以发送多个字符。只需将每个新字符存储到一个数组中,然后对您的 android 程序进行编程以发送指示 val 读数结束的特定字节。
每次执行串行读取时检查此"结束"字节将告诉您此字符是存储还是将以前存储的字符转换为整数或您需要的任何数据类型。
而不是简单地转换该数组会告诉您正确的值。