Sensor – ME Infrared Receiver Decode

概述:

紅外線接收模組通過紅外線信號接收器接收遠處發來的紅外信號,紅外線遙控是目前使用最廣泛的一種通信和遙控手段,具備體積小、功耗低、功能強等優點。如各種家用電器、音響設備、空調機、機器人動作控制、小車控制以及其它智慧控制。在高壓、輻射、有毒氣體、粉塵等環境下,採用紅外線遙控可以有效地隔離電氣干擾。本模組介面是藍色色標,說明是雙數位口控制,需要連接到主機板上帶有藍色標識介面。

功能特性:

  • 模組的白色區域是與金屬梁接觸的參考區域
  • 使用Makeblock配套的遙控器
  • 在近距離1米範圍內使用遙控器需對準模組紅外線接頭
  • 具有兩隻LED指示燈用於調試與回饋
  • 使用NEC IR協議通過IR控制器實現簡易控制
  • 具有反接保護,電源反接不會損壞IC
  • 支援Arduino IDE程式設計, 並且提供運行庫來簡化程式設計
  • 支援mBlock圖形化程式設計,適合全年齡用戶
  • 使用RJ25介面連線方便
  • 模組化安裝,相容樂高系列
  • 配有DAT、RX、VCC、GND接頭支援絕大多數Arduino系列主控板

 

技術規格:

  • 工作電壓:4.8V到5.3V DC
  • 工作電流:1.7到2.7 mA
  • 接收頻率:38KHz
  • 峰值波長: 980 nm
  • 有效接收距離:10米
  • 工作溫度:0到70℃
  • 控制方式:雙數位口控制
  • 模組尺寸:51 x 24 x 24.8 mm (長x寬x高)

 

 

引腳定義

紅外接收模組有四個針腳的接頭,每個針腳的功能如下表

序號

引腳

功能

1DAT遙控按鍵狀態輸出
2RX遙控按鍵值輸出,接主機板串口接收端
3VCC電源線
4GND地線

表 1 4-Pin 接頭功能表

接線方式

  • RJ25連接

由於紅外線接收模組介面是藍色色標,當使用RJ25介面時,需要連接到主控板上帶有藍色色標的介面。以Makeblock Orion為例,可以連接到3,4,5,6號介面,如圖

i

圖 1 紅外接收模組與 Makeblock Orion連接

  • 杜邦線連接

當使用杜邦線連接到Arduino Uno主機板時,模組RX與DAT引腳需要連接到 DIGITAL(數位)口,如下圖所示:

ii

圖 2 紅外接收模組與 Arduino UNO 連接圖

注:接杜邦線時,模組上需要焊接排針。

程式設計指南

  • Arduino程式設計

如果使用Arduino程式設計,需要調用庫Makeblock-Library-master 來控制紅外線接收模組。

本程式通過Arduino程式設計,通過串口監視器可觀查到被按下的紅外線遙控器按鍵

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include “MeOrion.h”
#include <Wire.h>
#include <SoftwareSerial.h>
MeInfraredReceiver infraredReceiverDecode(PORT_6);
void setup()
{
infraredReceiverDecode.begin();
Serial.begin(9600);
Serial.println(“InfraredReceiverDecode Start!”);
}
void loop()
{
if(infraredReceiverDecode.available() )
{
switch(infraredReceiverDecode.read() )
{
case IR_BUTTON_A:
Serial.println(“Press A.”);
break;
case IR_BUTTON_B:
Serial.println(“Press B.”);
break;
case IR_BUTTON_C:
Serial.println(“Press C.”);
break;
case IR_BUTTON_D:
Serial.println(“Press D.”);
break;
case IR_BUTTON_E:
Serial.println(“Press E.”);
break;
case IR_BUTTON_F:
Serial.println(“Press F.”);
break;
case IR_BUTTON_SETTING:
Serial.println(“Press Setting.”);
break;
case IR_BUTTON_UP:
Serial.println(“Press Up.”);
break;
case IR_BUTTON_DOWN:
Serial.println(“Press Down.”);
break;
case IR_BUTTON_LEFT:
Serial.println(“Press Left.”);
break;
case IR_BUTTON_RIGHT:
Serial.println(“Press Right.”);
break;
case IR_BUTTON_0:
Serial.println(“Press 0.”);
break;
case IR_BUTTON_1:
Serial.println(“Press 1.”);
break;
case IR_BUTTON_2:
Serial.println(“Press 2.”);
break;
case IR_BUTTON_3:
Serial.println(“Press 3.”);
break;
case IR_BUTTON_4:
Serial.println(“Press 4.”);
break;
case IR_BUTTON_5:
Serial.println(“Press 5.”);
break;
case IR_BUTTON_6:
Serial.println(“Press 6.”);
break;
case IR_BUTTON_7:
Serial.println(“Press 7.”);
break;
case IR_BUTTON_8:
Serial.println(“Press 8.”);
break;
case IR_BUTTON_9:
Serial.println(“Press 9.”);
break;
default:
break;
}
}
}

 

紅外接收模組函數功能清單

函數

功能

MeInfraredReceiver(uint8_t port)選定介面
bool avaliable()檢測是否接收到按鍵值
int read()讀取紅外線控制器發送的紅外線信號

9

串口顯示結果

我們可以看到,當接收到紅外線控制器發出的紅外信號時,紅外線接收器讀取紅外線信號並解碼,然後輸出到串口顯示。

 

原理解析

紅外線通信是利用紅外線技術實現兩點間近距離保密通信和資訊轉發,一般由紅外線發射和紅外線接收兩部分系統組成。紅外線接收模組含有紅外線一體化接收頭,其內部含有高頻的濾波電路,專門用來濾除紅外線合成信號的載波信號,隨後信號進入模組內部解碼晶片。當紅外線合成信號進入紅外線接收頭,在其輸出端便可以得到遠紅外線發射器發出的數位編碼(當模組接收到有效的紅外編碼資料時,STA變為低電平;如果紅外線遙控按鍵被持續按下,STA會保持低電平,同時重複發送資料碼)。