電容式觸控開關實驗(二):觸控式LED調光器

網拍上容易買到類似左下圖的4路觸控模組,對Arduino控制板而言,它相當於右下角的4組開關,所以程式不需要引用特別的程式庫:

TTP224 4路觸控模組

此觸控模組的主要構成電路如下,負責處理電容觸控訊號的核心是TTP224晶片。TTP224的技術文件指出,每個觸控感應端可連接0~50pF的電容,藉以調整觸控感應的靈敏度,此模組採用的電容值為30pF。每當觸控端感應到人體碰觸時,對應的OUT1~OUT4將輸出高電位,模組上的LED也將被點亮。

4路觸控模組的電路

相較於上一篇文章的簡易DIY觸控電路,使用觸控IC的好處是穩定、不易受外界環境影響(如:汗水、油污)和雜訊干擾,而且程式也簡單許多。

使用4路觸控開關模組製作LED調光器

本單元實驗將使用4路觸控模組的其中3個開關,當作LED燈的開關、調亮和調暗控制介面。

實驗材料

  • Arduino Uno控制板×1
  • 4路觸控開關模組×1
  • 電阻:680Ω×1
  • LED×1(顏色不拘)

LED接在Arduino的第5腳(或其他具PWM輸出的接腳),觸控模組的3個輸出,接Arduino的10~12腳。麵包板的接線示範:

4路觸控模組麵包版實驗電路

偵測開關訊號變化的程式

本單元程式將做出「按一下開、再按一下關」的開關效果。每碰觸一次開關,開關模組就會輸出一個脈衝(方波):

開關脈衝訊號

當觸控訊號從低電位變成高電位,代表有人碰觸了開關,程式需要依照第5腳的LED狀態,決定:

  • 若LED燈是亮著的,則要關閉它。
  • 若LED燈是熄滅的,則要點亮它。

偵測單一開關訊號變化的程式:

編譯、上傳程式之後,碰一下編號2的觸控板,可點亮LED;再碰一下觸控板,則關閉LED。

自訂觸鍵結構資料

本單元程式有三組觸控鍵,需要建立如下的變數來儲存接腳和開關狀態:

為了讓程式碼更清晰易讀,我們可以替具有相同資料結構的觸控鍵,定義如下的struct類型(struct類型定義的語法說明,請參閱「Mifare RFID-RC522模組實驗(二):C語言的結構(struct)與類型定義(typedef)說明」):

如此,便能用底下的敘述宣告電源鍵的接腳及其預設狀態:

觸控LED調光器的完整程式碼如下。「調亮」和「調暗」鍵只有在電源開啟(即,powerOn值為true)的狀態才有作用;燈光亮度值範圍介於0~255。

延伸閱讀

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *