最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【雕爺學(xué)編程】Arduino動(dòng)手做(131)---跑馬燈矩陣鍵盤(pán)模塊

2023-06-27 21:30 作者:驢友花雕  | 我要投稿

37款傳感器與執(zhí)行器的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟睿詫W(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動(dòng)手嘗試系列實(shí)驗(yàn),不管成功(程序走通)與否,都會(huì)記錄下來(lái)—小小的進(jìn)步或是搞不掂的問(wèn)題,希望能夠拋磚引玉。


【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料代碼+仿真編程+圖形編程)

實(shí)驗(yàn)一百三十一:YL-004老款20按鍵獨(dú)立鍵盤(pán) 跑馬燈矩陣鍵盤(pán)模塊


4X4矩陣鍵盤(pán)

是單片機(jī)外部設(shè)備中所使用的排布類(lèi)似于矩陣的鍵盤(pán)組。矩陣式結(jié)構(gòu)的鍵盤(pán)顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些,列線通過(guò)電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口則作為輸入。由于電路設(shè)計(jì)時(shí)需要更多的外部輸入,單獨(dú)的控制一個(gè)按鍵需要浪費(fèi)很多的IO資源,所以就有了矩陣鍵盤(pán),常用的矩陣鍵盤(pán)有4X4和8X8,其中用的最多的是4X4。

工作原理

矩陣鍵盤(pán)又稱(chēng)為行列式鍵盤(pán),它是用4條I/O線作為行線,4條I/O線作為列線組成的鍵盤(pán)。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣鍵盤(pán)中按鍵的個(gè)數(shù)是4X4個(gè)。這種行列式鍵盤(pán)結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。由于單片機(jī)IO端口具有線與的功能,因此當(dāng)任意一個(gè)按鍵按下時(shí),行和列都有一根線被線與,通過(guò)運(yùn)算就可以得出按鍵的坐標(biāo)從而判斷按鍵鍵值。


行列掃描法原理
1、使行線為編程的輸入線,列線是輸出線,拉低所有的列線,判斷行線的變化,如果有按鍵按下,按鍵按下的對(duì)應(yīng)行線被拉低,否則所有的行線都為高電平。
2、在第一步判斷有鍵按下后, 延時(shí)10ms消除機(jī)械抖動(dòng),再次讀取行值,如果此行線還處于低電平狀態(tài)則進(jìn)入下 一步,否則返回第一步重新判斷。
3、開(kāi)始掃描按鍵位置,采用逐 行掃描,每間隔1ms的時(shí)間,分別拉低第一列,第二列,第三列,第四 列,無(wú)論拉低哪一列其他三列都為高電平,讀取行值找到按鍵的位置,分別把行值和列值儲(chǔ)存在寄存器里。
4、從寄存器中找到行值和列 值并把其合并,得到按鍵值,對(duì)此按鍵值進(jìn)行編碼,按照從第一行第一個(gè)一直到第四行第四個(gè)逐行進(jìn)行編碼,編碼值從“0000” 至“1111” , 再進(jìn)行譯碼,最后顯示按鍵號(hào)碼。



4*4矩陣鍵盤(pán)+4位獨(dú)立按鍵+8位跑馬燈組合模塊

4*4矩陣鍵盤(pán)+4位獨(dú)立按鍵+8位跑馬燈組合模塊參考電原理圖

模塊上4*4矩陣鍵盤(pán)有一個(gè)8腳的端口,理論上可以直接插到Arduino的0-7腳上,但0,1腳用于串口通信,所以只能選擇2~13腳,這里選用了2-9腳。

Keypad Pin L1 –> Arduino Pin 2??(行)

Keypad Pin L2 –> Arduino Pin 3

Keypad Pin L3 –> Arduino Pin 4

Keypad Pin L4 –> Arduino Pin 5

Keypad Pin R1 –> Arduino Pin 6??(列)

Keypad Pin R2 –> Arduino Pin 7

Keypad Pin R3 –> Arduino Pin 8

Keypad Pin R4 –> Arduino Pin 9


測(cè)試矩陣鍵盤(pán)部分接線示意圖

矩陣鍵盤(pán)所需庫(kù)文件<Keypad>
在Arduino IDE 1.8.10 或者以上版本中, 項(xiàng)目->加載庫(kù)->管理庫(kù)中搜索Keypad,然后安裝即可。
也可以下載庫(kù)(需要下載庫(kù)文件?https://github.com/Chris--A/Keypad),然后手動(dòng)添加到IDE中。

Arduino實(shí)驗(yàn)開(kāi)源代碼


串口輸出16位矩陣鍵值

程序之二:矩陣鍵盤(pán)部分測(cè)試每個(gè)按鍵的按下與松開(kāi)


實(shí)驗(yàn)串口返回情況

程序之三:矩陣鍵盤(pán)部分測(cè)試按鍵'*'和 '#'控制LED燈(板載13腳)



'#'鍵控制LED燈自鎖開(kāi)關(guān),'*'鍵按下時(shí)LED閃爍,松開(kāi)熄滅

測(cè)試跑馬燈部分接線示意圖

程序之四:測(cè)試跑馬燈部分,循環(huán)逐個(gè)點(diǎn)亮,逐個(gè)熄滅

Arduino實(shí)驗(yàn)場(chǎng)景圖

程序之五:測(cè)試跑馬燈部分,循環(huán)單個(gè)熄滅

測(cè)試獨(dú)立按鍵部分+跑馬燈部分


程序之六:測(cè)試獨(dú)立按鍵部分+跑馬燈部分,按鍵控制跑馬燈


實(shí)驗(yàn)開(kāi)源圖形編程(Mind+、編玩邊學(xué))

實(shí)驗(yàn)開(kāi)源仿真編程(Linkboy V4.62)


【雕爺學(xué)編程】Arduino動(dòng)手做(131)---跑馬燈矩陣鍵盤(pán)模塊的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
祁连县| 阿克苏市| 金平| 庆城县| 龙州县| 临城县| 巴马| 福贡县| 郎溪县| 昂仁县| 临猗县| 万荣县| 六盘水市| 南江县| 焦作市| 苍山县| 綦江县| 兰溪市| 辽宁省| 安乡县| 榆社县| 马关县| 敦煌市| 嫩江县| 涡阳县| 临武县| 广德县| 开江县| 宁都县| 鄂温| 方城县| 杭锦后旗| 乌拉特后旗| 嘉鱼县| 呼伦贝尔市| 安塞县| 沭阳县| 苍梧县| 芜湖市| 东兴市| 灵宝市|