电阻分压问题,越想越难了.

[复制链接]
5128|13
 楼主| bcaiyo 发表于 2008-9-6 12:32 | 显示全部楼层 |阅读模式
电阻分压问题,越想越难了.
单个开关与组合开关共16种都要求使用.

本想用电阻分压来检测编码开关.通过单片机AD口读数据.这样可以少用IO口.一共是16个值.选来选去电压最小的相差0.07V.有时电压差别更小.用8位AD读.应该是可以读出来的.但是总感觉不稳定.(电视机按键用法与此类同.用一段时间有的按键就不灵了.电视还只是单键,我这样做有组合健.)

二个电阻并联不能与其中一个相同 .三个并联也不能相等其中一个电阻或其它电阻并联
后来想用串联来做.一样的不合理

有没有高手做这相同的用法.用什么电阻合适啊.
awey 发表于 2008-9-6 12:38 | 显示全部楼层
 楼主| bcaiyo 发表于 2008-9-6 12:51 | 显示全部楼层

没有合适的电阻.10K,20K,40K,80K

10K,20K,40K,80K只有10K的.其没有.串起来有误差大了.
这样电路稳定性好吗.可靠吗?
ZRL700424 发表于 2008-9-6 13:50 | 显示全部楼层

开关最多接3个,按键最多接8个,批量生产才可靠

16种状态,256/16=16,也就是理想状态时每种状态间隔才16个AD值,电阻本身的误差、开关电阻(用久后可能会变大)、AD转换误差、电路板上的杂质……

我在产品中最多只接个三个开关,每个状态+-8个AD值认为是正确的。

另外,你说串联电阻误差会变大,这是错误的,如果100个1%的电阻串起来,误差还是1%!
Wxy8030 发表于 2008-9-6 16:53 | 显示全部楼层

这不是自己找麻烦吗?

为了节省那几个IO口费这么大劲!
谈的元 发表于 2008-9-6 20:15 | 显示全部楼层

用AD节约口这样的确不好

没找到遥控,我的电视按起都乱跳,很恼火
cliffliu 发表于 2008-9-6 23:01 | 显示全部楼层

用计算机来帮你设计

建议写一个程序来计算,将5个电阻定义为5个数组,数组值自然就是你的电阻值,你可以按照电阻的标称系列来设定,例如1.1 1.5 2.2 3.3 4.7等等,然后设定一个差值常量例如0.2V,用简单的算法计算所有的组合,将符合条件的结果输出就可以了
walnutcy 发表于 2008-9-7 12:51 | 显示全部楼层

佩服LS做事的方法,,

 楼主| bcaiyo 发表于 2008-9-10 13:18 | 显示全部楼层

这也是没有办法的

我最后选择电阻.电压最小的相差0.07V,不过就3个差别这么小的.其它都在0.1V以上.如果0.07V用8位AD结果就差别2-3.我在取值的是候如果在中间就不采用了.软件中一直去读数据.如果连续多次值都在一个小范围就采用.否则放弃掉.现在测试下来没有一次错误.不知道时间长了会不会出问题.开关的编码开关.不会经常动.不过电阻的老化及湿度湿度影响就说不好的.

gjg191 发表于 2008-9-10 13:21 | 显示全部楼层

o

相差太小迟早会出问题的
zhang123 发表于 2008-9-10 13:50 | 显示全部楼层

1248 上边横流

zhaoyu2005 发表于 2008-9-10 17:13 | 显示全部楼层

想其他的着吧

用165扩展或者用两路AD,或者与其他的复用,一路AD的话,16个键确实不保险
xhtxzxw 发表于 2008-9-10 22:39 | 显示全部楼层

嘿嘿

检测16个开关的状态?

LZ说的是:这16个开关有可能若干个(极端情况下16个全部)同时按下?

很简单的分析就知道,你的方案是绝对绝对行不通的。

16个开关的状态组合可以理解为16位二进制数,有6万5千5百3十6种可能的组合,你的8位AD能出来多少个数呢?

理论上说,用16位AD就可以了,但前提是:你的电压精度/电阻精度必须达到10的负5次方以上的精度,等gongchan zhuyi实现了,估计也达不到这个精度吧?

如果每次只有一个按钮按下,那就没有问题了,8位AD足够。
1248 发表于 2008-9-10 23:07 | 显示全部楼层

好麻烦

还是直接使用IO口方便。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

125

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部