好吃的粽子 2023-06-22 10:49 采纳率: 50%
浏览 10
已结题

arduino无法正确运行无反应求帮助

arduino无法正确运行无反应求帮助


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

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

void loop() {
    //读取电脑传来的数据
     val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val。
 
     
     if(val=="a"){//如果发送过来的指令是“open”,则打开LED
      Serial.println("扫描中"+val);
       digitalWrite(led,HIGH);
       Serial.println("LED已经点亮!");
      //led持续亮1秒
     }
     
     if(val=='b'){//如果发送过来的指令是“close”,则关闭LED
       digitalWrite(led,LOW);
       Serial.println("LED已经熄灭!");
     }
     if(val=='R'){//判断接收到的指令或字符是否是“R”。//如果接收到的是“R”字符
    digitalWrite(led,HIGH);//点亮数字13 口LED。
    delay(500);
    digitalWrite(led,LOW);//熄灭数字13 口LED
    delay(500);
    Serial.println("Hello World!");//显示“Hello World!”字符串
  }

   //清空,重新读取
}
  • 写回答

2条回答 默认 最新

  • 泡沫o0 2023年度博客之星上海赛道TOP 1 2023-06-22 11:19
    关注

    你的Arduino代码有几个小错误需要修正。首先,Serial.read()函数返回的是一个字节(int类型),而不是一个字符串。你不能直接将其与字符串比较,例如if(val=="a")这样的代码是不对的,你需要与字符进行比较,如if(val=='a')

    其次,你需要确保Serial.read()真正读取到了数据。如果没有可用数据,Serial.read()会返回-1。因此,你需要在读取数据之前检查Serial.available(),这个函数会返回可用数据的字节数。

    以下是修改后的代码:

    int val;
    int led = 13;
    
    void setup() {
      Serial.begin(9600);
      Serial.println("请输入你要发送的数据:");
      pinMode(led,OUTPUT);
    }
    
    void loop() {
      if (Serial.available() > 0) {
        val = Serial.read();
    
        if (val == 'a') {
          digitalWrite(led, HIGH);
          Serial.println("LED已经点亮!");
        }
    
        if (val == 'b') {
          digitalWrite(led, LOW);
          Serial.println("LED已经熄灭!");
        }
    
        if (val == 'R') {
          digitalWrite(led, HIGH);
          delay(500);
          digitalWrite(led, LOW);
          delay(500);
          Serial.println("Hello World!");
        }
      }
    }
    

    这个修正版本的代码应该能够正常工作。如果你的Arduino仍然没有反应,那么可能是你的硬件连接有问题,或者你的Arduino IDE环境有问题。你需要检查你的硬件和软件设置,确保一切正常。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月30日
  • 已采纳回答 6月22日
  • 创建了问题 6月22日

悬赏问题

  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息