Arduino串口通信---利用串口控制led亮灭

Arduino串口通信---利用串口控制led亮灭,第1张

直接上代码(注释已经很详细了):

String val="";//接收串口发送过来的值
int led = 13;//13号引脚为Arduino板载的LED

void setup() {
  Serial.begin(9600);//设置波特率
  Serial.println("请输入你要发送的数据:");//提示字符
  pinMode(led,OUTPUT);//设置led管脚为输出模式
}

void loop() {
  while(Serial.available()>0){//检验在串口缓存区中是否有数据,如果有则返回1,没有就是0.
    val += char(Serial.read());//Serial.read()一位一位的从串口缓存区里读数据
    delay(20);
  }
    //读取电脑传来的数据
     if(val.length()>0){
        Serial.println("val:"+val);
     
     if(val.compareTo("open")>0){//如果发送过来的指令是“open”,则打开LED
       digitalWrite(led,HIGH);
       Serial.println("LED已经点亮!");
       delay(1000);//led持续亮1秒
     }
     
     if(val.compareTo("close")>0){//如果发送过来的指令是“close”,则关闭LED
       digitalWrite(led,LOW);
       Serial.println("LED已经熄灭!");
     }
   }
   val = "";//清空,重新读取
}

要注意的是,在Arduino中,字符串的比较不能直接用==来进行比较,而要用字符串比较函数来比较(这里我用str1.compareTo(str2)函数),如果两字符串相等,则返回的数是大于0的,如果不相等,返回的数小于0,可以自己串口输出验证一下。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/733246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存