这是我参与8月更文挑战的第31天,活动详情查看:8月更文挑战
红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力,所以,在设计红外线遥控器时,不必要像无线电遥控器那样,每套(发射器和接收器)要有不同的遥控频率或编码(否则,就会隔墙控制或干扰邻居的家用电器),所以同类产品的红外线遥控器,可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。
一、先设置红外线遥控和LED灯的端口
我们可以根据自己的板子进行相关管教的定义,但要注意的是,红外接收引脚,需要选择模拟量的引脚,这样才能接收我们发射的信号。
二、在面包板上把LED灯的电路接好,注意要接电阻! 接电阻是为了保护LED灯,集体原因可以学习一下电路知识。
三、Arduino代码
#include <IRremote.h>
long ir_item;
IRrecv irrecv_5(5);
decode_results results_5;
void setup(){
Serial.begin(9600);
irrecv_5.enableIRIn();
}
void loop(){
if (irrecv_5.decode(&results_5)) {
ir_item=results_5.value;
String type="UNKNOWN";
String typelist[14]={"UNKNOWN", "NEC", "SONY", "RC5", "RC6", "DISH", "SHARP", "PANASONIC", "JVC", "SANYO", "MITSUBISHI", "SAMSUNG", "LG", "WHYNTER"};
if(results_5.decode_type>=1&&results_5.decode_type<=13){
type=typelist[results_5.decode_type];
}
Serial.print("IR TYPE:"+type+" ");
Serial.println(ir_item,HEX);
if (ir_item == 0xFFA25D) {
pinMode(A3, OUTPUT);
digitalWrite(A3,HIGH);
}
if (ir_item == 0xFF629D) {
pinMode(A4, OUTPUT);
digitalWrite(A4,HIGH);
}
if (ir_item == 0xFFE21D) {
pinMode(A5, OUTPUT);
digitalWrite(A5,HIGH);
}
delay(1000);
irrecv_5.resume();
} else {
pinMode(A3, OUTPUT);
digitalWrite(A3,LOW);
pinMode(A4, OUTPUT);
digitalWrite(A4,LOW);
pinMode(A5, OUTPUT);
digitalWrite(A5,LOW);
delay(1000);
}
}
四、运行
当我们按下我们设置的相关按键,会有相应的LED灯亮灭。
五、我只是为了分享我的红外控制基础,大家可以根据自己的想法改一下我的程序。