材料:
arduino UNO;
一体化红外接受头;
红外发光二极管;
220欧电阻 ;
面包板;
杜邦线若干;
接线图:
#include <IRremote.h>
int r_pin = 11;//定义红外引脚
int led = 4; //定义小灯引脚
bool are = true; //判断灯的状态
IRrecv my(r_pin); //创建对象my
decode_results results; //存储编码结果的对象
void setup() {
Serial.begin(9600);//初始化串口通信
my.enableIRIn(); //初始化红外解码
pinMode(led,OUTPUT);
}
void loop() { //loop函数会循环执行
if(my.decode(&results)){ //对接受的红外信息进行解码
Serial.println(results.value,HEX); //转换为16进制
if(results.value == 0xFDA857){ //对应按键的16进制值可以查看串口的显示
for(int i=0;i<2;i++){ //利用for循环和break改变灯的状态
if(are){ //are为true则小灯为熄灭状态
digitalWrite(led,HIGH);
Serial.println("开灯");
are = !are; //将are设置为false表示小灯为点亮状态
break;
}
if(!are){
digitalWrite(led,LOW);
Serial.println("关灯");
are = !are;
break;
}
}
delay(100);
}
my.resume(); //重新接收
delay(100);
}
}