Arduino 搭配 4 x 4 矩陣陣列 16 鍵薄膜開關 使用範例與教學
Arduino 搭配 4x4 薄膜開關鍵盤 (Membrane Switch Keypad) 使用範例與教學
什麼是矩陣鍵盤?
矩陣鍵盤是一種鍵盤,其按鍵排列方式如同矩陣,常作為微控制器(MCU)的外部設備。與普通鍵盤相比,矩陣鍵盤的結構更為複雜,其識別方式也較為特殊。在電路中,列線通常透過電阻連接至電源正極,而 MCU 的 I/O 埠與行線相連作為輸出端,列線的 I/O 埠則作為輸入端。
產品連結: 4 x 4 矩陣陣列 16 鍵薄膜開關 小鍵盤鍵盤兼容 Arduino/AVR/PIC
為什麼選擇矩陣鍵盤?
在設計電路時,對外部輸入的需求較多。如果每個按鍵獨立控制,會消耗大量的 I/O 資源,因此採用矩陣鍵盤來有效減少 I/O 埠的使用量。常見的矩陣鍵盤有 4x4 和 8x8 類型,其中 4x4 型鍵盤的應用更為廣泛。
透過矩陣設計,若鍵盤上按鍵數量較多,可以將按鍵排列為矩陣形式,減少 I/O 埠的使用。例如,對於 4x4 的鍵盤,4 個行線與 4 個列線可構成 16 個按鍵(4x4=16),相比每個按鍵獨立連接,能有效降低硬體資源的需求。
矩陣鍵盤的內部結構:
矩陣鍵盤的每條水平線與垂直線在交點處並非直接相連,而是透過按鍵觸點連接。這使得在有限的 I/O 埠數量下,可支持更多按鍵操作。例如,利用 4x4 的設計,只需 8 根連接線便可實現 16 個按鍵,比直接使用獨立按鍵的設計效率更高。
薄膜鍵盤的應用與優勢
薄膜鍵盤(Membrane Keyboard)是薄膜開關的一種應用,透過陣列式按鍵設計實現高效的操作。這種鍵盤結合了實用性與美觀性,結構由面板、上層電路、隔離層及底層電路組成,具有以下優勢:
- 美觀與現代化設計
- 體積小、重量輕
- 防潮、防塵、防油污、防酸鹼
- 抗震性能優異
- 壽命長
典型應用場景:
薄膜鍵盤因其功能多樣且耐用,廣泛應用於以下領域:
- 醫療設備
- 電腦控制系統
- 數位機床
- 電子秤
- 通訊設備
- 影印機、冰箱、微波爐
- 電風扇、洗衣機
- 電子遊戲機
總之,無論是功能密集的工業設備還是日常家電,薄膜矩陣鍵盤都能以其高效設計與出色性能,成為解決多按鍵輸入需求的理想選擇!
主要特性
優勢:
- 藝術化外觀與原創設計:造型美觀,兼具實用與時尚感。
- 輕巧設計:小尺寸、薄且輕便,幫助鍵盤實現輕薄短小與高智能化。
- 強大防護性:防潮、防塵、防油、防有害氣體、抗酸、防震,具備優異的密封性能。
- 耐用性佳:壽命長,耐彎曲,適合長期使用。
電子性能
- 額定電流: 35V(DC),100mA,1W
- 接觸電阻: 10Ω~500Ω
- 絕緣電阻: 100MΩ(100V)
- 耐電壓: 250VRms(50~60Hz,1 分鐘)
- 電擊抖動: <5ms
- 壽命: 觸控類型 ≥ 1 百萬次
機械性能
- 工作電壓: 觸控類型:170g
- 切換行程: 觸控類型:0.6~1.5mm
環境參數
- 工作溫度: -40°C ~ +80°C
- 儲存溫度: -40°C ~ +80°C
- 濕度條件: 40°C, 90%~95%, 240 小時
- 振動性能: 20G,最大值(10~200Hz,符合 Mil-SLD-202 M204,條件 B)
這些特性使薄膜鍵盤在多樣應用場景中具備卓越的耐用性與穩定性,是高要求環境下的理想選擇!
工作原理
當按鍵未被按下時,輸出端處於高電位,表示沒有按鍵被觸發,而行線的輸出為低電位。一旦按鍵被按下,輸入線的電位將被拉低。因此,透過讀取輸入線的狀態,可以判斷是否有按鍵被按下。
Arduino 實驗步驟
產品連結: 4 x 4 矩陣陣列 16 鍵薄膜開關 小鍵盤鍵盤兼容 Arduino/AVR/PIC
步驟 1:連接電路
步驟 2:編譯並上傳程式碼
在上傳程式碼之前,請先匯入所需的函式庫檔案。點擊 「工具」 => 「匯入函式庫」 => 「管理函式庫…」。
搜尋 「Keypad」,展開選項,然後點擊 「安裝」。
程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <Keypad.h> const byte ROWS = 4; const byte COLS = 4; char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {9, 8, 7, 6}; byte colPins[COLS] = {5, 4, 3, 2}; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup(){ Serial.begin(9600); } void loop(){ char key = keypad.getKey(); if (key != NO_KEY){ Serial.println(key); } } |
您可以嘗試按壓 KeyPad 按鈕,你會在 Serial 輸出畫面看到你剛按下對應的數字或字元。
發佈留言
很抱歉,必須登入網站才能發佈留言。