|
采用一根微控制器端口引线来控制两个LED
|
Controlling Two LEDs by Using One Wire Port of
MCU
|
微控制器的端口引线通常可被激励为高电平或低电平,要么被置于一种“输入”或高阻抗状态。本电路采用这三种状态来实现用一根端口引线(Port
Pin)驱动两个LED。在没有端口引线可供使用的情况下(这种事情常有发生),这可能是非常有用的。
驱动两个LED的简单方法是借助两根端口引线(图1a)。改进方案只要求一个附加电阻(图1b)。可针对大多数合理的LED电压和电源电压以及在每个LED中产生所需的“接通电流”(根据需要可以有所不同)进行设计。设计参数为:
V1=D1的关断电压(D1无可见光时的最坏情况最大电压)
V2=D2的关断电压(D2无可见光时的最坏情况最大电压)
V3=D1的接通电压(设计电流条件下的D1的正向电压加上端口压降)
V4=D2的接通电压(设计电流条件下的D2的正向电压加上端口压降)
Ion1=D1所需的接通电流
Ion2=D2所需的接通电流
Vcc=电源电压
设计方程为:
Ion1=[(Vcc-V3)/R1]-[V3/(R2+R3)]
Ion2=[(Vcc-V4)/R2]-[V4/(R1+R3)}]
(V1+V2)/R3=(Vcc-V1-V2)/(R1+R2)
为了最大限度地减少电流消耗,R3的阻值被设置得尽可能大,两个LED在端口引线处于高阻抗状态时均不接通。
采用Excel电子表格(图2)可以求解这些方程。与设计值相比,这把每个LED的接通电流误差值的二次幂的和减至最小。代入如下的典型值(假定D1和D2分别为黄色和绿色LED):
V1=1.2V
V2=1.1V
V3=2.2V(在提供电流时包括端口引线压降)
V4=1.9V(在吸收电流时包括端口引线压降)
Ion1=0.008A
Ion2=0.008A
Vcc=5.0V
解算工具得出的数值可近似到与下列标准电阻值仅误差5%:
R1=300
R2=330
R3=1.2k
然后,可将实际电阻值代入经解算机修正的相同单元中,来读出合成电流和静态电流Iq。在这种场合,该电路可在两个LED都关断时形成2.7mA的静态电流。电路接通时可为每个LED提供几乎正好是8mA的电流。如果需要让两个LED呈现接通状态,则端口引线电压可在0V~Vcc之间快速循环。如果循环速率在100Hz左右或更高,那么两个LED将呈现出稳定的照亮状态。
本电路最好是采用具有施密特触发器或模拟输入的微控制器。其他种类的微控制器有可能在输入被加有靠近电源电压中心的偏压时产生不必要的馈电电流。
(岳云) |
|