理论上NPN三极管和PNP三极管都可以作为开关管驱动继电器,但是为什么绝大部分设计都喜欢使用NPN三极管驱动继电器呢?下面很多人的回答并没有说到点子上。因为使用NPN三极管驱动简单,在很多场合下若使用PNP三极管驱动继电器并不是这么简单可以实现的。
我们先来看一下NPN三极管和PNP三极管当开关管的原理,下图为基本驱动原理,左边为NPN三极管控制原理,右边为PNP三极管控制原理。三极管导通的条件是基极有电流,假设三极管BE压降为0.6V,对于NPN三极管来说输入电压必须高于0.6V,基极才会有电流,而对PNP三极管来说基极输入端电压必须比VCC小0.6V以上才会有电流。
▲三极管驱动继电器原理
三极管驱动输入端一般为微处理器的I/O口,比如单片机、DSP、ARM、CPLD、FPGA等,下面以单片机3.3V的I/O口为例。
对于NPN三极管,高电平时三极管导通(饱和),继电器工作,低电平时三极管截止,继电器不工作。只要计算选择合适的限流电阻使三极管工作于饱和区即可,原理简单。
若是使用PNP三极管驱动就没这么简单了,如果VCC的电压是3.3V没问题(即继电器工作电源为3.3V),可选择合适的限流电阻使I/O口为高电平时三极管截止,低电平时三极管导通(饱和)。但是一般继电器的工作电压比较高有5V、12V、24V等,也就是说继电器的工作电压与I/O口高电平的电压不相等时这么设计就会出问题了,并没这么简单。假如24V的继电器,无论使用3.3V或5V的I/O口控制PNP三极管,低电平时PNP三极管导通,高电平(3.3V或5V)时,发射极与基极的压差仍然很大,基极有电流,PNP三极管也导通,根本无法控制继电器,而直接使用NPN三极管就不一样了,不会受到VCC电压的影响,无论VCC电压多少一样能控制。
所以,若使用PNP三极管驱动继电器,前端还得加一级电路,可以是NPN三极管、光耦等,多此一举还不如直接使用NPN三极管方便,明白了吧?
总结:继电器的工作电压比I/O口控制端高电平电压高时,只使用一个PNP三极管无法实现控制继电器,所以一般采用NPN三极管驱动,原理简单,易实现。