控制/MCU
一、LED灯与单片机的连接方式
在proteus仿真中,无论LED灯是负极连接IO端口,正极通过电阻连接VCC还是LED灯正极连接IO端口,负极通过电阻连接GND,都是可以通过仿真得到正确结果的。可是在现实操作过程中总有一种方式出现问题,这就不得不提到现实情况下单片机的驱动能力对实验结果的影响。
如图所示第(1)种方式,单片机IO端口输出高电平时,LED灯亮,电流方向由单片机流向GND(我们将单片机提供高电平,电流方向为单片机由内到外称为拉电流)。第(2)种方式,单片机IO端口输出低电平时,LED灯亮,电流方向由VCC流向单片机内部(我们将单片机提供低电平,电流方向为由外到内输入单片机称为灌电流)。但是在现实中由于单片机驱动能力的影响往往第一种是无法点亮LED灯的。
二、单片机驱动能力
我们将两种连接方式与单片机IO端口内部简化之后可以得到如下两个简图:
单片机输出1时,T断开,这时VCC通过电阻R连接到IO。上图为拉电流连接方式,T断开时,R、R外、LED串联,形成直流通路。I=VCC-Vled/R+R外。R作为单片机内部上拉电阻,阻值一般几百上千K,可见电流就非常小根本无法点亮LED灯。
单片机输出0时,T闭合连接到GND,这时IO相当于接地。上图为灌电流连接方式,T闭合时形成通路,I=VCC-Vled/R外。LED满足电流的要求,LED灯亮。 可见,有时候理论可行现实却不太可行。
三、另外两种单片机连接LED灯的比较
单片机驱动较少LED灯尚且可以但是需要驱动多个时,必须增加外部驱动,以提供外部需要的电流。常用的方式是外部电路加驱动芯片、74HC373、非门、三态门、BJT等。下面将举例说明三极管驱动LED灯电路。如图:
单片机只是控制三极管的通断,而不是提供驱动电路,输出高电平时三极管导通,可以形成直流通路,使得LED灯点亮;单片机输出低电平时三极管截止(可以理解为断路),使得LED灯灭。这样就可以接多个LED了。 但是在实际生产中却有缺陷,采用上述方式连接,在系统上电时,LED会闪一下。究其原因:上电瞬间,单片机IO输出没有在瞬间达到程序中初始化的值,另外电源冲击等原因引起三极管瞬间导通,使得LED灯闪烁。这在生产中是不被接受的,所以我们更需要这样更改,加入电容C,吸收尖峰电压:
全部0条评论
快来发表一下你的评论吧 !