arduino串口程序问题

原来是想做一个,可以通过串口通讯的舵机云台。程序如下:#include<Servo.h>Servomyservo1;Servomyservo2;StringinStrin... 原来是想做一个,可以通过串口通讯的舵机云台。程序如下:
#include <Servo.h>
Servo myservo1;
Servo myservo2;
String inString = "";
int R,L;
int flag;
int flagl;
int s;
void setup()
{
Serial.begin(115220);//与遥控端速度要匹配
myservo1.attach(9);
myservo2.attach(10);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
}

void loop()
{
int inChar;
if (Serial.available() > 0) {
inChar = Serial.read();
}
if (isDigit(inChar)) {
inString += (char)inChar;
}
if (inChar== 'R') {
R = inString.toInt();//收到R标志,将收到的数据字符串转为INT型,并赋与R,
inString = "";
}
if (inChar== 'L'){
L = inString.toInt();//收到L标志,则赋于L。
inString = "";
}
myservo1.write(R);
myservo2.write(L);
delay(20);
s = Serial.read();
if(s=='f'){
digitalWrite(2,HIGH);
}
if(s=='g'){
digitalWrite(2,LOW);
}
if(s=='n'){
digitalWrite(3,HIGH);
}
if(s=='i'){
digitalWrite(3,LOW);
}
if(s=='j'){
digitalWrite(4,HIGH);
}
if(s=='k'){
digitalWrite(4,LOW);
}
if(s=='l'){
digitalWrite(5,HIGH);
}
if(s=='m'){
digitalWrite(5,LOW);
}
}
可是测试后不行,控制不了舵机,把:
s = Serial.read();
。。。。
if(s=='m'){
digitalWrite(5,LOW);
}
}
删掉后发现舵机又可以控制了,这是什么原因?怎样才能做到不用删减。求程序。
展开
 我来答
邹嘉进
2015-12-13 · 超过18用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:23.7万
展开全部
原谅我学艺不精,没发现问题在哪,不过你用了这么多if,可以换成switch和case组合,间接很多,说不定问题也可以解决
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式