找回密码
 立即注册

QQ登录

只需一步,快速开始

基础模块资料库

基于Arduino使用红外接收传感器



60.jpg
(红外接收传感器模块)

产品介绍

接收放大一体红外接收管,直接输出红外码
适用范围广,兼容市场上大部分红外遥控器
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灯处于熄灭状态。

61.jpg

(LED模块)

接线方式

Arduino                    红外传感器模块
     5V        <------>       VCC
     GND     <------>      GND
     D6        <------>       DAT

Arduino                   LED模块
    3V3      <------>       VCC
    GND     <------>      GND
    D5        <------>        IN

程序测试

1、串口打印读取遥控器1号和2号按键数值,当没有信号时串口打印字符”a”,当有信号时读取对应信号数值。

Mixly 图形化编程程序

62.png
(图形化程序)

按下1号按键时串口打印读取数值

63.png
(串口数值显示)



按下2号按键时串口打印读取数值

64.png
(串口数值显示)

程序实现代码  

  1. #include <IRremote.h>
  2. long ir_item;
  3. IRrecv irrecv_6(6);
  4. decode_results results_6;
  5. void setup(){
  6.   Serial.begin(9600);
  7.   irrecv_6.enableIRIn();
  8. }
  9. void loop(){
  10.   if (irrecv_6.decode(&results_6)) {
  11.     ir_item=results_6.value;
  12.     String type="UNKNOWN";
  13.     String typelist[14]={"UNKNOWN", "NEC", "SONY", "RC5", "RC6", "DISH", "SHARP", "PANASONIC", "JVC", "SANYO", "MITSUBISHI", "SAMSUNG", "LG", "WHYNTER"};
  14.     if(results_6.decode_type>=1&&results_6.decode_type<=13){
  15.       type=typelist[results_6.decode_type];
  16.     }
  17.     Serial.print("IR TYPE:"+type+"  ");
  18.     Serial.println(ir_item);
  19.     delay(1000);
  20.     irrecv_6.resume();
  21.   } else {
  22.     Serial.println('a');
  23.     delay(1000);
  24.   }
复制代码

2、当遥控器按下1号按键时,绿色 LED 灯亮起,当按下2号按键时,LED 灯处于熄灭状态。


Mixly
图形化编程程序


65.png

(图形化程序)

程序实现代码

  1. #include <IRremote.h>
  2. long ir_item;
  3. IRrecv irrecv_6(6);
  4. decode_results results_6;
  5. void setup(){
  6.   Serial.begin(9600);
  7.   pinMode(5, OUTPUT);
  8.   irrecv_6.enableIRIn();
  9. }
  10. void loop(){
  11.   if (irrecv_6.decode(&results_6)) {
  12.     ir_item=results_6.value;
  13.     String type="UNKNOWN";
  14.     String typelist[14]={"UNKNOWN", "NEC", "SONY", "RC5", "RC6", "DISH", "SHARP", "PANASONIC", "JVC", "SANYO", "MITSUBISHI", "SAMSUNG", "LG", "WHYNTER"};
  15.     if(results_6.decode_type>=1&&results_6.decode_type<=13){
  16.       type=typelist[results_6.decode_type];
  17.     }
  18.     Serial.print("IR TYPE:"+type+"  ");
  19.     Serial.println(ir_item);
  20.     if (ir_item == 16672919) {
  21.       digitalWrite(5,HIGH);
  22.     } else if (ir_item == 16701479) {
  23.       digitalWrite(5,LOW);
  24.     }
  25.     irrecv_6.resume();
  26.   } else {
  27.   }
  28. }
复制代码

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册