實驗目的
練習用 IRRemote 函式庫接收紅外線訊號。在這個實驗裏,你將增加一顆 LED 當作紅外線訊號指示燈,並且讓指示燈在收到紅外線訊號的時候自動閃爍。
前提
在做這個實驗前,我假設:
- 你已經看過「IRRemote 紅外線遙控教學」一文,而且
- 也已經把 IRRemote 函式庫安裝起來了
材料
- 麵包板 x 1
- Arduino 主板 x 1
- 38 kHz 紅外線接收器(如 TSOP2438,TSOP4438, PNA4602, FM-8038TM2-5DN) x 1
- LED x 1
- 單心線 x N
接線
- 把 LED 接到 Arduino 板子上,LED 長腳(陽極)接到 pin13,短腳(陰極)接到 GND
- 照下表把紅外線接收器跟 Arduino 連接起來:
紅外線接收器接腳 Arduino 接腳 GND(-) 接到 GND Vcc(+ 或 V+) 接到 +5V 電源 Vout(或 OUT) 接到 pin 2。你可以接到其它 Digital pin,但程式要配合修改
▲ 有些紅外線接收器 GND 和 Vcc 是相反的,接線時請查閱你的 datasheet
接線圖中的 LED 沒有串接電阻,這是因為 Arduino 的輸出電流很小不會燒壞 LED,所以才敢這麼做,少接一顆電阻是為了簡化。一般來說,LED 串接一顆電阻 (220 歐姆)是個好主意。
程式
底下的程式(Example1.3.pde)示範如何增加紅外線指示燈,讓接在 pin 13 的指示燈在收到紅外線訊號的時候閃爍幾下:
程式碼本身就已經解釋得很清楚了,相信應該不需要多餘的解釋。
使用 Arduino 內建的 LED 當紅外線指示燈
其實 Arduino 板子 pin 13 上有內建一顆 LED,你可以直接用它當指示燈,不用另外接 LED:
▲ Arduino 板子 pin 13 上的內建 LED (標籤為 L)
如果你用 Arduino 內建的 LED 當作指示燈或是把 LED 指示燈接在 pin 13 上,IRrecv 也有提供一個 blink13() 的函式,你只要呼叫 blink13(true) 並傳入 true 參數,接著當收到紅外線訊號時,指示燈就會自動閃爍幾下。底下的程式(Example1.3v2.pde)示範 blink13() 函式的用法:
示範影片
▲ 用隨手可得的電視遙控器測試
動動腦
閱讀「Arduino 筆記 – Lab3 控制 LED 燈光亮度」和「Arduino 筆記 – Lab4 使用可變電阻調光」這兩篇,然後利用紅外線和 PWM 來調整燈光的亮度。控制方法可自行創造,例如: 可以把燈光亮度簡單分成 0% –> 25% –> 100% 三階,當收到第一個紅外線訊號時,便從 0% 調整為 25%,下一次變成開 100%,第三次就切到 0% 把燈關掉,照著這個流程輪迴調整燈光亮度。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。