通过Arduino程序获取红外遥控器按键键值编码
一、以如下遥控器举例:
二、检测按键键值的Arduino程序:
#include
Serial.begin(9600); //键值在串口通信窗口中查看 irrecv.enableIRIn(); //红外接收端初始化 }
void loop() {
if(irrecv.decode(&results)) //是否收到键值编码 {
Serial.println(results.value,HEX);//通过串口打印十六进制的键值 delay(500);
irrecv.resume(); //接收下一个值 } }
1
三、检测到的十六进制按键键值(在串口监视器中查看):
按键 (1) (4) (7) (*) (←) 键值 0xFFA25D 0xFF22DD 0xFFE01F 0xFF6897 0xFF10EF 按键 (2) (5) (8) (0) (↑) (OK) (↓) 键值 0xFF629D 0xFF02FD 0xFFA857 0xFF9867 0xFF18E7 0xFF38C7 0xFF4AB5 按键 (3) (6) (9) (#) (→) 键值 0xFFE21D 0xFFC23D 0xFF906F 0xFFB04F 0xFF5AA5 四、Arduino的红外遥控器控制LED例程:
include
IRrecvirrecv(RECV_PIN); decode_results results; void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); //初始化红外遥控 PinMode(13,1); LED初始化,点亮 }
void loop() {
if (irrecv.decode(&results)) {
if(results.value==0xFFA25D) //确认接收到按键(1)的编码,此码是预先读出来的按键编码。 {
digitalWrite(13,1); //点亮LED Serial.println(\串口显示开灯 }
else if(results.value==0xFF629D) //确认接收到的按键(2)的编码 {
digitalWrite(13,0); //熄灭LED
Serial.println(\串口显示关灯 }
irrecv.resume(); // 接收下一个值 } }
2