Arduino 4×4薄膜鍵盤模組實驗(二):減少佔用Arduino的數位接腳

連接一個4×4薄膜鍵盤要佔用8個數位腳,若數位腳不夠用,大致有下列幾個解決方法:

  • 使用專屬IC連接鍵盤,像74C922,是一個16鍵的解碼IC,能將8個鍵盤輸入腳,降低成5個接腳(4個資料輸出腳,1個「有新的資料」訊號腳)。
  • 擴充數位腳,例如,利用PCF8574這個IC,透過I2C匯流排擴充數位介面,從這裡可下載Arduino的PCF8574程式庫。“I2C port Expander and 74C922 Keypad Decoders”這篇文章介紹了使用PCF8574擴充Arduino的數位腳,並採用74C922解碼鍵盤訊號的例子。
  • 使用並列轉串列的IC(位移暫存器),像74HC165,這一篇文章包含使用74HC165連接10個按鈕輸入的例子。

把4×4按鍵轉換成類比訊號輸出

還有一種簡單、經濟的解決方法:使用數個電阻構成分壓電路,不同的按鍵將產生不同的電壓輸出,因此只須佔用一個Arduino的類比輸入腳。

4x4按鍵轉換成類比訊號輸出的電路

此電路的運作原理如下:若按下按鍵“1”,電阻1KΩ將和10KΩ構成分壓電路:

按下按鍵1的結果

若按下按鍵“5”,則是1KΩ+1KΩ+220Ω,共2220Ω和10KΩ形成分壓電路:

按下按鍵5的結果

按鍵的分壓電阻值可以自行配置,不一定要採用上圖的1KΩ和220Ω電阻值,底下是另一個功能相同的電路(取自Microchip論壇的這一篇討論文),電阻值配置不同,按鍵產生的電壓值也和上圖不同,你要自行測試每個按鍵被Arduino的analogRead()指令讀取到的數值。這個電路的輸出端連接一個由電阻和電容構成的簡易消除彈跳(濾波)電路:

simple 1 pin 4x4 matrix keypad

實驗材料與麵包板接線示範

本單元的實驗材料如下:

  • Arduino Uno控制板,一片
  • 4×4薄膜鍵盤(或者類似款式的鍵盤)×1
  • 電阻:220Ω(紅紅棕)×3、1KΩ(棕黑紅)×4、10KΩ(棕黑橙)×1

麵包板接線示範:

4x4按鍵類比訊號輸出的麵包板接線示範

輸出類比訊號的按鍵程式

本單元程式採用ExperimentalTechnik網站的Matrix Keypad文章提供的程式庫,這個程式庫必須搭配上面的電阻配置。請先下載AnalogMatrixKeypad程式庫,將它解壓縮到Arduino的libraries資料夾,再上傳這個程式碼:

編譯並上傳程式碼之後,開啟序列埠監控視窗,再按下薄膜鍵盤的任何按鍵,將能在序列埠監控視窗顯示該按鍵的字元。

未完,待續…

延伸閱讀

發表迴響

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