pumpitup 发表于 2015-9-13 23:29:00

利用模拟输入读取多个按键怎么实现?

买了一个液晶,A0用于读入板上5个按钮的状态,是不是就是用的按钮加并联电阻呢,具体电路是怎样的,电阻的取值是不是成倍的呢?

164335413 发表于 2015-9-14 08:54:15

这是STC单片机提供的两种简单的AD转换按键电路,我们常见的MP3播放器的按键电路有些就是用的 AD。

老来疯 发表于 2015-9-16 00:50:27

见贴
键盘输入,我只用一个端口
http://www.geek-workshop.com/thread-15272-1-1.html

pumpitup 发表于 2015-9-17 23:10:15

164335413 发表于 2015-9-14 08:54 static/image/common/back.gif
这是STC单片机提供的两种简单的AD转换按键电路,我们常见的MP3播放器的按键电路有些就是用的 AD。

原来是这样,我还以为是用的电阻并联的方式呢。。。

不过这种是只能检测一个按键的说,多个按键同时按下的话,只有数字最小的起作用,后面的都被短路了。

那个电容是普通的还是电解电容?作用是什么呢?

pumpitup 发表于 2015-9-17 23:11:45

老来疯 发表于 2015-9-16 00:50 static/image/common/back.gif
见贴
键盘输入,我只用一个端口
http://www.geek-workshop.com/thread-15272-1-1.html

你这个与上面的有点儿不一样啊,感觉

老来疯 发表于 2015-9-18 02:46:50

pumpitup 发表于 2015-9-17 23:11 static/image/common/back.gif
你这个与上面的有点儿不一样啊,感觉

是不一样,原理很简单。关键是这一句    int m = ( V1 - V1 % 100) / 100; 把读到的 值 去掉尾数,只保留最大的那位数。便于switch (m) {   } 函数 判断,
V1 = analogRead(A0)
还有一点很重要,就是不要把欲取得的数 放在电阻节点上,应该放在两个节点中间,保证数值偏差时也能向下取整。具体做法就是 把 最下面接地的那个电阻 的值 取半,另一半放在正电端。
页: [1]
查看完整版本: 利用模拟输入读取多个按键怎么实现?