Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2
Arduino MIDI DIY 16X KEYPAD 實驗韌體與測試硬體完成 PART.1

應該會有人好奇會什麼掃描鍵盤需要這個多1N4148二極體?

測試韌體在文末

所有ARDUINO通用

我就來解釋一下

如果不加裝二極體

電流就不會依照我們想要的方式流動

相對的

掃描鍵盤就會發生錯誤

不加任何二極體電路如下圖

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2
Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

為按鍵取名

AC
BD

先按下BD

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

輸出正常

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

按下AB

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

疑?

全零

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

因為3、4為輸出

同一時間一定是一正一負極

所以造成短路

電流就直接從3流到4,或者是4流到3

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

按下AD

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

正常顯示

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

按下BC

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

正常顯示

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

按下CD

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

跟同時按下AB一樣

造成短路

掃描得到的結果就錯了

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

因為3、4為輸出

同一時間一定是一正一負極

所以造成短路

電流就直接從3流到4,或者是4流到3

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

所以要修改電路

其實以上BUG

不是我主要要跟大家說明的BUG

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

我先加上兩顆1N4148在3、4腳上面

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

實際就像這樣

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

原先正常的我就不記錄了

按下AB

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

正常了

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

電流方向已被導正

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2
Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

如果同時按下CD

電流亦被導正

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2
Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

音樂一定有機會同時發出超過3種以上的聲音

最大的問題在於同時按下3顆按鈕

電流還是會亂流(這問題叫作GHOST KEY)

同時按下ABD

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

明明只有按下3顆按鈕

但卻顯示4顆按鈕被按下

是…..是誰幫我按的(汗顏~

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

問題出在BD

雞婆的把A的訊號帶回給C

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

同時按下BCD

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

亦有類似情況

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

BD把C的訊號帶回給A

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

這時就需要加裝二極體

稍早增加的二極體可以拿來用

以下加裝的二極體亦可避免短路問題

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2
Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

同時按下ABD

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

掃描正常了

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

電流流向正常

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

同時按下BCD

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

顯示正常

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

電流流向正確

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

以上是以4顆矩陣按鈕為例

想要更多按鈕可以自行擴充

成品使用影片位大家解解渴:

傳送門:
下一篇

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

上一篇

Arduino MIDI DIY 16X KEYPAD 測試韌體與硬體實驗 PART.2

By 小熊

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *