0
收藏
微博
微信
复制链接

一个IO挂多个按键怎么实现?

2025-03-13 14:21
51

有时候做设计时,我们会遇到外部按键比较多,IO口不够用的情况。这时大部分人会考虑通过其它芯片扩展IO,或者直接换一个IO口足够的MCU。其实,还有个方法可以实现一个IO上挂多个按键———即采用ADC扫描。


1.硬件及原理

电路图如下:

a10af1e58411348ee925232608f4ee.jpg

当没有按键按下时,ADC的电压为3.3V,由于不同按键对应的分压电阻不同,所以不同按键按下时,得到的ADC电压也不同。通过采样ADC的电压即可判断是哪个按键被按下。这种方式也支持组合按键。

设计时需要计算好每个按键的分压电阻阻值,使每个按键的分压值(包括组合按键)有较明显区别,便于ADC区分。

上面这种方式为并联式接法,还有一种串联式接法:

d645626877a771042168eadf18deae.jpg

这种方式与上面的原理一样,但不同的是,这种方式不支持组合按键,且有按键优先级之分,当S8按下时下面的按键无效。即S8优先级最高,S9次之,以此类推。

理论上,上述两种方式都可以一个IO挂很多按键,但挂的越多,每个按键的分压后的电压就越接近,越不容易区分,导致误判。所以如果按键太多,还是要分多个ADC端口来采样。

另外,分压电阻的选择也要考虑ADC的输入阻抗。有些MCU内置ADC输入阻抗较低,电阻选择不合适可能导致采样误差较大。


2.消抖

上图中并联的10nF电容有利于消除一些高频噪声和抖动,但最好在软件上也做消抖处理。方式与普通按键类似,即多次采样判断。每次采样间隔10ms左右即可。

登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

嵌入式技术开发

多年工作经验,跟大家分享嵌入式软硬件技术的干货~

开班信息