矩陣鍵盤是讀取按鈕陣列的有效方式。其中的一些例子包括電話上的撥號(hào)盤、銷售點(diǎn)(信用卡支付)機(jī)器上的小鍵盤、計(jì)算機(jī)鍵盤,甚至電鋼琴上的鍵盤。
讀取大量按鈕輸入的一種方法是將每個(gè)按鈕連接到其自己的微控制器輸入引腳。對(duì)于4x4鍵盤,這將需要16個(gè)GPIOs(通用輸入/輸出)引腳。
然而,通過將按鈕連接成矩陣,同樣數(shù)量的按鈕可以僅用8個(gè)GPIOs讀取。
這減少了所需的微控制器引腳數(shù)量,以及相關(guān)布線數(shù)量PCB走線數(shù)量。
矩陣鍵盤以行和列的網(wǎng)格布線(盡管它們實(shí)際上不必以那個(gè)方向布置,例如在電子鋼琴鍵盤的例子中)。在微控制器上,行或列引腳被永久設(shè)置為輸入(在本文中,我們將堅(jiān)持使用行連接實(shí)現(xiàn)此目的),而另一組引腳(在本文中,我們將堅(jiān)持使用列連接實(shí)現(xiàn)此目的)在輸出(驅(qū)動(dòng)為低電平)和浮動(dòng)(實(shí)際上是開漏輸出)之間切換。
行輸入引腳上需要上拉電阻,可以在微控制器外部添加,也可以在微控制器內(nèi)部激活(如果微控制器包含此功能)。一些微控制器具有開漏輸出引腳(用于列),或者引腳可以簡單地設(shè)置為輸入,以便使它們浮動(dòng)。
如果您不熟悉上拉電阻、浮動(dòng)和/或開漏等術(shù)語,這里有一些簡單的解釋:
一些定義
浮動(dòng)輸入是指沒有被主動(dòng)驅(qū)動(dòng)到任何特定電平的輸入,實(shí)際上可以是任何電平(例如,基于環(huán)境中的靜電)。我們都使用過自動(dòng)關(guān)閉的門,比如公共設(shè)施中常見的門——除非你主動(dòng)把門打開,否則會(huì)有一種機(jī)制將它再次關(guān)閉。如果沒有自動(dòng)關(guān)閉機(jī)制(現(xiàn)在想象門沒有閂鎖機(jī)制),門會(huì)被風(fēng)吹動(dòng)或被進(jìn)出的人移動(dòng),它不會(huì)默認(rèn)到任何特定的位置。
上拉(或下拉)電阻類似于這些門上的自動(dòng)關(guān)閉機(jī)制,它在不被主動(dòng)驅(qū)動(dòng)時(shí)將輸入保持在特定電平。上拉(或下拉)電阻可視為一個(gè)彈簧,當(dāng)它未被主動(dòng)驅(qū)動(dòng)時(shí),將輸入拉至特定電平,您可能會(huì)注意到電阻符號(hào)實(shí)際上看起來像一個(gè)小彈簧:
開漏輸出只能被驅(qū)動(dòng)為低電平,而不能被驅(qū)動(dòng)為高電平;輸出為低電平或浮動(dòng)。實(shí)質(zhì)上,輸出只是簡單地連接到晶體管的漏極引腳(因此稱為開漏)。
通過在微控制器引腳作為輸入(浮動(dòng)、無上拉或下拉電阻)和被驅(qū)動(dòng)為低電平的輸出之間切換,可以實(shí)現(xiàn)類似的效果。
讀取矩陣鍵盤
為了讀取矩陣中的任何特定按鈕,我們將相應(yīng)的列引腳驅(qū)動(dòng)為低,然后讀取相應(yīng)的行引腳;如果row引腳讀數(shù)為低,則按鈕被按下,如果讀數(shù)為高,則按鈕不被按下。
這通常是在快速順序掃描操作中完成的,以檢查矩陣中的每個(gè)按鈕,依次驅(qū)動(dòng)每個(gè)列引腳為低,同時(shí)讀取其間的每個(gè)行引腳。同時(shí)按鍵不會(huì)給這種方法帶來任何問題,并且仍然可以單獨(dú)讀取每個(gè)按鍵。
去抖動(dòng)
機(jī)械開關(guān)還會(huì)出現(xiàn)反彈現(xiàn)象,即開關(guān)的觸點(diǎn)在接觸時(shí)會(huì)發(fā)生物理反彈,從而導(dǎo)致開關(guān)在新狀態(tài)下穩(wěn)定之前出現(xiàn)幾次快速電壓轉(zhuǎn)換:
如果微控制器非常頻繁地讀取輸入,那么它可以將彈跳記錄為按鈕按壓的次數(shù)(而不是用戶期望的僅僅一次按壓);對(duì)此最簡單的解決方案是在按鈕的每個(gè)后續(xù)讀取之間簡單地留下一些延遲,這將給予按鈕足夠的時(shí)間在讀取之間轉(zhuǎn)換(通常10-50毫秒就足夠了)。這類技術(shù)被稱為開關(guān)去抖。
審核編輯:黃飛
-
微控制器
+關(guān)注
關(guān)注
48文章
7649瀏覽量
152109 -
矩陣鍵盤
+關(guān)注
關(guān)注
7文章
207瀏覽量
31545 -
GPIO
+關(guān)注
關(guān)注
16文章
1216瀏覽量
52379 -
高電平
+關(guān)注
關(guān)注
6文章
154瀏覽量
21499 -
PCB
+關(guān)注
關(guān)注
1文章
1825瀏覽量
13204
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論