关于arduino控制红外遥控的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 649|回复: 7

[未解决] 关于arduino控制红外遥控的问题

[复制链接]
发表于 2022-4-26 22:16 | 显示全部楼层 |阅读模式
代码段如下:
void loop() {

   if(irrecv.decode(&results)){

    if(results.value == 0x4EA240AE){
      while(results.value != 0x4E87E0AB){
      One_And_One(10,11);
      }
    }
    irrecv.resume();
  }

}

while变成了一个死循环,无法获得下一个编码,改如何修改,请大神赐教,拜谢!!!!!!!!!!
发表于 2022-4-27 02:14 | 显示全部楼层
先去範例中找紅外線的程式試試,
試出心得後再寫自己的
 楼主| 发表于 2022-4-27 13:01 | 显示全部楼层
shouzama 发表于 2022-4-27 02:14
先去範例中找紅外線的程式試試,
試出心得後再寫自己的

书里有的,网上找的范例都试过了,还是不理想
发表于 2022-4-27 18:53 | 显示全部楼层
你这个代码的效果是不是想实现:按下A按键,然后只要不按下B按键,会一直执行One_And_One(10,11);?
 楼主| 发表于 2022-4-28 07:57 | 显示全部楼层
int_i 发表于 2022-4-27 18:53
你这个代码的效果是不是想实现:按下A按键,然后只要不按下B按键,会一直执行One_And_One(10,11);? ...

是的,按下A键执行,按下B键退出循环
发表于 2022-4-28 16:35 | 显示全部楼层
//这个效果可以做个标记位
if(irrecv.decode(&results)){

    if(results.value == 0x4EA240AE)
    {
      a=1;
      }
    if(results.value == 0x4E87E0AB)
    {
      a=2;
      }
    irrecv.resume();
  }
  if(a==1)
  {
    One_And_One(10,11);
  }

}
 楼主| 发表于 2022-4-28 18:14 | 显示全部楼层
int_i 发表于 2022-4-28 16:35
//这个效果可以做个标记位
if(irrecv.decode(&results)){

谢谢您的答复!
您的这个写法进得了循环,可是结果还是跳不出来。
发表于 2022-4-29 21:47 | 显示全部楼层
青份 发表于 2022-4-28 18:14
谢谢您的答复!
您的这个写法进得了循环,可是结果还是跳不出来。

one and one  是自己定义的函数吗?   要看你这个里面的内容写的是什么?有可能在执行轮询的时候,里面有delay,按下红外遥控没检测的到。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:52 , Processed in 0.236824 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表