arduino 红外遥控器控制LED灯

Posted MarcoReus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arduino 红外遥控器控制LED灯相关的知识,希望对你有一定的参考价值。

/*
日期:2016.9.1
功能:红外遥控器控制LED灯 开,关,闪烁
元件:
    跳线公公头 * 5
    led, 220欧电阻
    红外接收管,红外遥控
接线:
    红外灯面向自己从左到右分别接 IO3, GND, 5V
    LED 负极接GND 正极串联电阻接 IO5
红外1-9口编码:
FF30CF    1
FF18E7    2
FF7A85    3
FF10EF    4
FF38C7    5
FF5AA5    6
FF42BD    7
FF4AB5    8
FF52AD    9
参考:http://www.arduino.cn/thread-3259-1-1.html
*/

#include <IRremote.h>

int ledPin = 5;
int recvPin = 3;//定义红外接收器的引脚为3
IRrecv irrecv(recvPin);
decode_results results;

long KEY_CODE_ONE = 0xFF30CF;
long KEY_CODE_TWO = 0xFF18E7;
long KEY_CODE_THREE = 0xFF7A85;
long KEY_CODE_LONG_PRESS = 0xFFFFFFFF;
long longPressKey = -1; //长按下的那个键

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

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);//以16进制换行输出接收代码
    Serial.println();//为了便于观看输出结果增加一个空行
    irrecv.resume(); // 接收下一个值
  }

  //按下1键盘的事件
  if (results.value == KEY_CODE_ONE ) {
    ledOn(ledPin);
    longPressKey = KEY_CODE_ONE;
  }
  //长按1键盘的事件
  if ( results.value == KEY_CODE_LONG_PRESS && longPressKey == KEY_CODE_ONE) {
    ledOn(ledPin);
  }

  //按下2键盘的事件
  if (results.value == KEY_CODE_TWO ) {
    ledOff(ledPin);
    longPressKey = KEY_CODE_TWO;
  }
  //长按 2键盘的事件
  if ( results.value == KEY_CODE_LONG_PRESS && longPressKey == KEY_CODE_TWO) {
    ledOff(ledPin);
  }
  //按下 3 键盘的事件
  if (results.value == KEY_CODE_THREE ) {
    flash(ledPin, 100, 100);
    longPressKey = KEY_CODE_THREE;
  }
  //长按 3 键盘的事件
  if ( results.value == KEY_CODE_LONG_PRESS && longPressKey == KEY_CODE_THREE) {
    flash(ledPin, 100, 100);
  }
}

// led亮灯
void ledOn(int ledPin) {
  digitalWrite(ledPin, HIGH);
}
// led熄灯
void ledOff(int ledPin) {
  digitalWrite(ledPin, LOW);
}
//led闪烁
void flash(int ledPin, long highDuration, long lowDuration) {
  digitalWrite(ledPin, HIGH);
  delay(highDuration);
  digitalWrite(ledPin, LOW);
  delay(lowDuration);
}

 

以上是关于arduino 红外遥控器控制LED灯的主要内容,如果未能解决你的问题,请参考以下文章

arduino遥控怎么匹配

基于Arduino智能控制(时钟模块,光敏,红外遥控)

基于Arduino智能控制(时钟模块,光敏,红外遥控)

arduino两个led灯交替闪烁

arduino蓝牙控制呼吸灯无法熄灭的问题

arduino电位器调整led灯颜色