有时候需要LED来指示串口的收发状态,但是又不想用或者不能用GPIO来控制,就需要使用纯硬件电路来搭建LED指示电路。
最简单的方式就是利用1个MOS来控制LED,如下图,但这种方式缺点也很明显,就是如果串口波特率高的时候,MOS管的开通时间很短,LED无法点亮或者亮的时间很短。
这时候可以使用下面这个电路,利用电容电容的充放电来达到延长LED的点亮时间。
电路中使用单“高低高”脉冲模拟串口输入。Q3,Q4为PNP三极管,C1为1uf电容,R1,R2为1k电阻。
工作原理:
当串口闲置时为高电平,Q3Q4截止,LED灯不亮。
串口发送数据时,信号为高低脉冲波形,当信号为低时,Q3Q4导通,LED点亮。
延时原理:
当串口为低时,Q3导通,C1上端通过Q3接地为低电平,Q4基极为低电平,Q4导通,LED点亮。当串口跳变为高,Q3截止,C1通过Q4(E-B),R1充电,由于有R1电阻,C1的充电时间缓慢,所以在C1充电时间Q4基极能继续维持导通一段时间,从而延长了LED的点亮时间。如下图为仿真波形图。波形发生器提供脉宽为100us的低脉冲。R1=1K,C1=1UF。
从上面原理介绍可知,LED的点亮时间收到R1和C1影响,所以改变R1,C1的值可以修改LED的点亮时间。如果感觉LED亮度还不够亮,可以增大R1或者C1。这个其实就是根据RC的充电时间计算公式而来。
- RC电路的时间常数:τ=RC
R1=2.2K,C1=1UF:可以看到Q4导通时间有明显增加。
R1=1K,C1=0.47UF:可以看到Q4导通时间有明显减小。