Forums

需要帮助阅读单个输入上的6个DIP开关

开始于 勒索偷看 2004年2月9日
需要帮助阅读单个输入上的6个DIP开关

微芯片申请 注AN234显示了单个输入如何感测多个开关。我需要 确定6位开关的组合,但不确定是否太多 开关以使该概念起作用。

应用笔记 shows two methods:

1. 使用ADC输入和开关 resistor 网络k,分压器上的值 不同。检测开关组合. R选择了电阻器,因此每个开关产生的电压 组合是独一无二的。  简而言之,ADC输入已绑定 通过一个电阻接地,并通过每个电阻接地 switch 与...串联 它的伴侣 resistor. 总共一个6位DIP开关 and seven resistors.

2.比较器 输入可用于基于 电阻器 网络 PIC确定充电时间。



我更喜欢ADC 方法,因为代码可能会容易得多。

我是PIC 程序员初学者,所以想选择 最简单的 挖前方法 in.

有没有人做过 这个,也许知道使用什么电阻值?  有没有人能够从中获得可靠的读数 6 or more switches 或者这可能也是 许多?有人有示例代码吗?


全部 思想和 建议s most welcome!

赎金 Peek

柯林斯堡 CO



- - - 原始信息 - - -
来自:“勒索偷看”<>
到:<>
发送:2004年2月10日,星期二,12:42 AM
主题:[piclist]需要帮助以读取单个输入上的6个DIP开关 >Microchip的应用笔记AN234展示了 单输入即可感知
>多个开关。我需要确定6位开关的组合
>但不确定是否有太多开关无法使用此概念。
>
>该应用笔记显示了两种方法:
>
>1.使用ADC输入和开关电阻网络,将
>分压器有所不同。检测开关组合。如此选择电阻
>每个开关组合产生的电压是唯一的。简而言之,
>ADC输入通过一个电阻接地,并通过一个高电平接地
>每个与其配套电阻串联的开关。一共
>6位DIP开关和7个电阻。
>
>2.比较器输入可用于为基于电阻的电容充电
>PIC确定充电时间的网络价值。 >
>我更喜欢ADC方法,因为代码可能会容易得多。
>
>我是PIC程序员的初学者,所以想选择最简单的
>挖洞之前的方法。
>
>有没有人做过,也许知道使用什么电阻值?已
>任何人都能够从6个或更多开关中获得可靠的读数,或者
>这个可能太多了吗?有人有示例代码吗?

像在DAC上使用R-2R梯形网络怎么样?你只需要
电阻的两个值。使用1%的输入时,它将很好地配合6个输入
电阻器。

里昂
-
G1HSM的Leon Heller
电子邮件:
我的低成本飞利浦LPC210x ARM开发系统:
http://webspace.webring.com/people/jl/leon_heller//lpc2104.html



>我是PIC程序员的初学者,所以想 choose the easiest
>挖洞之前的方法。


74HCT165

戴夫


只要您不使用太多开关,ADC方法就可以正常工作。
限制因素是电阻器和ADC的精度。
如果对电阻进行二进制称重,则可以检测到以下任意组合
开关。我对3个交换机使用了类似的方案,但是使用了
恒定电流源以确保准确性。每个电流源是两次
以前的。然后,只需对
输入(模拟或数字)并在ADC上执行窗口检测。

我有示例代码,但是它不是通用的,因为我只是在寻找
对于某些组合,但并不难。

乍得

--在“勒索偷看”中<ransom.peek@c...> wrote:
>Microchip的应用笔记AN234展示了 单输入即可感知
>多个开关。我需要确定6位开关的组合
>但不确定是否有太多开关无法使用此概念。
>
>该应用笔记显示了两种方法:
>
>1.使用ADC输入和开关电阻网络,将
>分压器有所不同。检测开关组合。如此选择电阻
>每个开关组合产生的电压是唯一的。简而言之,
>ADC输入通过一个电阻接地,并通过一个高电平接地
>每个与其配套电阻串联的开关。一共
>6位DIP开关和7个电阻。
>
>2.比较器输入可用于为基于电阻的电容充电
>PIC确定充电时间的网络价值。 >
>我更喜欢ADC方法,因为代码可能会容易得多。
>
>我是PIC程序员的初学者,所以想选择最简单的
>挖洞之前的方法。
>
>有没有人做过,也许知道使用什么电阻值?已
>任何人都能够从6个或更多开关中获得可靠的读数,或者
>这个可能太多了吗?有人有示例代码吗? >欢迎所有想法和建议!
>
> Ransom Peek
> Fort Collins CO





