AD按键扫描中串联电阻转换值的计算方法

写在前面

最近请教了一位前辈,终于搞明白用AD做按键扫描转换值的计算方法,这里写一篇博客加深下印象顺便给大伙儿分享一下。
  总的来说,无论是用AD扫描按键还是用AD检测温度,湿度,亮度……原理都是利用电阻值不同来使转换出来的AD值不同,然后在程序中对这些值做判断从而识别出是哪一个按键按下或是温度等数值。
  还是用上篇博客的按键扫描来做举例,电路图如下:在这里插入图片描述
  CN7这边,每条线都是通过串联一个10K的电阻到VCC,以一个AD扫描口做分析,四个按键通过导线或电阻连接到单片机IO口,同时还通过一个10K的电阻连接到VCC,这样按键这条路与10K的电阻就会分压,然后单片机IO口通过检测电压的大小来转换成一个相应的AD值,计算的式子为Vout=VCC*[Rx/(Rx+10K)],其中Rx代表的是与按键串联的分压电阻+按键内阻(忽略不计)。
  这样假设我们什么键也没有按下,相当于IO口直接接了一个上拉电阻到VCC上,单片机IO口被置为高电平,电压理论上为5V,AD转换出来的值也为最大值255(基准值为VCC)
  如果按下了10K的按键,这时候Rx大约为1/2VCC,单片机IO口检测出来的电压也大约只有1/2VCC,所以按照比例,转换出来的八位数据为256*1/2=128。
  同理39K则为(39/(39+10))*256=203……如果按下了没有串联分压电阻的那一路按键,因为输入IO口的电压为0,那么转换出来的值就直接为0
  其他的类似热敏,光敏……都是根据不同的温度,亮度……阻值不一样来给单片机IO口送入不同大小的电压,使值区分从而对应到温度或是其他我们需要得到的值。
  下面是一个热敏电阻接到单片机IO口做AD检测电路,是一个典型的分压电路,VCC-热敏电阻-同热敏电阻阻值的精密电阻-GND,然后中间拉出一根到IO口的线,当热敏电阻组织最大为100K的时候,输入电压就是1/2 VCC,这时候为了精度,MCU内部选择基准值的时候就要尽量接近1/2VCC,最好是略大一点点,这样就可以把误差尽量减小。
  在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值