利用单片机的adc端口,可以读取多个按钮的状态。在设计过程中,需要综合考虑到按扭的个数与读取的可靠性,特别是对选择电阻的阻值进行优化,使得不同分压数值之间相差最大。如果按键面板需要通过长的引线与单片机电路相连,还需要对接口电路进行保护以提高电路的emc特性。
01 读取按键
按键是单片机系统中人机交互常用到的方法,通常情况下,通过普通的io端口可以获得按键开关状态。在某些电子系统设计中,如果碰到按钮比较多,但单片机的io口不够使用的时候,则需要通过端口扩展的方式来增加读取按钮的数量。比如通过并串转换芯片,8-3编码芯片等等。
今天看到 公众号电路啊中的一篇推文:电视机的按键功能是用什么电路实现的?经典adc按键电路[1] 介绍了在一款电视机中,采用单个adc端口来读取多个按钮状态的方法。
一、电路原理
1、电路原理图
按键面板中的三个引线中,其中一个是电路地线,另外两个是信号线,分别接入主板中mcu的两路adc端口。这两条线在主板上都通过3.3kω的电阻接到电源(3.3v)。在面板上,有多个按钮与电阻的串联之后连接在信号线与地线之间。
▲ 图1.1.1 工作原理说明图
并联在 一起的按钮所串联的电阻不同,所以每个按钮按下之后,信号线的电压就是上拉电阻与按键串联电阻对电源的分压。由于每个按键串联电阻不同,所以对应信号线电压也就不同了。经过单片机adc读取电压值之后,在与事先确定下的每个按键分压范围进行对比,从而可以确定是哪一个按钮被按下。
【表1-1-1 不同按键对应的电压】
75 ohm 1000 ohm 3300 ohm 6800 ohm
0.07 v 0.77 v 1.65 v 2.22 v
sw1 sw2 sw3 sw4
2、按键个数
根据上述原理,一条adc端口可以读取按钮的个数是非常多的,它的上限受到以下因素影响:
单片机adc分辨率;
分压信号的稳定性和噪声范围;
机械按键接触电阻;
分压电阻偏差与稳定性等。
为了可靠的通过adc读取的模拟分压电压来确定按键,需要合理选择分压电阻,使得每个按键所对应的电压之间的间隔越大越好。在上述实际设计的电路中,每个adc端口只读取了四个按钮的状态,总共采用了两个adc端口读取了7个(< 8个)按键状态。
二、电路改进
1、增加接口可靠性
由于按键板与电路主板之间通过三根线连接,为了提高电路工作的可靠性,在按键电路接口中增加了r、c、tvs来消除静电、电磁干扰对主控板的影响。
▲ 图1.2.1 增加有提高emc接口电路
对于电路中的rc滤波器件参数选择,需要综合考虑滤除噪声的频率范围以及电路稳定时间。不能够为了降低噪声一味增加rc时间常数,还需要考虑按键动作时,对应的分压信号达到稳定的过渡时间的大小。
02 更多按键
在前面案例中,每个adc只读取四个按键,下面给出一些可以读取更多按键的方案。
一、八个按键
1、电路原理图
下面是在推文经典adc按键电路[2]中给出的已经批量应用的八按键adc读取电路配置方案。
▲ 图2.1.1 被批量使用的八个按键方案
2、按键对应的电压值
按照电路中的电阻参数,可以计算出每个按键对应的信号分压电压值:
【表2-1-1 八个按键对应的信号电压】
0 ohm 510 ohm 680 ohm 1000 ohm 1200 ohm 2200 ohm 4700 ohm 15000 ohm
0.00 v 0.32 v 0.67 v 1.05 v 1.38 v 1.79 v 2.27 v 2.78 v
sw1 sw2 sw3 sw4 sw5 sw6 sw7 sw8
▲ 图2.1.2 八个按键对应的信号电压
3、方案特点
在这个电路中,后面按键对应的电阻值是由前面所有串联电阻累加和。
这个电路的巧妙之处在于,按键具有优先级之分。假设按下了按键sw1,那么再按下sw2-sw8中的任何一个都是不起作用的,即sw1的优先级最高,sw2次之,以此类推。
二、组合按键
上面电路中不允许使用组合按键,即通过两个或者两个 以上的按摩同时按下代表更多的功能。
1、三个按键组合输入
下面电路中,只使用3按钮便可以获得8个状态的输入。
▲ 图2.2.1 利用电阻组合完成多个多个按钮输入
需要通过适当选择的阻值,使得八种不同的按键组合,所得到的八个电压之间的间隔最大,这样才能够保证adc通过分压数值确定状态时更加可靠。
利用程序对进行搜索,搜索范围(100,10k),搜索步长:50欧姆。可以获得一组最优电阻取值:
最小的电压间隔为:0.152v。
下面是八种按键组合所得到的电压,从小到大的电压值。
['1.19v', '1.37v', '1.53v', '1.68v', '1.83v', '2.05v', '2.43v', '3.30v']
※ 总 结 ※
利用单片机的adc端口,可以读取多个按钮的状态。在设计过程中,需要综合考虑到按扭的个数与读取的可靠性,特别是对选择电阻的阻值进行优化,使得不同分压数值之间相差最大。
如果按键面板需要通过长的引线与单片机电路相连,还需要对接口电路进行保护以提高电路的emc特性。
运动蓝牙耳机如何选择,几款高性能蓝牙耳机推荐
翻斗式雨量计的作用是怎样的
三大游戏主机销量数据对比:PS5 占比 40% 以上
LED荧光粉的来料检验失效分析
2018年互联网和相关服务业经济运行总体情况分析
采用单个ADC端口来读取多个按钮状态的方法
华为手机现在发展这么好,是因雇佣日本人做研发?
浩轩论币:数字货币虚拟磨盘,需要你来割一把韭菜!
什么是控制器、PLC、DCS、FCS
如何实现稳健参数设计
双控开关结构及原理
英特尔携手文安智能玩转智慧零售
一款基于STM32的心电采集及分析处理系统的设计
a17芯片和麒麟9000s区别 a17芯片有多少晶体管组成
解析SMT组装中锡珠的形成原理及应对方法
捷通华声与清华建立“灵云科技 源自清华”战略合作
三星S8因电池又延期至5月,小米6和锤子T3都在4月发布,三星S8你们还等吗?
Micro-LED借助AR/VR起飞,2022年后有望成主流显示技术
影响iPhone手机信号的原因及处理方法
电视产业聚焦游戏领域 向多屏融合发展