用一个I/O口控制1个三色指示灯, 2个单色指示灯

http://www.baiheee.com/Documents/081207/081207184434.htm

http://www.baiheee.com/Documents/081207/081207184704.htm

当要显示绿灯(LED1)亮时,I/O口可置为低电平。此时红灯(LED2)反向偏置,无电流流过,不会亮。

当要显示红灯(LED2)亮时,I/O口可置为高电平。此时绿灯(LED1)反向偏置,无电流流过,不会亮。

若要指示灯不亮,可将I/O口置为高阻态,此时两个发光管均无电流流过,也不会亮。

若要显示橙灯亮时,此时LED1、LED2要一起亮,则可以让I/O口在某一固定频率下以50%的占空比进行高低电平不停转换,

利用视觉暂留,使人眼感觉到显示的是橙灯。

 

由于单片机中的I/O口通常可设置为三种状态,即输出高电平、输出低电平和输入状态(高阻态)。

利用这一点,可以很方便地用一个I/O口实现对2个指示灯的控制。其电路如右图所示。

 

 

当要使LED1亮时,I/O口可置为低电平。此时LED2无电流流过,不会亮。

当要使LED2亮时,I/O口可置为高电平。此时LED1无电流流过,不会亮。

若要LED1、LED2均不亮,可将I/O口置为高阻态,此时发光管被VD1旁路,也不会亮。

若要LED1、LED2一起亮,则可以让I/O口在某一固定频率下以50%的占空比进行高低电平不停转换,

利用视觉暂留,使人眼感觉两个灯都为亮的状态。

 

http://www.amobbs.com/thread-5561641-1-1.html

1个IO控制3个LED
 

因为现在的led都是高亮的,1mA左右就很亮了,所以MCU的IO压降可以忽略不计。
IO高阻时,LED3亮,LED1 LED2因为LED3电压钳位不亮。
IO输出高电平,LED2亮,LED1相当于短路,不亮,LED3因为LED2钳位也不会亮。
IO输出低电平,LED1亮,LED2相当于短路,不亮,LED3因为LED1钳位也不会亮。
需要额外考虑的只有LED3支路的压降,要大于LED1、LED2的大的,小于LED1+LED2,如果都是同样的LED,在LED3支路上加一个二极管。
流过LED3的电流比LED1、LED2要小约一半,但高亮LED,1mA以上电流减半亮度减弱不是很明显。也可以LED1、LED2用普亮的,LED3用高亮的。
 
唯一就是LED亮度不均匀.加两二极管可完善.
 
 

 

posted @ 2014-02-26 01:09  IAmAProgrammer  阅读(7530)  评论(0编辑  收藏  举报