- 商品說明
商品說明
4×4矩陣薄膜鍵盤 支援Arduino 產品介紹
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自帶的串口監控窗口,當我按下小鍵盤上的一些按鍵時,監控窗口將會顯示一系列對應的字符,如圖所示。
相關商品
-
RFID RC522 鑰匙扣卡 13.56MHz 相容 Philip Mifare S50 非接觸式 (10個一組)
0 滿分 5 分由ABS外殼封裝芯片線圈並填充環氧樹脂,通過超聲波焊接組合的具有各種造型的異形卡。應用範圍:水錶預付費,校園一卡通、公交儲值卡、高速公路收費、停車場、小區管理
- IC鑰匙扣卡頻率: 13.56MHZ
- IC鑰匙扣卡規格: 28*35.3*4MM IC鑰匙
NT$129NT$86 未稅 -
TXS0108E 8路電平轉換模組 高速全雙工 8位元雙向電壓轉換器
0 滿分 5 分- 模組使用晶片:TXS0108E
- 提供雙向通訊能力
- VCCA端支援電壓 1.2V-3.6V
- VCCB端支援電壓 1.65v-5.5v
- 可以提供3.3-5V 1.8-3.3v等常見電平轉換能力
- 主要應用,5V單片機和3.3V模組 3.3V單片機與5V模組, 等通訊相容支援
- 單片機與SD卡通訊的電平轉換
- 單片機與iic,spi 串口設備電平轉換
- OE使能IO高電平有效,建議接低電壓端的IO口
NT$114NT$80 未稅 -
MAX485 模組 TTL TO RS-485/RS422 5V Arduino 可用
0 滿分 5 分採用原裝的MAX485收發晶片。實現UART串口與RS485的信號轉換,實現半雙工RS485傳輸,傳輸速率可達10M。供電電壓3.3V,兼容5V邏輯電平。RS485接口,具有短路保護功能,適應-7v至+12v電壓。可以掛32個終端節點發送、接收開始使用RTS信號控制,或者FT232RL的TXDEN信號控制。
NT$40NT$20 未稅 -
DS3231 AT24C32 高精度 時鐘模組 for Arduino IIC 儲存模組 附贈CR2032鋰電池
0 滿分 5 分DS3231是低成本、高精度I2C即時時鐘(RTC),具有集成的溫補晶振(TCXO)和晶體。該器件包含電池輸入端,斷開主電源時仍可保持精確的計時。集成晶振提高了器件的長期精確度,並減少了生產線的元件數量。DS3231提供商用級和工業級溫度範圍,採用16引腳300mil的SO封裝。
-
Touch 觸摸感測器模組 1路觸摸開關感測器 TTP223B
0 滿分 5 分Touch 觸摸感測器模組 是一個基於觸摸檢測IC(TTP223B)的電容式點動型觸摸開關模組。常態下,模組輸出低電平,模式為低功耗模式;當用手指觸摸相應位置時,模組會輸出高電平,模式切換為快速模式;當持續12秒沒有觸摸時,模式又切換為低功耗模式。可以將模組安裝在非金屬材料如塑膠、玻璃的表面,另外將薄薄的紙片(非金屬)覆蓋在模組的表面,只要觸摸的位置正確,即可做成隱藏在牆壁、桌面等地方的按鍵。該模組可以讓你免除常規按壓型按鍵的煩惱。
-
Micro SD卡讀寫模組 SPI介面,迷你TF卡讀寫 MicroSD Card Adapter 相容Arduino
0 滿分 5 分MicroSD Card Adapter是Micro SD卡讀寫模組,通過檔案系統及SPI介面驅動程式,單片機系統即可完成MicroSD卡內的檔進行讀寫。Arduino用戶可直接使用Arduino IDE自帶的SD卡程式庫即可完成卡的初始化和讀寫,本模組特點如下:
- 支持Micro SD卡、Micro SDHC卡(高速卡)
- 板載電平轉換電路,即介面電平可為5V或3.3V
- 供電電源為4.5V~5.5V,板載3.3V穩壓電路
- 通信介面為標準SPI介面
- 4個M2螺絲定位孔,便於安裝
-
有源蜂鳴器 驅動模組 低電平觸發 蜂鳴器控制板
0 滿分 5 分- 有源蜂鳴器內部帶震盪源,所以只要一通電就會叫
- 程序控制方便,單片機一個高低電平就可以讓其發出聲音,而無源蜂鳴器卻做不到。
注意,這裡的“源”不是指電源。而是指震盪源。
-
Grove – Button按鈕控制器 支援Arduino與樹莓派
0 滿分 5 分Grove-Button 按鈕控制器 模組, 本新版本包含一個獨立的按鈕,它配置了下拉電阻 – 準備好與我們的微控制器作為數字輸入使用。
-
Grove – Thumb Joystick 拇指型搖桿
0 滿分 5 分Grove – Thumb Joystick是Grove兼容模組,非常類似於PS2(PlayStation 2)控制器上的“模擬”操縱桿。X軸和Y軸是兩個~10k電位器,通過生成模擬信號來控制2D運動。操縱桿還有一個按鈕,可用於特殊應用。當模組處於工作模式時,它將輸出兩個模擬值,代表兩個方向。
NT$276NT$200 未稅 -
無源蜂鳴器 驅動模組 低電平觸發 蜂鳴器控制板
0 滿分 5 分- 無源內部不帶震盪源,所以如果用直流信號無法令其鳴叫。必須用2K~5K的方波去驅動它
- 聲音頻率可控,可以做出“多來米發索拉西”的效果。
NT$38NT$20 未稅