极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12418|回复: 3

请教各位大侠IR红外线如何实现单一键“开”或“关”功能

[复制链接]
发表于 2016-3-26 18:35:32 | 显示全部楼层 |阅读模式
近日网上拍如下红外线控制器,准备用MEGA2560+IR做LED开关控制,网上一些程序,但只能实现单一“开”或“关”功能,
现想实现单一键“开”或“关”功能,请教该部分的代码如何写?谢谢!


程序:
/*
www.openjumper.com
日期:2013.5.18
IDE 版本:1.0.1
功能:红外遥控器控制LED灯开关
*/
       
#include <IRremote.h>
       
int RECV_PIN = 11; // 红外一体化接收头连接到Arduino 11号引脚
int LEDpin = 13; //定义LED输出引脚
IRrecv irrecv(RECV_PIN);
       
decode_results results; // 用于存储编码结果的对象
       
void setup()
{
pinMode(LEDpin,OUTPUT);
irrecv.enableIRIn(); // 初始化红外解码
}
       
void loop() {
if (irrecv.decode(&results))
{
Serial.println( results.value);
if( results.value == 0xFF22DD) //若接收到按键A+(CH1)按下的指令,打开LED
{
digitalWrite(LEDpin,HIGH);
}
else if(results.value == 0xFFE01F) //接收到按键B-(CH2)按下的命令,关闭LED
{
digitalWrite(LEDpin,LOW);
}
irrecv.resume(); // 接收下一个编码
}
}

//功能收到按键A+(CH1)按下的指令,打开LED;接收到按键B-(CH2)按下的命令,关闭LED

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-3-26 21:35:36 | 显示全部楼层
设置一个全局变量,在初始化是置0,在loop中收到某键,如电源键信号时,将变量置“反”,即判断是0就置1,判断是1就置0,输出的LED可以根据变量的变化而变,如0变暗,1变亮这样也给电源键指示出状态。
回复 支持 反对

使用道具 举报

发表于 2016-3-26 21:51:10 | 显示全部楼层
  1. #include <IRremote.h>
  2. int State = 0;
  3. int RECV_PIN = 11; // 红外一体化接收头连接到Arduino 11号引脚
  4. int LEDpin = 13; //定义LED输出引脚
  5. IRrecv irrecv(RECV_PIN);

  6. decode_results results; // 用于存储编码结果的对象

  7. void setup()
  8. {
  9.         Serial.begin(9600);
  10.         pinMode(LEDpin, OUTPUT);
  11.         irrecv.enableIRIn(); // 初始化红外解码
  12. }
  13. void loop()
  14. {
  15.         if (irrecv.decode(&results))
  16.         {
  17.                 Serial.println(results.value, HEX);
  18.                 if ( results.value == 0xFF22DD) //若接收到按键A+(CH1)按下的指令,打开LED
  19.                 {
  20.                         State = !State;
  21.                         digitalWrite(LEDpin, State);
  22.                 }
  23.                 irrecv.resume(); // 接收下一个编码
  24.         }
  25. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-27 20:13:22 | 显示全部楼层
哦,原来布尔运算符类  !(非)可以解决了,我想了头多大,没有想出来,还要好好学习,谢谢前面两位的指导!谢谢了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 21:24 , Processed in 0.035517 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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