电子说
单片机的GPIO口驱动能力有限,不能直接驱动较大功率的负载,如果负载的功率较大必须要考虑采用驱动功率器件的方式,比如说三极管、MOS管以及其他的专用驱动芯片。下面结合几个典型的例子来介绍以下如何提高单片机的驱动能力。
1 使用三极管提高驱动能力
单片机采用何种方式提高驱动能力,主要取决于被控负载。比如说蜂鸣器、继电器这种类型的负载,一般会通过三极管来驱动,单片机控制三极管即可。以通用型的继电器为例,假设5V继电器的线圈所需的工作电流为80mA,那肯定不能通过单片机直接驱动,而三极管就是一个很好的选择。
单片机与三极管的基极连接,只需要通过高低电平信号即可实现继电器的驱动,驱动电流由VCC提供,三极管提供回路。由此实现了单片机驱动大功率负载的目的。
2 使用专用IC提高驱动能力
电机是功率比较大的负载,都是通过专用的驱动IC来驱动的,单片机控制专用IC。以微型直流电机为例。电机通过专用驱动芯片RZ7899来驱动,单片机和RZ7899连接,单片机的控制信号经专用IC后驱动电机,实现电机的转动、调速等功能。
3 驱动小功率,但是数量多的负载
这类比较典型的应用就是流水灯或者是点阵LED屏。单片机的GPIO口数量和驱动能力都有限,需要通过扩展IC来实现,这类常用的IC有74HC595、74HC164、74HC138等。
单片机输出驱动分为高电平驱动和低电平驱动两种方式,所谓高电平驱动,就是端口输出高电平时的驱动能力,所谓低电平驱动,就是端口输出低电平时的驱动能力,当单片机输出高电平时,其驱动能力实际上是端口的上拉电阻来驱动的,实际测试表明,51单片机的上拉电阻的阻值在330K左右,也就是说如果高电平驱动,本质上就是330K的上拉电阻来提供电流的,当然该电流是非常小的,小的甚至连发光二极管也难以点亮,如果要保证LED正常发光,必须要外接一个1K左右的上拉电阻,如果是一个led还好,要是10个、20个led的话,就要接10个、20个1K的上拉电阻,接电阻的本身是可以的,问题是接了上拉电阻以后,每当端口变为低电平0的时候,那么就有10个、20个上拉电阻被无用的导通,假设每个电阻的电流为5mA计算,20个电阻就是100mA,这将造成电源效率的严重下降,导致发热,纹波增大,以至于造成单片机工作不稳,因此很少有采用高电平直接驱动led的,高电平驱动led实际上就是共阴。
低电平驱动就不同了,端口为低电平0时,端口内部的开关管导通,可以驱动高达30多毫安的驱动电流,可以直接驱动led等负载,当端口为低电平0时,尽管内部的上拉电阻也是消耗电流的,但是由于内部的上拉电阻很大,有330K,因此消耗电流极小,基本上不会影响电源效率,不会造成无用功的大量消耗。
因此51单片机是不能用高电平直接驱动led的,只能用低电平直接驱动led,即只能用共阳数码管,而不能直接用共阴数码管。
全部0条评论
快来发表一下你的评论吧 !