矩阵式键盘
矩陣式鍵盤碼值
最近正好學習到了矩陣式鍵盤,然而當時的我是這樣的
這是什么東西!!于是當我決定向百度求助時,依舊一臉懵,但實踐出真理嘛。秉持著這個理念,擼起袖子說干就干。
首先,我們要準備的器械有
為了方便理解我將行列分別進行了編號
左邊四個接口為行數,右邊四個為列數,分別對應第1,2,3,4行。
接下來讓我們看看那些碼值
哦,是不是一點頭緒都沒有,不急實驗繼續。
注意,這里是keypad而不是keyboard
#include <Key.h> #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'}}; //生成數組keysbyte rowPins[ROWS] = {2, 3, 4, 5};byte colPins[COLS] = {6, 7, 8, 9}; //定義引腳號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);}}OK,接下來讓我們看看運行的結果
在這里放上高低電平反轉法的概念以便更方便地理解
假設,當我們按下1時,我們可以由反轉法得到,相對應的1號位為零,因此他的行值與列值分別為1110和1110,轉換為十六進制則為ee,也就是說此時的1的碼值為0xee.
haha,這時,不就和之前的碼值相對應了嘛,為了進一步驗證其正確性我們再選取一個數進行驗證。
假設當8按下時,我們可以得到1011與1101,即 0xdb。
到此對于碼值我們應該明白是怎么一回事了,回想當初原來是自己將數值弄反了【捂臉】,當然這也是我個人基于百度的理解,如有錯誤還請諒解指出。
總結
- 上一篇: 工业机器人 扬州 江都_扬州市14家企业
- 下一篇: hadoop2 Ubuntu 下安装部署