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

您所在的位置:网站首页 索尼70200f28一代上三个按钮怎么用 一个IO挂多个按键怎么实现?

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

2024-07-10 20:34| 来源: 网络整理| 查看: 265

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

1.硬件及原理

        电路图如下:

 

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

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

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

 

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

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

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

2.消抖

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

        获取更多内容,可以关注我的公众号"嵌入式技术开发"。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3