首先要说明,直接用IO口驱动功率设备不是很合适,因为单片机的端口都是数字量,电流很小,而且相对来说IO口比较容易坏,一般都先接驱动芯片(74系列,40系列,或者达林顿管),然后接功率设备,当然小功率的,比如二极管什么的可以不用(要加限流电阻)。
电路图是PNP的,因为单片机默认上电是高电平(STC),而且,灌电流比起拉电流来说电流大一些,拉电流一般都是微安级别,灌电流可以达到毫安,尤其是如果要直接驱动一些大功率的管子,阀值电流高,就要用PNP或者接先接驱动电路。
如果要用NPN,如果你的三极管是小功率的,比如常见的2N2222,2N3904,2N5401,C1815,S8050,S9013,S9014,S9018都是小功率,电压一般不超过100V,最大电流都在0.1A左右,单片机可以直接驱动(不要加限流电阻,因为单片机最大输出也才是微安级别,如果加了限流可能导致三极管放大效率变低输出电流变小),如果要驱动大功率管,则要接一级放大才推的动(比如先接一个2N2222增加电流或者电压),或者买一个达林顿管(或自己组装一个)。
NPN管的接法和PNP管相同,只不过输出变为高有效。
NPN的三极管一般C极加个上拉电阻后接5V电源,基极串一个限流电阻用单片机引脚控制通断,发射极接地。自己试试!
单片机的IO串联一个电阻接到三极管的基极,通常用1K左右即可。
三极管的集电极接负载,发射极接地就ok了。
这种接法在5V环境下可以适用于PNP和NPN管,但在其它电压情况下就只适用于NPN管。
若要可靠一点,则还可以在三极管的基极与发射极之间并联一个较大的电阻,例如10K之类的。