-30%

4×4矩陣薄膜鍵盤 支援Arduino

NT$48 NT$33 未稅

4×4矩陣薄膜鍵盤

該鍵盤帶有8P杜邦頭,間距2.54mm。可插上排針,然後連接到Arduino,使用非常簡單。鍵盤背面白色貼紙可揭去,能牢固粘貼於機箱表面。你可以用它輸入數字參數等信息,特別是對於LCD模塊,GSM/GPRS模塊等需要參數輸入的模塊。薄膜防水耐用,可經受幾萬次按壓。

尚有庫存

貨號: 7547421(C2-11) 分類: 標籤:
  • 商品說明

商品說明

4×4矩陣薄膜鍵盤 支援Arduino

4×4矩陣薄膜鍵盤

8P杜邦頭,間距2.54mm,可插在排針上連接電路;

鍵盤背面白色貼紙揭去即可牢固粘貼於機箱表面

Arduino 4×4矩陣薄膜鍵盤

我們以4×4矩陣鍵盤為例來說明使用方法。將16個按鍵排成4行4列,每一行將每個按鍵的一段連接在一起構成行線,每一列也類似,這樣便一共有4行4列共8根線,我們將這8根線依圖連接到Arduino的8個數字I/O口上。
檢測的原理是,先送一列低電平,其餘列均為高電平,然後立即輪流檢測一次各行是否有低電平,若沒有則說明送低電平這一列沒有鍵被按下,然後繼續輪次送低電平到其餘列掃描。若一次送低電平到列,並逐檢測每行的過程中有低電平,則該行有按鍵被按下,而送低電平的列則為被按下鍵的列數。行數、列數均確定後,該按鍵即被確定。因為Arduino逐行逐列掃描和檢測的速度足夠快,所以你無須擔心它會遺漏被你按下的鍵。
該示例程序中,我們定義和使用了一個字符二維數組,多維數組屬於程序設計中相對高階的內容,第二篇中沒有講述,這裡補充說明一下。
在本站C語言介紹的文章中,我們簡要介紹了數組這種數據類型。數組就是給一類型的簡單數據依次編號,a[0]、a[1]、a[2]、a[3]…。但這種數據類型在某些場合是不夠方便的,譬如,我要定義一個數組,記錄9×9乘法表的結果。記錄99乘法表結果的最佳辦法不是定義一個長度為81的數組,而是定義一個9行9列的數組,這樣,引用數組元素的下標就有兩個,行和列,這樣有兩個下標量的數組稱為二維數組,依次類推還有三維數組等等。

 

 

顯然,二維數組給記錄鍵盤按鍵字符這樣的數據帶來了方便,譬如我需要知道鍵盤第2行第3列的數據,只要引用已經定義好的二維數組hexaKeys中的hexaKeys[2][3 ]就行。錯啦!變態的程序員都是從零開始數數,而不是一。所以引用第二行第三列的數據應該是hexaKey[1][2]。在二維數組定義之初,我們就可以對其進行賦值,以上述4×4鍵盤為例,其格式為

char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};

以下是連線硬件圖

Arduino 範例程式

#include <Keypad.h>

const byte ROWS = 4; //四行
const byte COLS = 4; //四列
//定义键盘上的按键标识
char hexaKeys[ROWS][COLS] = {
 {'1','2','3','A'},
 {'4','5','6','B'},
 {'7','8','9','C'},
 {'*','0','#','D'}
};
byte rowPins[ROWS] = {4, 5, 6, 7}; //连接到行扫描的输入输出端口
byte colPins[COLS] = {8, 9, 10, 11}; //连接到列扫描的输入输出端口

//定义Keypad类的实例
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup(){
 Serial.begin(9600);
}

void loop(){
 char customKey = customKeypad.getKey();

 if (customKey){
 Serial.println(customKey);
 }
}

該程序的作用是,不斷檢測鍵盤是否有按鍵被按下,如果有將被按下的鍵檢測出來,然後打印到出口輸出。

打開Arduino IDE自帶的串口監控窗口,當我按下小鍵盤上的一些按鍵時,監控窗口將會顯示一系列對應的字符,如圖所示。