导入IRremote.h 这个库
#include <IRremote.h>
int yaokong=17; #定义17管脚为遥控信号
int led1=13; #定义13管脚led1灯
int led2 = 27; #定义27管脚led1灯
IRrecv irrecv(yaokong); #实例化一个红外遥控器对象,指定为17管脚
decode_results results; #声明一个IRremote库函数独有的变量类型(decode_results),results存放红外解码结果
void setup() {
pinMode(led1,OUTPUT); #定义13管脚为输出管脚
pinMode(led2,OUTPUT); #定义27管脚为输出管脚
Serial.begin(9600); #设置输出波特率为9600
irrecv.enableIRIn(); #启动红外遥控器接收
}
void loop() {
if(irrecv.decode(&results)){ #检测是否有红外遥控器信号接收,如果有则通过irrecv.decode()方法保存到&results中
Serial.print("irCode:");
Serial.print(results.value,HEX); #输出红外信号接收到的数值
Serial.print(",bits:");
Serial.println(results.bits); #输出红外线码元位数
irrecv.resume(); #重置红外接收器,让其继续接收下一个值
}
delay(600); #延时600ms
if (results.value==0xFF30CF) #红外接收器的值(遥控器输入1)如果等于0xFF30CF则led1点亮
{
digitalWrite(led1,HIGH);
}
if (results.value==0xFF18E7) #红外接收器的值(遥控器输入2)如果等于0xFF18E7则led1熄灭
{
digitalWrite(led1,LOW);
}
if (results.value==0xFF7A85) #红外接收器的值(遥控器输入3)如果等于0xFF7A85则led2点亮
{
digitalWrite(led2,HIGH);
}
if (results.value==0xFF10EF) #红外接收器的值(遥控器输入4)如果等于0xFF10EF则led2熄灭
{
digitalWrite(led2,LOW);
}
if (results.value==0xFFA25D) #红外接收器的值(遥控器输入ch-)如果等于0xFF10EF则led1和led2熄灭
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
}
}