电工基础

电工基础知识_电工技术-电工最常见电路

ADC实现一个IO上挂多个按键

时间:2023-03-11 11:27来源:未知 作者:admin 点击:
有时候做设计时,我们会遇到外部按键比较多,IO口不够用的情况。这时大部分人会考虑通过其它 芯片 扩展IO,或者直接换一个IO口足够的 MCU 。其实,还有个方法可以实现一个IO上挂多

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

1.硬件及原理

电路图如下:

3b88b6f8-290b-11ed-ba43-dac502259ad0.png

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

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

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

3bad0468-290b-11ed-ba43-dac502259ad0.png

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

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

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

2.消抖

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

  审核编辑:汤梓红 (责任编辑:admin)
织梦二维码生成器
相关文章
------分隔线----------------------------
栏目列表
推荐内容