- 商品說明
商品說明
4×4矩陣薄膜鍵盤 支援Arduino
4×4矩陣薄膜鍵盤
8P杜邦頭,間距2.54mm,可插在排針上連接電路;
鍵盤背面白色貼紙揭去即可牢固粘貼於機箱表面
我們以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自帶的串口監控窗口,當我按下小鍵盤上的一些按鍵時,監控窗口將會顯示一系列對應的字符,如圖所示。
相關商品
-
AT24C256 EEPROM 儲存模組/記憶體模組 Arduino 擴充儲存記憶體專用
0 滿分 5 分AT24C256 EEPROM 儲存模組/記憶體模組 Arduino 擴充儲存記憶體專用
容量:256KB I2C接口
- 板載8P晶片座,安裝AT24C256晶片;
- 排針供電,板載電源指示燈;
- 板載I2C通訊所需的上拉電阻;
- 所有管腳均引出並標注,地址輸入和寫保護管腳直接可以跳線設置;
- PCB板子尺寸:36.5(mm)x12(mm)
NT$81NT$67 未稅加入購物車Quick View -
PL2303HX USB 轉 TTL 序列傳輸線
0 滿分 5 分注意事項: 目前PL2303HX 僅支援Windows XP/Vista/7 和Linux 使用,如果是Windows 8 和Mac 作業系統,需使用 PL2303TA 才能正常使用。
對於所有使用USB轉TTL 下載線的機子,無論是3端的,或是4端5端6端的,都是只需要就3條線的,就是下載線的發送端接機子的接收端(TXD–RXD),下載線的接收端接機子發送端的(RXD–TXD),下載線的地接機子的地(GND–GND)就可以。
NT$76NT$40 未稅加入購物車Quick View -
JoyStick 雙軸按鍵搖杆模組
0 滿分 5 分PS2雙軸按鍵遊戲搖桿模塊採用SONY公司PS2遊戲手柄上原裝優質金屬按鍵搖桿電位器,模塊特設二路模擬輸出和一路數字輸出接口,輸出值分別對應(X,Y)雙軸偏移量,其類型為模擬量;按鍵表示用戶是否在Z軸上按下,其類型為數字開關量。模塊集成電源指示燈,可顯示工作狀態;坐標標識符清晰簡明、準確定位;用其可以輕鬆控制物體(如二自由度舵機雲台)在二維空間運動,因此可以通過Arduino控制器編程,傳感器擴展板插接,完成具有創意性遙控互動作品
NT$62NT$20 未稅加入購物車Quick View -
加入購物車Quick View
Grove – Button按鈕控制器 支援Arduino與樹莓派 seeed原廠
0 滿分 5 分加入購物車Quick View -
無源蜂鳴器 驅動模組 低電平觸發 蜂鳴器控制板
0 滿分 5 分無源蜂鳴器模組
- 無源內部不帶震盪源,所以如果用直流信號無法令其鳴叫。必須用2K~5K的方波去驅動它
- 聲音頻率可控,可以做出“多來米發索拉西”的效果。
NT$38NT$20 未稅加入購物車Quick View -
Grove – Recorder v3.0 錄音感測器 錄音機 語音錄放模組 seeed原廠
0 滿分 5 分NT$733NT$560 未稅加入購物車Quick View -
炫光型電容式觸摸感測器模組
0 滿分 5 分炫光型電容式觸摸感測器模組
在便攜式媒體播放器和移動手持終端等大容量、高可視性產品的應用中,觸摸按鍵已被廣泛採用。由於其具有方便易用,時尚和低成本的優勢,越來越多的電子產品開始從傳統機械按鍵轉向觸摸式按鍵。
加入購物車Quick View -
Grove-Magnetic Switch 磁力開關模組 seeed原廠
0 滿分 5 分NT$114NT$100 未稅加入購物車Quick View -
Grove – Thumb Joystick 拇指型搖桿 seeed原廠
0 滿分 5 分此模組是一個相容 Grove 介面的用戶控制模組,非常類似於PS2(PlayStation 2)控制器上的“模擬”操縱桿。
NT$276NT$200 未稅加入購物車Quick View -
微動開關 TACK-SW 4P 6x6x5mm(H) 10個一包
0 滿分 5 分微動開關 TACK-SW 10P 一包
尺寸:6mm x 6mm x 5.0mmNT$29NT$24 未稅加入購物車Quick View