從零開始制作一個(gè)5x5鍵盤矩陣。
大家好,歡迎回來。這是一些有趣又有用的東西。定制的5x5按鈕矩陣板從頭開始構(gòu)建。
在這里,我們使用簡單的行-列框架創(chuàng)建一個(gè)簡單的25個(gè)按鈕矩陣板,其中按鈕排列在五行和五列中以形成按鈕網(wǎng)格。當(dāng)你按下按鈕時(shí),它完成了一行和一列之間的電路,由微控制器檢測(cè)并顯示在OLED屏幕上。
開發(fā)這個(gè)項(xiàng)目的目的是開發(fā)一個(gè)需要盡可能多的按鈕的計(jì)算器項(xiàng)目;因此,我們創(chuàng)建了這個(gè)矩陣板來幫助我們?cè)谟?jì)算器項(xiàng)目的修補(bǔ)階段。
本文是關(guān)于這個(gè)項(xiàng)目的整個(gè)構(gòu)建過程,所以讓我們從構(gòu)建開始。
材料要求
這些是這個(gè)項(xiàng)目中使用的材料:
?定制PCB(由Seeed Studio Fusion提供)
?Tacktile按鈕
?公頭引腳連接器CON10
?電路試驗(yàn)板
?SSD1306 OLED屏幕
?樹莓派PICO 2
?跳線
鍵盤設(shè)計(jì)流程
在項(xiàng)目開始時(shí),我們將所有按鈕排列成五行五列。
我們創(chuàng)建了一個(gè)按鈕矩陣(受鍵盤矩陣板的啟發(fā)),其中所有按鈕都放置在行和列的網(wǎng)格中,每一行和列都連接到CON10頭引腳連接器。
微控制器掃描矩陣,設(shè)置每一行高,然后檢查每一列。按下按鈕,行和列之間的電路就完成了。知道哪一行是高的,哪一列讀取信號(hào)允許微控制器確定哪個(gè)按鈕被按下。
這種方法減少了所需的I/O引腳數(shù)量,因?yàn)槲覀兪褂?5個(gè)按鈕,而標(biāo)準(zhǔn)方法需要所有按鈕25個(gè)I/O引腳;然而,這種方法允許我們總共只使用10個(gè)I/O引腳。
通過創(chuàng)建原理圖,我們能夠?qū)С鼍W(wǎng)表并為這個(gè)項(xiàng)目開發(fā)電路板設(shè)計(jì),其中包括將按鈕放置在GRID配置中并根據(jù)原理圖連接走線。我們完成了電路板,然后導(dǎo)出gerber數(shù)據(jù),這些數(shù)據(jù)將與PCB制造商共享以創(chuàng)建樣品。
Seeed Studio Fusion
在完成Gerber數(shù)據(jù)后,我們將文件上傳到Seeed Fusion的網(wǎng)站上,并訂購了帶有黑色絲網(wǎng)的白色Solder mask。
pcb在一周內(nèi)就收到了,考慮到比率,它們的質(zhì)量是超級(jí)好的,這也是相當(dāng)?shù)偷摹?
Seeed Fusion PCB服務(wù)為PCB制造和PCB組裝提供一站式原型設(shè)計(jì),因此,他們?cè)?個(gè)工作日內(nèi)生產(chǎn)出高質(zhì)量的PCB和快速交鑰匙PCB。
Seeed Studio Fusion PCB組裝服務(wù)負(fù)責(zé)整個(gè)制造過程,從Seeed Studio FusionAgile制造和硬件定制到零件采購,組裝和測(cè)試服務(wù),因此您可以確保他們獲得高質(zhì)量的產(chǎn)品。
在衡量市場(chǎng)興趣并驗(yàn)證工作原型之后,Seeed Propagate Service可以通過專業(yè)指導(dǎo)和強(qiáng)大的連接網(wǎng)絡(luò)幫助您將產(chǎn)品推向市場(chǎng)。
PCB組裝工藝
?組裝過程開始于將所有25個(gè)開關(guān)放在矩陣PCB上各自的焊盤上;我們?cè)谶@里使用6x6的粘性按鈕,我們必須確保所有按鈕都正確地添加到它們的墊上,因?yàn)橐恍┌粹o的銷在放置在足跡時(shí)彎曲。
?接下來,我們用烙鐵焊接所有的開關(guān)墊在板的底部。
?隨后,我們將CON10公頭引腳放在其位置,并從板的頂部焊接其焊盤。
?矩陣板現(xiàn)在組裝。
樹莓派Pico安裝
?使用PICO 2, OLED顯示器,breadboard,按鈕矩陣和一些跳線,我們通過將從C1到C5的所有列引腳與GPIO16, GPIO17, GPIO18, GPIO19和GPIO20連接來創(chuàng)建基本設(shè)置。
?GPIO0、GPIO1、GPIO2、GPIO3、GPIO6連接第1 ~ 5行。
?OLED屏幕的VCC連接到PICO的VBUS,而GND連接到GND。
?OLED的SDA連接到PICO的SDA引腳(GPIO4), SCL連接到GPIO5,這是PICO的SCL引腳。
代碼
下面是我們創(chuàng)建的一個(gè)快速測(cè)試圖,看看是否所有的按鈕映射都是正確的。
這段代碼初始化一個(gè)OLED顯示器,并設(shè)置一個(gè)按鈕矩陣,其中行和列交換,以檢測(cè)按鈕按下。當(dāng)按鈕被按下時(shí),它會(huì)識(shí)別被按下的按鈕,在OLED屏幕上顯示按鈕編號(hào),并相應(yīng)地更新顯示。
我們?cè)谶@個(gè)草圖中使用Adafruit_SSD1306庫,在使用此代碼之前,您需要先下載并安裝該庫。
結(jié)論
這是這個(gè)小按鈕的最終結(jié)果,一個(gè)DIY鍵盤矩陣,可以使用幾個(gè)I/O引腳在任何項(xiàng)目中添加多個(gè)按鈕。在這種情況下,如果定期連接,我們總共有25個(gè)按鈕,需要25個(gè)I/O引腳,但是這個(gè)矩陣允許用戶只使用10個(gè)I/O引腳來控制25個(gè)按鈕,如果使用的微控制器具有有限的I/O引腳,這是理想的。
本文編譯自hackster.io