为什么单片机不能直接驱动继电器和电磁阀?虽然这个问题对于电子老白来说不值一提,但对于初学单片机的朋友而言,问这个问题的人实在是太多了。以前总是一句一句地解释给大家听,重复的劳动实在没有意义,看来非常有必要在这里统一说一下了。
既然是初学者,下面先简单介绍一下继电器是个什么东西。
(这是我手头上的一个继电器)
继电器就是个开关,这个开关是由它内部的线圈控制的,给它的线圈通电,继电器就吸合,开关就动作了。
有些人还会问什么是线圈?看上图,1脚和2脚就线圈的两个引脚,3脚和5脚现在是通的,3脚和2脚是不通的。如果你给1脚和2脚通电,你就会听到继电器一声响,然后3脚和4脚就通了。
比如你要控制一条线的通断,就可以把这条线故意搞断以后,一端接到3脚,一端接到4脚,然后通过给线圈通电和断电,就可以控制这条线的通断了。
线圈1脚和2脚加多大电压?
这个问题,需要看你用的继电器的正面,比如我现在这个,你可以看到是05VDC,所以你可以给这个继电器的线圈通5V电,继电器就会吸合。
线圈电压怎么加?
终于说到正题了。
你可以直接用两只手拿上5V和GND两条线直接通到继电器线圈的两个引脚,就会听到响声了。
那用单片机怎么给他加电压?我们知道,单片机引脚就可以输出5V,是不是直接用单片机引脚连接继电器线圈,就可以了呢?
答案当然不是的。
为什么呢?
万变不离其宗,还是欧姆定律。
你用万用表量一下继电器线圈的电阻。
比如我这个继电器线圈的电阻,大概是71.7欧姆,加5V电压的话,电流就是5除以71.7约等于0.07A,就是70mA。记住,我们单片机的普通引脚最大输出10mA电流,大电流的引脚最大输出20mA电流(这点可参照单片机的datasheet)。
看到了吧,虽然是5V,但是输出电流能力有限,达不到驱动继电器的电流,所以无法直接驱动继电器。
这时候就需要想办法,比如用三极管S8050驱动。电路图如下所示:
看S8050的datasheet,S8050是一个NPN管,ICE最大允许电流是500mA,远远大于70mA,所以用S8050驱动继电器绝对是没有问题的。
看上图,ICE也就是从C流到E的电流,就是和继电器线圈一条线的电流。NPN三极管,在这里就是个开关,单片机引脚输出5V高电平,ICE就导通继电器就会吸合;单片机引脚输出0V低电平,ICE就截止,继电器就不吸合。
同理,电磁阀也是一种电阻很小功率很大的负载,也需要按照上述欧姆定律的方法,选择合适的驱动元件。