KeyPad鍵盤

有人許願,於是做了這個KeyPad鍵盤積木。雖然各種開發板有按鍵可以外接,但是對於複雜的需求,例如要輸入密碼或是複雜的多位數字的時候,只用這些按鍵是不太夠的,這時候我們可以使用3X4或是4X4的薄膜鍵盤,不管是輸入密碼或是其他用途,可以提供更多的輸入選擇。但是3X4鍵盤需要使用七個腳位,4X4鍵盤需要用到八個腳位,而且需要讓某一些腳位Digital Write 1,然後某一些腳位同時要偵測是否Digital Read為1,若要自己寫文字程式是有些麻煩的,於是我設計好了3X4及4X4薄膜鍵盤的積木,可以很方便的設定、拖拉積木,控制開發板。這些積木同時適用於Arduino、7697、ESP32,但是在使用時要特別注意,因為這種鍵盤佔用了很多腳位,其實有一些腳位是不能用的,所以要注意是否用到了不能用的腳位,例如I2C、SPI或是各開發板的特殊腳位,用錯腳位可能就會造成鍵盤上某些按鍵讀取不到值。積木的位置在「吉哥積木」→「模組」→「Keypad鍵盤內,另外,要使用這個積木,吉哥積木必須更新到至少20220424之後的版本。

薄膜鍵盤的原理

3X4薄膜鍵盤需要使用到七個腳位,其原理請參看圖片:5、6、7腳位設定每次一個腳位數位輸出1,這時判斷腳位1、2、3、4是否數位讀取到1,如果讀取到了,則表示相對應的按鍵被按下了。例如,腳位6數位輸出1,如果腳位2數位讀取到1,則表示「5」這個按鍵被按下,才會讓腳位2電路連通而能數位讀取到1。 4X4鍵盤則用掉了八個腳位,前面四個腳位專門數位讀取,後面四個腳位則是數位寫入。這個鍵盤模組不需要接GND和VCC。

範例一:當鍵盤被按下及鬆開時

  1. 鍵盤初始化的積木要放在初始化的區塊內,並設定7或8個腳位。

  2. 「鍵盤 檢查按鍵狀況」這個積木必須放在重複執行的區塊內,並且要放在被按下及鬆開事件之前,就要先檢查按鍵狀況。

  3. 鍵盤的任何一個按鍵被按下或鬆開時,就會觸動「當被按下」及「當被鬆開」積木,靠著「鍵盤 按鍵值(字串)」這個積木可以得知是哪一個按鍵被按下了。

按鍵被按下會觸發「當被按下」事件

按鍵被鬆開時會觸發「當被鬆開」事件

範例二:密碼輸入及判斷密碼是否正確

  1. 建立二個全域的字串變數,password是正確的密碼,myPass則是使用者輸入不同按鍵組合而成的字串。

  2. 按下*字鍵會清除使用者所輸入的資料,按下#字鍵則會比對使用者輸入的資料和正確的密碼是否相符,並在OLED上顯示「正確」或是「錯誤」的資訊。

  3. 使用者按下0~9的按鍵,會把按鍵值連接到myPass內容之後,組成新的使用者輸入資訊。