2011年4月1日 星期五

2.3 用光敏電阻切換電視頻道

實驗目的

練習用光敏電阻切換電視頻道。在這個實驗裏,你將練習用 IRRemote 函式庫發射紅外線訊號,然後搭配兩顆光敏電阻來切換電視頻道,當發現左邊比較亮時,就控制電視切到上一個頻道,當發現右邊比較亮時,就控制電視切到下一個頻道。

前提

在做這個實驗前,我假設:

  1. 你已經看過「IRRemote 紅外線遙控教學」這系列的教學,而且
  2. 已經把 IRRemote 函式庫安裝起來了
材料
  • 麵包板 x 1
  • Arduino 主板 x 1
  • 發射波長為 940nm 紅外線發射器 x 1
  • 100 歐姆電阻 x 1
  • 光敏電阻(photocell) x 2
  • 10k ohm 電阻 x 2
  • 單心線 x N
接線
  • 把紅外線發射器(IR LED)接到 pin 3,長腳(陽極)串接一顆 100 ohm 電阻接到 pin 3,短腳(陰極)接到 GND
  • 左手邊的光敏電阻一支腳接到 5V,另一支腳串接一顆 10k 電阻接到 analog pin 0
  • 右手邊的光敏電阻一支腳接到 5V,另一支腳串接一顆 10k 電阻接到 analog pin 1

image

注意!因為 IRRemote 函式庫限定使用 pin 3,所以你只能把紅外線發射器接到 pin 3,不能接到其它腳位。

錄製切換頻道鈕的紅外線編碼

參考「1.5 兩個取得遙控器紅外線資料的方法」錄製電視遙控器的紅外線資料。以我所用的電視遙控器為例,用 IRRemote 解碼之後,可知我電視遙控器講的是 NEC 紅外線協定,紅外線編碼資料長度都是 32 位元。我取得的 Channel+ (上一個頻道)和 Channel- (下一個頻道)兩個按鍵的紅外線編碼如下:

程式

底下就是用光敏電阻控制電視機切換頻道的程式(Photocell_TVRemote.pde):

注意! 記得把 irKeyCodes 裏的資料換成你自己的遙控器的紅外線編碼。另外,如果你的遙控器講的不是 NEC 而是其它紅外線協定,例如 Philips RC5,記得也要把 sendNEC() 這行換成其它發射紅外線的函式,例如 sendRC5()。

示範影片
動動腦
  1. 把兩顆光敏電阻換成兩顆紅外線動作感測器(PIR Motion Sensor),用紅外線動作感測器來切換電視頻道。
  2. 把兩顆光敏電阻換成聲音感測器,然後拍拍手切換電視頻道。
  3. 想想看,還可以結合什麼感測器來遙控電視機?
延伸閱讀

0 意見: