有没有可能通过一个ADC口读取8位拨码开关,省IO

2019-12-27 18:55发布

感觉为了这个拨码开关占用了8个IO有点不值得。

思路是这样的:
下拉电阻是4.7K,而上拉电阻依次是1k,2.2k,4.7k,10k,20k,47k,100k,220k,通过拨码开关控制上拉电阻并联。
这样因为任意多个电阻并联都不会与其他电阻阻值相同(因为至少差距1倍了),

这样程序采样一次ADC,然后算出上拉电阻的总阻值。
因为8位拨码开关有256种组合,然后依次算出每种组合的并联电阻值,一共运算256次,就可以知道有哪几位开关闭合了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
33条回答
ljy99731
1楼-- · 2019-12-29 16:32
用4个可以做的比较可靠。2个io口,8个。
hzpyl
2楼-- · 2019-12-29 16:32
 精彩回答 2  元偷偷看……
HZKJ
3楼-- · 2019-12-29 18:12
按键很少是可行的,按键多就别想了,批量出去,各种返修退货折腾死你
ilikemcu
4楼-- · 2019-12-29 19:13
上面有人说了,拨码开关和按键很大一个不同是按键每次只按照按下一个按键判断电阻变化,拨码开关可是可以有多个按下的情况,电视机多个按键按下并不好判断多按键。曾经使用io 4*5来扫描二十位拨码开关,软件调试的人说一个没问题,但是多个识别有问题,后来分析发现拨码开关多个按下的情况需要每一位串二极管才能扫描正确。后来下一班就改用门电路了。可惜们电路输入自己不带上拉电阻,要多悍20个电阻。否则们电路占用空间比二十个二级管舒服点
hailing
5楼-- · 2019-12-29 19:57
很早以前彩电就是这么做的,adc key.后来用不了一年都按键错乱了。因为按键电阻变化所以出现错误识别。除非你的产品不需要用,而且使用好的进口按键。否则这个没啥用,省的钱都按键还回来还不能保证可靠耐用。知道slc与tlc区别不,就是如此。
dz20062008
6楼-- · 2019-12-29 20:20
如果一次只有一个拨码开关闭合,那么adc方式没问题,但要是多个开关闭合呢?那是无法检测的。

一周热门 更多>