闪烁频率为2HZ,则闪烁周期为T=1/f=0.5s,即500ms,也就说要求LED灯500ms闪烁一次,即平均1s闪烁两次。可实现的方式有很多,下面列举几种常用的例子供大家参考。
一、使用处理器(CPU)实现
若有处理器(单片机、DSP、ARM、CPLD、FPGA等)的情况下,实现起来很简单,使用处理器其中的一个I/O口作为输出驱动三极管,控制LED亮灭交替变化。通过简单的编程使I/O口250ms输出高电平,250ms输出低电平,即可实现周期为500ms,频率为2HZ的闪烁。
I/O口的输出波形如下:实际就是使I/O口输出频率为2HZ的方波。
二、使用555定时器实现
555定时器的功能很强大,可以输出任意占空比、频率约300KHZ以内的PWM波,如下图555定时器方波发生器原理,其输出波形的周期计算公式为:TH=ln2*R1*C1,TL=ln2*R2*C1,其中ln2≈0.7,如下图取值R1=R2=768KΩ,C1=470μF,计算得TH≈250ms,TL≈250ms,所以该方波周期为T=TH+TL=500ms,频率为1/T=2HZ。
555定时器输出端的驱动能力约200mA左右,因此只接一个LED灯时可以不用三极管等器件作为驱动,可直接555定时器的输出脚(4脚)。
为占空比为50%的方波发生器原理,使用二极管D1和D2改变电容C1充放电的顺序,从而实现电容C1充电时只经过R1,放电时经过R2。若去掉这两个二极管,其充放电的周期公式为:TH=ln2*(R1+R2)*C1,TL=ln2*R2*C1。
三、使用两个三极管搭建LED闪烁电路(多谐振荡器)
如下图是非常经典的LED交替闪烁电路,该电路是使用两个NPN三极管及电容充放电的原理实现LED1和LED2交替闪烁,若只需1个或1组LED时,可将LED2使用电阻代替即可。此电路属于多谐振荡电路,两个三极管一个管子导通时,另一个截止,通过容阻耦合使两个管子交替导通与截止,从而产生自激震荡。
其原理是:上电瞬间,由于电路两边的参数会有微小差异,两个管子导通时间肯定有先后,促使其中一个管子导通而另一个截止,形成一个暂稳态。假设Q1导通,Q2截止,则此时Q1的集电极(即电容C1左端)的电压为0,Q1基极的电压约为0.7V,此时,电容C1通过电阻R2进行充电,且电容C2也通过电阻R4进行充电,(假设VCC电压为5V)则电容C2充满后电容两端电压为4.3V(左端0.7V,右端5V),因为R4的阻值远远比R2小,因此电容C2的充电速度要比C1快得多(头条@技术闲聊原创)。当C1右端的电压达0.7V时,Q2导通。此时,电容C2的右端电压直接被拉地(即电压为0),但是电容两端的电压不能突变,则该电容左端电压瞬间变为-4.3V(原电容C2两端的电压为4.3V),Q1立刻截止,形成另一个暂稳态。此时电容C2开始通过R3放电,放完后又开始反向充电,当电容C2左端电压达0.7V时,Q1又导通。同理Q1导通使电容C1左端电压变为0V,反馈到电容右端电压变为-4.3V,Q2截止,又进入下一个暂稳态,如此反复。
其多谐振荡器的震荡周期为T=0.7(R2C1+R3C2),由于R2和R3、C1和C2的值相同,因此T=1.4*R2*C1,通过改变电容C1、C2和电阻R2、R3的值可改变闪烁频率。对于新手来说这个电路比较难理解,大家可以慢慢体会。