Arduino的控制(四):arduino串口通信收到相应命令并执行
在arduino中使用Serial.parseInt()函数读取字符串数字(int整型);重点:arduino 字符解析,点击我吧
#define CLK 13
int i;
void setup() {
pinMode(CLK,OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0){i = Serial.parseInt();//读取串口缓冲池字符串中的数字Serial.println(i);if(i==8){for(int j=0;j<10;j++){digitalWrite(CLK,HIGH);delay(500);digitalWrite(CLK,LOW);delay(500);}}}
}
控制效果
①当arduino收到串口数据为"SVK100P"时,LED灯开始以间隔100毫秒闪烁;②收到"SL"时LED-13常亮;
#define LED_13 13
String inData;//dingyi
String function;void setup() {
Serial.begin(9600);
pinMode(LED_13,OUTPUT);
}void loop() {while(Serial.available()>0){ char recieved = Serial.read();inData += recieved;delay(100);//Serial.println(inData);调试程序使用的if(recieved == '\n'){//Serial.println("laile");function = inData.substring(0, 2);//Serial.println(function);if(function == "SV"){//Serial.println(function);int Start_pos = inData.indexOf('K');//在数据集inData中搜索到‘K’的位置int Stop_pos = inData.indexOf('P');int Freq = inData.substring(Start_pos+1,Stop_pos).toInt();//‘K’后面的是闪烁间隔时间,转为int型for(int i=0;i<10;i++){digitalWrite(LED_13,HIGH);delay(Freq);digitalWrite(LED_13,LOW);delay(Freq);}}if(function == "ST"){digitalWrite(LED_13,LOW);}if(function == "SL"){digitalWrite(LED_13,HIGH);}else{inData = "";}}
}
}```
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
