零或小电流分压器,用于开关识别


8

是否可以设计一个具有零电流或非常低电流的开关的分压器电路?使用晶体管将电阻器串的末端与地面连接/断开连接是否可行?

背景

该电路将完成两件事。电路中的每个开关将通过使用晶体管发送中断引脚LOW来唤醒IC(ATMEGA328P)。IC唤醒后,ADC将采样来自电路的电压,从而使IC知道按下了哪个按钮。

整个项目将由电池供电,使用此分压器可能会严重影响电池寿命。

该项目将1)从SD卡读取文件,2)进入睡眠状态,3)按下16个按钮之一唤醒并播放声音,并且4)进入睡眠状态并从按#3的位置开始重复该过程。我预计它在运行时会消耗大量电流。

现有的分压器电路

在此处输入图片说明

可能的晶体管解决方案

在电阻串的末端和地之间放置一个晶体管,并按下按钮激活晶体管,将电压串的末端接地。这将导致5V的初始电压读数,并且一旦晶体管导通,实际的读取电压即为预期的电压。我不知道这是否行得通。

带晶体管的可能分压器电路

其他解决方案

根据问题28897,我可以使用高电阻值,例如10 MOhm。但这仍会消耗数百nA的电流。我希望为零。


3
如果您使用1000毫安时,5伏跨10毫安时的电池,则该电池可以使用228年,或者使用30毫安的纽扣锂电池可以使用6年。使用ADC采集的每个样本也将充电或放电。同样,控制器上的ADC输入阻抗通常在10K范围内,您将为每个采样充电一个上限。鉴于此,您确定您的nA解决方案确实会对电池寿命产生显着影响吗?
Scott Seidman

您是对的,因为稳压器的静态电流与MCU本身(睡眠时)的总和可能至少为10 uA。我只是想减少任何不必要的电流消耗。
LucasMcGraw

@ n.taco一些其他数据会有所帮助。您的最大电池电压是多少?您的Vcc电压是多少?uC是如何供电的(通过线性稳压器,开关模式或直接由电池供电)?
尼克·阿列克谢夫

电池来源可能是4 D电池。稳压器是Maxim MAX667(线性稳压器),它将为所有设备供电(除稳压器外,没有其他设备会看到电池电压)。Vcc是5V。
LucasMcGraw

@ n.taco顺便说一句,在原理图中编写组件代号。说“ Q23”要比“右边第3个底部BJT”说起来容易得多。阅读。如果您不遵循EE.SE上的这些准则,则患高血压的风险会大大增加。公平警告。
尼克·阿列克谢耶夫

Answers:


5

新答案

您的方法可行。但是,我认为您的第二个原理图有一个错误。ADC将始终看到晶体管的V be,其始终为0.7V左右。

这种变化不应该出现这个问题,因为在基极和ADC之间有一个电阻R39。

在此处输入图片说明

旧答案,这不是答案

分压器可通过晶体管进行切换以节省电池。但是,它必须是高端开关。如果切换到地面,则电池电压将出现在A / D引脚上,这可能会损坏输入。

(最初,原理图发布在此线程中。)


这个想法如何在开关使晶体管导通的约束下起作用?
LucasMcGraw

1
divider On/Off手动开关替换控制晶体管的数字信号。那个怎么样?
尼克·阿列克谢耶夫

1.我很难理解如何将其扩展为确定按下了哪个开关。对于N个开关,我不是必须要有N个晶体管加电阻来分压吗?2.如果Vcc <= ADC最大电压,我可以接地吗?在那种情况下,ADC的电压将以5V开始,但会降至分压,对吗?
LucasMcGraw

@NickAlexeev我看到了这个错误,感谢您指出这个错误;我也没有意识到这可以用一个晶体管来完成。看起来不错,这个周末我会尝试的。
LucasMcGraw 2012年

3

您甚至都不需要晶体管来断开电阻器串,只需将其连接到MCU输出引脚即可。将其设置为与字符串另一端相同的值,它将使用接近零的电流。我已经使用了这种方法,并且效果很好。

(在您的图中,将晶体管自己接地,并将MCU引脚连接到电阻器串的底部)。


您是指第二张图还是第一张图?
LucasMcGraw

另外,如果两个引脚都为高电平,分压器中是否会有电压降?
LucasMcGraw

第一张图(已编辑您的帖子以直接包含它们)。如果两端都很高,则分压器所有点的电压都将很高,并且不会有电流流过。
pjc50

2

是否有可能设计一种具有零电流开关的分压器电路...

这应该可以解决问题,并且不需要接地。分压器仅在开关闭合时才连接到电池,而在所有开关都断开时将ADC输入拉至地。

对于5V Vcc,ADC输入为:

  • 5.0V = SW1闭合
  • 3.3V = SW2闭合
  • 1.7V = SW3闭合
  • 0V =所有开关断开

当然,您可以根据自己的喜好调整电阻值。

在此处输入图片说明


如果使用质量开关,则该方法可能很好。如果一个人在PC板上使用碳穹顶可能会非常糟糕,因为轻按按钮的电阻可能小于1K,或者大于100K,或者介于两者之间的任何位置,并且这种电阻似乎可以合理保持稳定一秒钟的时间。尽管通常可以忽略系统轻按按钮,但将一个按钮轻按为完全不同的按钮通常很烦人。
2012年

我同意; 使用压敏电阻代替geniune的合理近似值,在断开时断开,在接通时短路,在该电路中开关将导致无法预测的结果。
2012年

在许多应用中,即使将碳球触点用作压敏电阻,也可以将其用作开关(尽管增加一些硬件或半硬件滞后肯定会有所帮助)。我只是想确保读者知道这不是那些应用程序之一。
2012年

事实上和可悲的是,它是一个区分具有作出。仅仅因为某些事物被称为“开关”,并不一定意味着它是理想开关的良好近似。
Alfred Centauri

1

给定两个I / O引脚具有合理的开关阈值,一个引脚可以通过一个小电阻器将一个接地的电容连接到每个处理器引脚,将一个电容连接到电阻串的两端,并使每个开关将串的一个抽头连接到VDD或接地(以更方便为准;在此讨论中,我将假定使用VDD)。两端与第一个开关之间应有足够的电阻。有时在没有按下任何开关的情况下,将两个引脚接地的时间足以使电容放电。然后将一个浮置,将另一个置为VDD。浮动引脚更改状态所花费的时间。如果输入的阈值可能不同,请对其他输入重复测试。然后将两个引脚接地,然后将它们悬空-这是空闲状态。

一旦观察到引脚会改变状态,请将两个引脚接地足够长的时间以使帽放电,并使它们浮动。每个引脚更改状态所花费的时间。此时间与上面测得的基线之比将告诉您每个引脚到VDD的电阻。确保两个测量值之和与弦的总电阻相当接近(否则按钮接触不良,因此读数可能有误)。

如果处理器在输入悬空离开导轨时可能吸收过多的电流,则即使没有按任何按钮,也要定期释放电容帽,这是一个好主意。如果这样做,系统的静态电流应该很小。


有趣的主意。电容器会不会连续消耗电流?
LucasMcGraw 2012年

1
@ n.taco:将电容上的电压增加一定量需要增加一定量的电荷(以库仑为单位),该电荷的量等于电压(以伏特为单位)乘以电容(以法拉为单位)。降低电压需要去除电荷。1安培表示每秒1库仑。给电容器充电并以一定的周期性速率将其电荷倾倒至地面将需要的电流量等于每个周期的电荷乘以频率。但是,如果电容器的大部分时间都处于恒定电压,则在这段时间内它将使用基本为零的电流。
supercat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.