microduino實現紅外線發送與接收
一、目標:使用microduino套件實現紅外線的發送與接收
二、材料:(1)模塊:Microduino Core/Core+ (核心板),Microduino-USBTTL(下載程序)
(2)傳感器:紅外線發射器,紅外線接收器
(3)其它設備:Micro-USB線,面包板,導線
- 紅外線發射器使用說明:
目前的紅外發射器有兩種規格,兩腳的(左圖)和三腳的(右圖)
兩腳的結構和普通LED管相似,長引腳接高電平,短引腳接低電平
三腳的連接情況分別是:5V,OUT,GND,其中OUT是指定的輸出端口。它與紅外接收管的引腳結構類似。
- 面包板使用說明:如下圖所示,上下兩行線是分別連通的,中間的縱線是分別連通的。
三、紅外線發射原理:
紅外發射器與普通LED類似,只需要給它分配一個電流輸出引腳,連通電路就可以了。代碼也非常簡單,在Arduino IDE中新建項目,寫入:
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(5); digitalWrite(13, LOW); }
即在setup中定義13號為輸出引腳,然後循環執行loop中的13號引腳高低電流交替,使得紅外發射管時而導通時而阻塞,產生紅外線閃爍效果。
然後在“工具”中選擇對應型號的開發板和處理器型號(本例使用的是Microduino/mCookie-device, Microduino/mCookie-core 16M),再編譯程序。
接著連接電路(兩腳的只需將長腳連接自己定義的輸出端口,短腳接GND):
最後,你可以通過電腦的相機觀察,將燈管正對攝像頭,如果看見紫色的紅外線,就說明你成功了。效果如下圖所示:
四、紅外線接收原理及使用
首先,再Ardunio IDE中加載IRremote庫:
#include <IRremote.h>
然後,定義紅外接收器的輸出管腳,並將其使能:
IRrecv irrecv(11);
irrecv.enableIRIn();
接著定義一個變量用於判斷是否接收到紅外線:
decode_results results;
如果接收到紅外線:
if(irrecv.decode(&results)){
//在此執行你想做的邏輯
irrecv.resume();
}
* 示例代碼(為了看見直觀的效果,我連接了一個LED,當接收到紅外線時,LED亮起):
#include <IRremote.h> IRrecv irrecv(11); decode_results results; void setup() { pinMode(3, OUTPUT); /* 連接LED的引腳號 */ irrecv.enableIRIn(); } void loop() { digitalWrite(3, LOW); if(irrecv.decode(&results)){ digitalWrite(3, HIGH); irrecv.resume(); delay(5); } }
效果圖(左圖為未接收紅外線時,右圖為接收到遙控器發射的紅外線):
microduino實現紅外線發送與接收