紅外線傳輸(IR Remote)是最簡單也是最常見的遙控方式,雖然他有距離短、不能有阻隔的缺點,但是因為容易操作好上手,所以很適合做為學習入門的遙控方式
在使用前必須要安裝函式庫,可以點選【紅外線遙控函式庫】下載。
函式庫的功能可以看【伺服馬達】的教學,有詳細說明。
如果要安裝函式庫,必須要先選擇【工具】->【管理程式庫】。
在輸入【IRremote】,會自動搜索到我們要用的函式庫【IRremote】。 點選旁邊的安裝就可以使用了。
圖片來源:傑森創工
https://blog.jmaker.com.tw/irremoterecv/
紅外線接收器有3個接腳如圖所示,分別接上訊號線、GND和VCC(5V)。
在這個範例中我們的訊號線是接在4號腳位上。
當我們按下按鈕,序列埠監控視窗會用16進位的方式顯示我們按下的按鈕。
不同的按鈕會有不同數值。
如果呈現的是FFFFFF,則代表連續按下同一個按鈕。
#include <IRremote.hpp>
void setup(){
Serial.begin(115200);
IrReceiver.begin(2);
}
void loop() {
if (IrReceiver.decode()) {
IrReceiver.printIRResultShort
(&Serial);
IrReceiver.resume();
}
}
引用紅外線函式庫

設定序列埠鮑率為115200
將訊號腳位設定為2

啟動紅外線接收器
如果接收器接收到訊號
接收器輸出結果
用序列埠輸出
紅外線感應重新啟動
新觀念:
如果要讓程式判斷是否接收到特定的紅外線訊號,可以改成這樣:

if (IrReceiver.decode()) {
if(IrReceiver.decodedIRData.
decodedRawData == 0xBA45FF00){
Serial.println("YES~YES");
}
}
IrReceiver.resume();
啟動紅外線接收器
如果紅外線接受器接收到的資料序列為0xBA45FF00

序列埠監控視窗顯示YES~YES


紅外線感應重新啟動
注意:1.要先確定每一個遙控器的訊號代碼。2.在讀取代碼時前面要加上0x。3.resume的功能除了重新啟動紅外線接收的功能外,還有避免bounce的功能。
請達成以下挑戰:
利用紅外線遙控器自由控制開關兩個LED燈泡