一個(gè)簡(jiǎn)單的PCB鍵盤,可輕松用于Arduino項(xiàng)目。提供了完全可定制的代碼!
硬件部件:
- Arduino UNO × 1個(gè)
- 1N4148 –通用快速開(kāi)關(guān) × 64
- 觸覺(jué)開(kāi)關(guān),頂部致動(dòng) × 64
- 排針× 1個(gè)
- 74HC595移位寄存器× 1個(gè)
軟件應(yīng)用程序和在線服務(wù):
- Arduino IDE
手動(dòng)工具和制造機(jī):
- 烙鐵(通用)
我目前正在開(kāi)發(fā)一個(gè)帶有集成鍵盤的項(xiàng)目,這帶來(lái)了一個(gè)問(wèn)題:如何在開(kāi)發(fā)板原型中包含鍵盤?我不能使用USB鍵盤或現(xiàn)有的基于Arduino的鍵盤,因?yàn)閷?shí)際項(xiàng)目中的鍵盤直接連接到處理所有其他功能的微控制器。因此,我設(shè)計(jì)了這種基于PCB的基本64鍵原型鍵盤矩陣。
該P(yáng)CB不包含任何IC(集成電路)。鍵盤矩陣的行和列直接連接到引腳接頭,以便鍵盤可以連接到Arduino或任何其他微控制器。它是為您的項(xiàng)目原型制作的完美選擇,其中包括集成鍵盤。
我已經(jīng)包含了詳細(xì)的,經(jīng)過(guò)注釋的代碼,以使其與任何具有足夠I / O引腳可用的Arduino兼容開(kāi)發(fā)板一起使用,需要11個(gè)引腳。鍵盤有64個(gè)鍵,包括shift,caps,ctrl,alt,fn和“ special”的修飾符。還有六個(gè)其他鍵可用于任何您喜歡的操作。每個(gè)單個(gè)鍵的功能都可以單獨(dú)定義,包括激活修飾符時(shí)每個(gè)鍵的功能。我認(rèn)為,這比現(xiàn)有的鍵盤代碼明顯有用,后者嚴(yán)重限制了您自定義按鍵行為的能力。
提供的代碼將文本打印到串行。如果您希望文本移至其他位置,則可以輕松更改。
關(guān)于程序大小的注意事項(xiàng):
我提供的代碼很大,因?yàn)樗皇褂萌魏维F(xiàn)有的庫(kù)。我完全從頭開(kāi)始編寫此代碼,以實(shí)現(xiàn)所需的可定制性。在Arduino UNO上,這將使用9100字節(jié)(28%)的程序存儲(chǔ)空間,而全局變量使用394字節(jié)(19%)的動(dòng)態(tài)內(nèi)存。
我的代碼可能會(huì)更高效,并且鍵盤的庫(kù)和草圖肯定會(huì)更小,但這是我可以設(shè)計(jì)的唯一方法,可以為每個(gè)鍵和每個(gè)修飾符提供完全的靈活性。它還考慮了實(shí)際的鍵盤使用情況。例如,在啟用Caps Lock的情況下,按我的代碼的同時(shí)按Shift鍵,將產(chǎn)生應(yīng)小寫的字母。默認(rèn)情況下,在按ESC的同時(shí)按住FN鍵不會(huì)執(zhí)行任何操作。但是該行為是完全可定制的,因此您可以根據(jù)自己的喜好進(jìn)行更改。