这是一款简单的3只LED循环灯电路,可以模拟流动彩灯,闪烁起来更具有动感。
原理介绍
电源接通时,三只三极管会争先导通,但由于元器件存在差异,只会有一只三极管最先导通。假设V1最先导通,则LED1点亮;由于V1导通,其集电极电压下降使得电容C2的左端下降,接近0V。由于电容两端的电压不能突变,因此这时V2的基极也被拉到近似0V,V2截止,故接在集电极的LED2熄灭。此时V2的高电平通过电容C3使V3基极电压升高,V3也将迅速导通,LED3点亮。因此在这段时间里,V1、V3的集电极均为低电压,LED1、LED3被点亮,LED2熄灭。但随着电源通过电阻R3对C2的充电,V2的基极电压逐渐升高,当超过0.7V时,V2由截止状态变为导通状态,集电极电压下降,LED2点亮。与此同时,V2集电极下降电压通过电容C3使V3的基极电压也降低,V3由导通变为截止,其集电极电压升高,LED3熄灭。接下来,电路按照上面叙述的过程循环,三只LED变会被轮流点亮,循环闪烁发光,达到流动显示的效果。
装配提示
如果需要加快循环闪烁的速度,可以适当减少C1、C2、C3的容量,或者减小R1、R3、R5的阻值。反之,如果需要减慢循环闪烁的速度,可以适当增加C1、C2、C3的容量,或者增加R1、R3、R5的阻值。
再来说说第二种循环灯电路
原理介绍
从电路图可以看出,如果要让LED1点亮,那么只要把P1.0接口的电平低电平就可以了;同理可得,将P1.1,P1.2端口变为低电平就能使LED2,LED3点亮;因此,要实现循环功能,只需要将LED1,LED2,LED3依次点亮,熄灭就可以了,三只灯就会一亮一暗的工作了,但是需要软件编程来控制。
软件如下
#include<stdio.h>
void main()
{
unsigned int i;
do{
for(i=0;i<10000;i++) //10000次空循环,相当于延时时间
P1_0=0; //设P1.0为低电平,点亮LED1
for(i=0;i<10000;i++)
P1_0=1; //设P1.0为高电平,熄灭LED1
for(i=0;i<10000;i++)
P1_1=0; //设P1.1为低电平,点亮LED2
for(i=0;i<10000;i++)
P1_1=1; //设P1.1为高电平,熄灭LED2
for(i=0;i<10000;i++)
P1_2=0; //设P1.2为低电平,点亮LED3
for(i=0;i<10000;i++)
P1_2=1; //设P1.2为高电平,熄灭LED3
}
while(1);
}
两种方法都可以去尝试一下,器材都好找,实验也比较好做,有兴趣的小伙伴可以试着操作一下。