实现一个可以软件控制的开关
背景:
之前做东西的时候会碰到这样的需求:用单片机去控制一些东西,如风扇和电机等,当然,现在大部分时候直接买一个驱动芯片就可以解决问题,但是为了节约成本,画pcb的时候,我们可以自己搭建一个电路。
想要用单片机的io口去控制一个东西,最关键的问题是我们单片机提供的电压和电流足不足以驱动负载,我们就需要使用三极管进行放大。先来看一下常识:
传统单片机一般为10ma左右,现在的单片机一般20-25ma
我的cpu风扇驱动的电流为0.18A,远远超过了单片机能够提供的电流,这时候就需要接一个外部的电源,但是电源的开关我们如果想用软件去操作,就离不开使用三极管。
在这里我推荐两个电路,一个是单个NPN的开关,另一个是一个NPN加一个PNP的开关:
单个NPN的开关
需要注意的是,负载接入NPN三级管中,负载应该接在集电极(就是上面),因为发射极(下面)的电压与集电极相比较小,相差的值是三极管的本身压降,即硅管0.7V,锗管0.3V。发射极电流是基级电流与集电极电流之和。
其中V3是单片机的io口,V1是电源,R2是负载(风扇)。
同样的如果手上没有NPN只有PNP的,将负载接在发射极就可以了。
一个NPN加一个PNP
下图中V4作为单片机的io口,V2作为电源,R5作为负载。
选用NPN(左边三极管)作为电路的开关,PNP来放大电流,当NPN导通时,R6接地,PNP(右边三极管)导通。R3应该要比R6大一些,因为R3直接接电源电流大放热更高,为了减小电流接一个相对大的电阻。
第二个电路是当时老师做实验给我们的,做出来的实物没有问题,当时单片机的io口是pwm输出口,pwm输出没有问题。这两个方案都可以解决软件控制开关的问题。
笔者在此记录一下,方便下次直接抄。