我們平常接觸紅外線的應(yīng)用溉苛,像是電視機(jī)、冷氣機(jī)的遙控器就是個紅外線發(fā)射器奠宜,而電視機(jī)哗讥、冷氣機(jī)上則有紅外線接收器嚷那。
紅外線接收器與發(fā)射器
人類可見光約為 390 到 700 nm(奈米),其中可見的紅光波長約為 620 至 750 nm 左右杆煞,而波長超過 760 nm 的光魏宽,人類無法感知腐泻,稱為紅外光,一般我們還會聽到有近紅外光队询、遠(yuǎn)紅外光等分類派桩,這在不同領(lǐng)域中有不同的分類。
電視機(jī)蚌斩、冷氣機(jī)等一般常使用 940 nm 波長的紅外光铆惑,以避免太陽光、室內(nèi)光源等發(fā)出的紅外光干擾送膳,其他還有 850 nm员魏、860 nm 等其他波長,最好能讓接收器與發(fā)射器規(guī)格一致叠聋,以免造成誤判撕阎。
上圖左側(cè)是紅外線接收器,我手邊這只三個接腳由左至右分別是訊號碌补、GND 與電源虏束,有的接收器 GND 與電源線會相反,使用時要確認(rèn)一下厦章。
由于生活周遭物品也會不定時地散發(fā)紅外光镇匀,紅外線接收器設(shè)計(jì)為只對特定頻率有反應(yīng),常見使用的是 38k Hz袜啃;紅外線發(fā)射器就是個 LED坑律,可發(fā)出特定波長的紅外線,在 Arduino囊骤,可以使用tone函式(是之前談蜂嗚器時有提過)指定以特定頻率(像是 38k Hz)發(fā)射紅外線。
使用 mBlock 測試紅外線接收器
如果想要簡單地體驗(yàn)冀值、測試一下紅外線接收器也物,可以如下銜接電路:
如果使用 mBlock 2.1 的話,可以如下撰寫程式:
如上圖撰寫程式的話列疗,在還沒按上遙控器時滑蚯,從紅外線接收器多半就會收到一堆 1 的訊號,遙控器實(shí)際上是有特定編碼地發(fā)射紅外線訊號抵栈,你可以在運(yùn)行程式之后告材,拿起家里的電視遙控器對著接收器發(fā)射,在接收器收到 0 的訊號時古劲,貓咪會以“收到遙控器訊號”的提示文字表示斥赋。
使用 IRremote 測試紅外線接收器
如果想要用紅外線接收器解碼遙控器的紅外線指令,可以使用IRremote程式庫搭配 Arduino IDE 來快速地體驗(yàn)一下产艾,可以到 IRremote 的 Github 按下“Download ZIP”疤剑,會下載一個 Arduino-IRremote-master.zip 檔案滑绒,解開后將其中目錄更名為 Arduino-IRremote,并將整個目錄置于 Arduino IDE 安裝目錄的 libraries 之中:
接著開啟 Arduino IDE隘膘,就可以在“檔案/范例”中疑故,看到 IRremote 相關(guān)范例:
如果想測試一下電視遙控器的指令解碼,可以開啟“IRrecvDemo”范例弯菊,電路如先前看到的圖銜接就可以了纵势,這個范例程式會從 D11 接收紅外線訊號并解碼,直接將程式上傳至 Arduino管钳,并執(zhí)行“工具/序列埠監(jiān)控視窗”钦铁,然后按下電視遙控器的電源鍵,你應(yīng)該可以看到對應(yīng)的解碼訊息出現(xiàn):
使用 IRremote 測試紅外線發(fā)射器
如果使用 mBlock 2.1蹋嵌,那么“播放腳位…”這方塊育瓜,可以直接指定頻率,驅(qū)動紅外線發(fā)射器發(fā)出紅外線:
若要能發(fā)出如遙控器的各種指令紅外光栽烂,這在 mBlock 中自行以積木建構(gòu)會是個大工程躏仇,在之前的 IRremote 范例中,可以看到“IRsendDemo”范例腺办,可以使用這個范例來測試紅外線發(fā)射:
按照注解來看焰手,這個范例可以發(fā)出 Sony 電視機(jī)的電源紅外線指令,至于那個Serial.read的if判斷怀喉,是要看看有無從“序列埠監(jiān)控視窗”收到輸入书妻,也就是你可在先前看到的“序列埠監(jiān)控視窗”中輸入文字然后按下“傳送”,這樣if條件就會成立躬拢,然后按照程式流程發(fā)出電源紅外線指令躲履,如果不想這么麻煩,就將if的部份注解掉聊闯,這樣就會不斷地發(fā)出電源紅外線指令了工猜。
電路的部份,只需要如下銜接就可以了菱蔬,要注意的是篷帅,由于 IRremote 的限制,你只能用 D3 腳位來送出訊號:
如果需要測試一下是不是正確地發(fā)出紅外線指令拴泌,你需要另一塊 Arduino 板子魏身,如先前在測試接收器的電路的方式銜接,然后上傳“IRrecvDemo”范例蚪腐,那么在“序列埠監(jiān)控視窗”中箭昵,你就可以看到以下的解碼訊息:
感謝CodeData用戶:caterpillar的貢獻(xiàn) 著作權(quán)歸作者所有
整理:寧波家電物聯(lián)網(wǎng)云平臺,中科極動云