查看: 82|回复: 0

[未解决] 菜鸟遇到一个关于遥控器程序问题,急需高手帮忙解决!...

[复制链接]
  • TA的每日心情
    开心
    2018-8-11 00:51
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2018-8-11 00:50 | 显示全部楼层 |阅读模式

    菜鸟在做遥控器实验时遇到下面问题无法解决,请高手指点!!!
    要实现的功能是:按下遥控器1号键,LED亮,并反复打印"turn on LED";按下遥控器2号键,LED灭,并反复打印"turn off LED",如此顺利切换。用了while循环,发现先按了1号键后,再按2号键没有反应,或者重新复位后先按了2号键后,再按1号键也没有反应,尽管已经在子函数ir_remote内调用了自己,还是不能解决,有没有办法让while语句循环执行,按了另一个按键后又能跳出当前循环,进入另一个while语句循环执行,能相互切换,请高手支招,谢谢!
    程序如下:
    #include <IRremote.h>
    int RECV_PIN = 10;
    int LED=11;
    IRrecv irrecv(RECV_PIN);
    decode_results results;
    void setup()
    {
      Serial.begin(9600);
      irrecv.enableIRIn(); //初始化红外遥控
      pinMode(LED,OUTPUT);
    }
    void loop()
    {
    ir_remote(); //调用遥控控制子函数
    }
    ///////////////////////遥控控制子函数/////////////
    void ir_remote()
    {
      if (irrecv.decode(&results))
      {
        if(results.value==0x00FF30CF)      //如果遥控器的按键1被按下
        {
         while(1)
         {
          digitalWrite(LED,HIGH);                //点亮LED
          Serial.println("turn on LED"); //串口打印“turn on LED”
          irrecv.resume(); // 接收下一个编码
          ir_remote();
          delay(10);      
          }
        }
        if(results.value==0x00FF18E7)   //如果遥控器的按键2被按下
        {
           while(1)
           {
            digitalWrite(LED,LOW);            //熄灭LED
            Serial.println("turn off LED");    //串口打印“turn off LED”
            irrecv.resume(); // 接收下一个编码
            ir_remote();
            delay(10);
           }
         }
        irrecv.resume(); // 接收下一个编码
      }
    }

    高级模式  
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    G哥撸Arduino之:深入浅出串口通信(理论篇)
    G哥撸Arduino之:深入浅出
    继上一篇《深入浅出SPI通信》,本期我们接着聊聊arduino的另一种通信方式:串口通信
    DIY一个超炫酷“锹甲”机器人——Arduino Nrf24L01遥控机械臂
    DIY一个超炫酷“锹甲”机
    大家好,初来乍到,这是我最近DIY的作品,欢迎小伙伴们拍砖! 由于某些原因我把介绍都
    Visual Studio Code对esp32/8266编译的教程 (使用blinker库)
    Visual Studio Code对esp3
    前言,Arduino IDE对小程序来讲很好用,界面简单直观易用,但也就是因为过于的简单,
    Arduino+ESP8266接收服务器信息
    Arduino+ESP8266接收服务
    上一篇文章《Arduino+ESP8266上传数据到服务器》我们介绍了Arduino如何将数据上传到服
    Arduino 怎么读取24V光电开关的状态
    Arduino 怎么读取24V光电
    我在淘宝上买了一个光电开关,链接如下: https://detail.tmall.com/item.htm?id=5738
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表