基于Arduino使用红外接收传感器
(红外接收传感器模块)
产品介绍
接收放大一体红外接收管,直接输出红外码 适用范围广,兼容市场上大部分红外遥控器 LED,方便观察调试 适用于红外通讯、红外遥控控制等 选购配件:3P传感器连接线
参数规格
1、采用1838遥控接收头,灵敏度高 2、工作电压5V 3、输出形式:数字输出 4、设有2个固定孔,方便安装,孔径3.1mm 5、带数据指示灯 6、PCB尺寸:23mm*21mm 7、重量:3g 8、端口:数字量电平 9、输出:标准红外码 10、接收频率:38KHZ载波红外码 11、接收距离:1-8m(视接收端而定) 12、平台:Arduino单片机
接线方式
Arduino 红外传感器模块 5V <------> VCC GND <------> GND D6 <------> DAT
红外接收传感器模块基础小案例
LED 高电平为亮,低电平为灭,当遥控器按下1号按键时,绿色 LED 灯亮起,当按下2号按键时,LED灯处于熄灭状态。
(LED模块)
接线方式
Arduino 红外传感器模块 5V <------> VCC GND <------> GND D6 <------> DAT
Arduino LED模块 3V3 <------> VCC GND <------> GND D5 <------> IN
程序测试
1、串口打印读取遥控器1号和2号按键数值,当没有信号时串口打印字符”a”,当有信号时读取对应信号数值。
Mixly 图形化编程程序
(图形化程序)
按下1号按键时串口打印读取数值
(串口数值显示)
按下2号按键时串口打印读取数值
(串口数值显示)
程序实现代码
- #include <IRremote.h>
- long ir_item;
- IRrecv irrecv_6(6);
- decode_results results_6;
- void setup(){
- Serial.begin(9600);
- irrecv_6.enableIRIn();
- }
- void loop(){
- if (irrecv_6.decode(&results_6)) {
- ir_item=results_6.value;
- String type="UNKNOWN";
- String typelist[14]={"UNKNOWN", "NEC", "SONY", "RC5", "RC6", "DISH", "SHARP", "PANASONIC", "JVC", "SANYO", "MITSUBISHI", "SAMSUNG", "LG", "WHYNTER"};
- if(results_6.decode_type>=1&&results_6.decode_type<=13){
- type=typelist[results_6.decode_type];
- }
- Serial.print("IR TYPE:"+type+" ");
- Serial.println(ir_item);
- delay(1000);
- irrecv_6.resume();
- } else {
- Serial.println('a');
- delay(1000);
- }
复制代码
2、当遥控器按下1号按键时,绿色 LED 灯亮起,当按下2号按键时,LED 灯处于熄灭状态。
Mixly 图形化编程程序
(图形化程序)
程序实现代码
- #include <IRremote.h>
- long ir_item;
- IRrecv irrecv_6(6);
- decode_results results_6;
- void setup(){
- Serial.begin(9600);
- pinMode(5, OUTPUT);
- irrecv_6.enableIRIn();
- }
- void loop(){
- if (irrecv_6.decode(&results_6)) {
- ir_item=results_6.value;
- String type="UNKNOWN";
- String typelist[14]={"UNKNOWN", "NEC", "SONY", "RC5", "RC6", "DISH", "SHARP", "PANASONIC", "JVC", "SANYO", "MITSUBISHI", "SAMSUNG", "LG", "WHYNTER"};
- if(results_6.decode_type>=1&&results_6.decode_type<=13){
- type=typelist[results_6.decode_type];
- }
- Serial.print("IR TYPE:"+type+" ");
- Serial.println(ir_item);
- if (ir_item == 16672919) {
- digitalWrite(5,HIGH);
- } else if (ir_item == 16701479) {
- digitalWrite(5,LOW);
- }
- irrecv_6.resume();
- } else {
- }
- }
复制代码
|