有時候做設計時,我們會遇到外部按鍵比較多,IO口不夠用的情況。這時大部分人會考慮通過其它芯片擴展IO,或者直接換一個IO口足夠的MCU。其實,還有個方法可以實現一個IO上掛多個按鍵———即采用ADC掃描。
一、硬件及原理
電路圖如下:

當沒有按鍵按下時,ADC的電壓為3.3V,由于不同按鍵對應的分壓電阻不同,所以不同按鍵按下時,得到的ADC電壓也不同。通過采樣ADC的電壓即可判斷是哪個按鍵被按下。這種方式也支持組合按鍵。
設計時需要計算好每個按鍵的分壓電阻阻值,使每個按鍵的分壓值(包括組合按鍵)有較明顯區別,便于ADC區分。
上面這種方式為并聯式接法,還有一種串聯式接法:

這種方式與上面的原理一樣,但不同的是,這種方式不支持組合按鍵,且有按鍵優先級之分,當S8按下時下面的按鍵無效。即S8優先級最高,S9次之,以此類推。
理論上,上述兩種方式都可以一個IO掛很多按鍵,但掛的越多,每個按鍵的分壓后的電壓就越接近,越不容易區分,導致誤判。所以如果按鍵太多,還是要分多個ADC端口來采樣。
另外,分壓電阻的選擇也要考慮ADC的輸入阻抗。有些MCU內置ADC輸入阻抗較低,電阻選擇不合適可能導致采樣誤差較大。
二、消抖
上圖中并聯的10nF電容有利于消除一些高頻噪聲和抖動,但最好在軟件上也做消抖處理。方式與普通按鍵類似,即多次采樣判斷。每次采樣間隔10ms左右即可。
審核編輯:湯梓紅
-
電路圖
+關注
關注
10479文章
10755瀏覽量
555140 -
mcu
+關注
關注
147文章
18924瀏覽量
397979 -
adc
+關注
關注
100文章
7511瀏覽量
555902 -
按鍵
+關注
關注
4文章
229瀏覽量
58496 -
IO口
+關注
關注
3文章
170瀏覽量
25712
發布評論請先 登錄
ADC實現一個IO上掛多個按鍵
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】一個ADC實現多個按鍵檢測
矩陣按鍵掃描的實現原理
硬件設計如何實現一個IO上掛多個按鍵?
采用ADC掃描實現一個IO上掛多個按鍵
評論