用了下面这段代码,通过蓝牙控制舵机,手机上的蓝牙串口软件输入任何字母数字,串口监视器都显示接收到的是“-1 ”?
让串口监视器 显示两个值,上面是舵机所处角度显示的到是正常 ;可下面显示接收到数据 手机端无论输入字母还是数字 都显示-1 ,不知道怎么回事?求解
#include <Servo.h>
Servo duoji; // 创建一个舵机对象
int val = 0; // 舵机输出角度值
int lanya;
int chuankou;
void setup()
{
duoji.attach(9); //定义舵机的引脚为9
Serial.begin(9600); //设置波特率
}
void loop()
{
lanya = Serial.read();
chuankou = Serial.available();
if(chuankou > 0) //如果串口数据大于零
{
while(lanya == '1' && val <= 180)
{
val + 1;
duoji.write(val);//输出指定舵机角度
delay(15);
}
while(lanya == '2' && val >= 0)
{
val - 1;
duoji.write(val);//输出指定舵机角度
delay(15);
}
Serial.println(duoji.read()); // 串口显示读取到的舵机角度
Serial.println(lanya);
}
}
让串口监视器 显示两个值,上面是舵机所处角度显示的到是正常 ;可下面显示接收到数据 手机端无论输入字母还是数字 都显示-1 ,不知道怎么回事?求解

#include <Servo.h>
Servo duoji; // 创建一个舵机对象
int val = 0; // 舵机输出角度值
int lanya;
int chuankou;
void setup()
{
duoji.attach(9); //定义舵机的引脚为9
Serial.begin(9600); //设置波特率
}
void loop()
{
lanya = Serial.read();
chuankou = Serial.available();
if(chuankou > 0) //如果串口数据大于零
{
while(lanya == '1' && val <= 180)
{
val + 1;
duoji.write(val);//输出指定舵机角度
delay(15);
}
while(lanya == '2' && val >= 0)
{
val - 1;
duoji.write(val);//输出指定舵机角度
delay(15);
}
Serial.println(duoji.read()); // 串口显示读取到的舵机角度
Serial.println(lanya);
}
}
