- 商品說明
商品說明
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自帶的串口監控窗口,當我按下小鍵盤上的一些按鍵時,監控窗口將會顯示一系列對應的字符,如圖所示。
相關商品
-
360度 旋轉編碼器模組 支援Arduino
0 滿分 5 分增量編碼器是一種將旋轉位移轉換為一連串數字脈衝信號的旋轉式傳感器。這些脈衝用來控制角位移。在 Eltra 編碼器中角位移的轉換採用了光電掃描原理。讀數係統以由交替的透光窗口和不透光窗口構成的徑向分度盤(碼盤)的旋轉為依據,同時被一個紅外光源垂直照射,光把碼盤的圖像投射到接收器表面上。接收器覆蓋著一層衍射光柵,它具有和碼盤相同的窗口寬度。接收器的工作是感受光盤轉動所產生的變化,然後將光變化轉換成相應的電變化。再使低電平信號上升到較高電平,並產生沒有任何干擾的方形脈衝,這就必須用電子電路來處理。讀數係統通常採用差分方式,即將兩個波形一樣但相位差為 180 °的不同信號進行比較,以便提高輸出信號的質量和穩定性。讀數是再兩個信號的差別基礎上形成的,從而消除了乾擾。
NT$62NT$43 未稅加入購物車Quick View -
加入購物車Quick View
Grove – Button按鈕控制器 支援Arduino與樹莓派 seeed原廠
0 滿分 5 分加入購物車Quick View -
Grove-Magnetic Switch 磁力開關模組 seeed原廠
0 滿分 5 分NT$114NT$100 未稅加入購物車Quick View -
AT24C256 EEPROM 儲存模組/記憶體模組 Arduino 擴充儲存記憶體專用
0 滿分 5 分AT24C256 EEPROM 儲存模組/記憶體模組 Arduino 擴充儲存記憶體專用
容量:256KB I2C接口
- 板載8P晶片座,安裝AT24C256晶片;
- 排針供電,板載電源指示燈;
- 板載I2C通訊所需的上拉電阻;
- 所有管腳均引出並標注,地址輸入和寫保護管腳直接可以跳線設置;
- PCB板子尺寸:36.5(mm)x12(mm)
NT$81NT$67 未稅加入購物車Quick View -
RS232 轉TTL模組 2代串口模組 帶收發指示燈
0 滿分 5 分RS232 轉TTL模組2代 串口模組
全新升級RS232串口轉TTL模組2代,晶片更穩定,3V , 5V 兼用,出廠100%檢測!
NT$71NT$38 未稅加入購物車Quick View -
滑動電位器 滑調電位器模組 可調電阻
0 滿分 5 分滑動電位器 滑調電位器模組 可調電阻
10K Sliding Slider Potentiometer Module
線性滑動電位器模塊最大阻值為10K歐,當你把控制桿從一端滑到另外一端,電位器兩端的電壓值在0到輸入的VCC之間變化 。結合Arduino 感測器擴展板,可實現與位置變化相關的互動作品。
雙聯直滑電位器,具有2個輸出埠,資料線隨意插一邊使用效果都是一樣的,相當於做了一個備用。
NT$114NT$86 未稅加入購物車Quick View -
TXS0108E 8路電平轉換模組 高速全雙工 8位元雙向電壓轉換器
0 滿分 5 分NT$114NT$86 未稅加入購物車Quick View -
Grove – Fingerprint Sensor 光學指紋感測器模組 指紋建檔/識別 seeed原廠
0 滿分 5 分指紋感測器模組通過光學檢測,識別輸入的指紋是否和已經建檔錄存的指紋數據統一。本指紋識別感測器採用高性能的DSP晶片進行圖片渲染、計算、識別、搜索。你也可以直接錄存新的指紋,最多可以錄入162個。當傳感器工作時,紅色LED開始閃爍。適合用來做指紋鎖等項目。
NT$1,667NT$1,300 未稅加入購物車Quick View -
TTL 轉 RS485/RS422 模組 MAX485 Arduino 可用
0 滿分 5 分MAX485 Module TTL 轉 RS485/RS422 模組 MAX485 Arduino 可用 TTL 轉 RS-485 可雙向,半雙工,多節點傳輸
採用原裝的MAX485收發晶片。實現UART串口與RS485的信號轉換,實現半雙工RS485傳輸,傳輸速率可達10M。供電電壓3.3V,兼容5V邏輯電平。RS485接口,具有短路保護功能,適應-7v至+12v電壓。可以掛32個終端節點發送、接收開始使用RTS信號控制,或者FT232RL的TXDEN信號控制。可選購FT232RL模組, 可以組成性能穩定的USB轉RS485模組!
NT$76NT$52 未稅加入購物車Quick View -
Touch 觸摸感測器模組 1路觸摸開關傳感器
0 滿分 5 分該模組是一個基於觸摸檢測IC(TTP223B)的電容式點動型觸摸開關模組。常態下,模組輸出低電平,模式為低功耗模式;當用手指觸摸相應位置時,模組會輸出高電平,模式切換為快速模式;當持續12秒沒有觸摸時,模式又切換為低功耗模式。可以將模組安裝在非金屬材料如塑膠、玻璃的表面,另外將薄薄的紙片(非金屬)覆蓋在模組的表面,只要觸摸的位置正確,即可做成隱藏在牆壁、桌面等地方的按鍵。該模組可以讓你免除常規按壓型按鍵的煩惱。
NT$48NT$38 未稅加入購物車Quick View