我会写完论文的 2023-01-12 19:41 采纳率: 0%
浏览 50
已结题

arduino中关于红外遥控的问题

利用红外遥控器
for循环中(if(mode==3)内部的)和for循环外部(loop函数刚开始的那里)两次接收红外线信号并把解码结果放在results里,每次都打印出results里的值;从串口监视器发现外部信号是固定的,但是for循环内部接收到的红外信号每次都是随机的,这是为什么?

#include <IRremote.h>
int recv = 11;
int mode=0;
int tonepin=6;
int mode2=0;
IRrecv irrecv(recv);
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // 初始化红外接收器
  pinMode(tonepin,OUTPUT);
}

void loop() {
  aaa:
  Serial.print("外:") ;
  Serial.print(mode);
  Serial.println(results.value,HEX);
  if (irrecv.decode(&results)) {
    switch(results.value){
      case 0xFF30CF:mode=1;break;
      case 0xFF18E7:mode=2;break;
      case 0xFF7A85:mode=3;break;
    }
  irrecv.resume(); // 接收下一次红外线信号
  }
  
  if(mode==3){
  for(int i=0;i<=10000;i++){
    if (irrecv.decode(&results)) {//检测模式
    Serial.println(results.value,HEX);
    irrecv.resume(); // 接收下一次红外线信号
   goto aaa;
      }  
    tone(tonepin,300);
    delay(1000);
    noTone(tonepin);
  }
  }
}

  • 写回答

6条回答 默认 最新

  • qllaoda 2023-01-12 20:45
    关注
    获得2.85元问题酬金

    这个goto太影响结构了,直接return就好了啊

    评论

报告相同问题?

问题事件

  • 系统已结题 1月20日
  • 赞助了问题酬金15元 1月12日
  • 创建了问题 1月12日

悬赏问题

  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的