谢谢 莱昂·海勒(R2R梯子),戴夫·穆查 (设备附加组件)和Chad Russel(出色的ADC二进制阶梯建议)用于 使用一个I / O进行多位开关的想法。无法添加Addl的费用 IC,并且不能具有恒定的电流消耗(设计中没有断电模式,只是 让PIC通过分压器进入睡眠状态。有简化的要求, 因此只需要在PIC I / O上读取3位开关即可。

 

应用笔记 AN234显示电路 下面,使用比较器。需要测量充电时间 电容器。需要选择电阻器以提供足够的充电时间间隔 这样每个开关组合都是唯一的。

 

我觉得 想法是将I / O更改为 输出地,放电电容器。然后改回比较器 输入以使电容器充电。软件来计算花费上限的时间 收取“阈值”。 R5的100欧姆值为 recommended.

 

需要一些 解决以下问题:

 

1.  我应该尝试什么样的价值观 对于R1,R2,R3和C1?

 

2.如何 长时间的放电 capacitor?

 

3.  什么是“阈值” 上限收费水平最高?对于3伏额定电压电路 (VDD=3 伏)我应该测试什么电压水平?

 

4.如何 知道什么时候阈值 达到电压–我只是在计时时一直检查比较器吗 还是比较器在达到阈值时发生中断 voltage?

 

 

                                                                                                  VDD

                                       (100 ohms)                                              !

                                          R5                         /                             !

PIC 比较器I / O ----- ///////// --------------------- /     --------- / \ / \ / \ / \ / ---------

                                                    !         !      SW1           R1          !

                                                    !         !                                      !

                                           C1  ===       !        /                             !

                                                    !         !------/      --------- / \ / \ / \ / \ / -------!

                                                    !         !      SW2            R2         !

                                                 GND      !                                      !

                                                              !      /                               !

                                                              !----/       ---------- / \ / \ / \ / \ / -------!

                                                                   SW3              R3

赎金 Peek

 

 




您需要打扰还是需要按一下按钮唤醒?我可以帮你
使用公式,但ADC方法的数学运算要少得多。 :-)

您不需要使用恒定电流源,仅用于
稳定性,恒定电流源或电阻也仅消耗
按下按钮时接通电源。充电/放电需要恒定
力量。

乍得
--赎金<> wrote:
>谢谢Leon Heller(R2R阶梯),Dave Mucha (device add-on), and
> Chad
>Russel(出色的ADC二进制梯形图建议)使用一个创意
> I/O
>用于多位开关。无法添加Addl IC的成本,也无法
> have
>恒定电流消耗(设计中没有断电模式,只允许PIC进入
> to
>睡眠)通过分压器。有简化的要求,所以需要
>仅读取PIC I / O上的3位开关。 >
>应用笔记AN234使用比较器显示了以下电路。需要
> to
>测量电容器充电所需的时间。需要选择电阻
> to
>提供足够的充电时间间隔,以便每个开关组合为
> unique. >
>我认为这个想法是将I / O更改为输出地,放电
>电容器。然后改回比较器输入,让电容器
>收费。该软件可以测量瓶盖充电所需的时间
> the
>“临界点”。建议R5的电阻值为100欧姆。 >
>在这些问题上需要一些帮助: >
>1.我应该为R1,R2,R3和C1尝试哪种值? >
>2.电容器放电需要多长时间? >
>3.上限收费的“阈值”水平是什么意思?为了 a
> 3
>伏特标称电压电路(VDD = 3伏特)应达到什么电压电平
> I
> test for? >
>4.如何知道何时达到阈值电压-我是否保持
>在计时时检查比较器或比较器是否具有
>达到阈值电压时中断? >
> VDD
>
> (100 ohms)
> !
>
> R5
> /
> !
>
>PIC比较器I / O ----- / \ / \ / \ / \ / ------------------------------------- /
>--------- / \ / \ / \ / \ / ---------
>
> ! !
> SW1
> R1 !
>
> ! !
> !
>
> C1 === ! /
> !
>
> !
> !------/
>--------- / \ / \ / \ / \ / -------!
>
> ! !
> SW2
> R2 !
>
> GND !
> !
>
> !
> /
> !
>
> !----/
>---------- / \ / \ / \ / \ / -------! > SW3
> R3
>
> Ransom Peek >


=====
我的软件没有错误。仅未记录的功能。

__________________________________