打印
[应用方案]

单片机IO直接驱动继电器

[复制链接]
2467|58
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
updownq|  楼主 | 2025-4-15 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
继电器就是个开关,这个开关是由它内部的线圈控制的,给线圈通电,继电器就吸合,开关就动作了。绝大部分的继电器反面都会有如下图一样的标识,看标识也就能看出,下图中1脚2脚之间是线圈,3脚和5脚在继电器不动作的时候是连一起的,当1脚2脚上加电压后,继电器动作,此时3脚就断开5脚,吸合到了4脚上去。



比如你要控制一条线的通断,就可以把这条线故意搞断以后,一端接到3脚,一端接到4脚,然后通过给线圈通电和断电,就可以控制这条线的通断了。我们通过单片机开控制1脚2脚上的线圈通电就可以控制这个开关的闭合与断开了。
线圈1脚和2脚加多大电压呢?
这个问题,需要看你用的继电器的正面,比如蓝色这个继电器,最下面一行字为“SRD-05DCV-SL-C”,其中的“05DCV”就表示线圈上所需要的电压值,在此表示需要直流5V电压才能驱动这个继电器吸合。
前面我们说过了,可以用单片机控制这个线圈上的电压,你可以直接用两只手拿上5V和GND两条线直接通到继电器线圈的两个引脚,就会听到响声了。
那用单片机怎么给他加电压?我们知道,单片机引脚就可以输出5V,是不是直接用单片机引脚连接继电器线圈,就可以了呢?
答案当然不是的!
下面我们来测试一下,用万用表测量一下这个线圈的电阻,如下图所示这个继电器的线圈上的电阻是67.3Ω,假设我们把这个线圈当做一个电阻来看的话,在它两端加上5V的电压,欧姆定律用上一算,电流就是74mA左右。但是,我们单片机的普通引脚最大输出10mA电流,大电流的引脚最大输出20mA电流(具体的单片机输出能力需要参照单片机的datasheet)。



通过上面的计算,虽然5V的单片机可以输出5V的电压,但是输出电流能力有限,远远达不到驱动继电器的电流,所以无法直接驱动继电器。假如我们采用灌电流的连接方式,这样很有可能直接烧坏单片机的IO口。
这时候我们就需要想办法,想想怎么能通过小电流来控制大电流呢,此时我们应该不叫容易想到的三极管,比如比较常用的S8050三极管,ICE最大允许电流是500mA,远远大于70mA,所以用S8050驱动继电器绝对是没有问题的。电路图如下所示:



看上图,ICE也就是从C流到E的电流,就是和继电器线圈一条线的电流。NPN三极管,在这里就是个开关,单片机引脚输出5V高电平,ICE就导通继电器就会吸合;单片机引脚输出0V低电平,ICE就截止,继电器就不吸合。值得注意的是,刚才计算时候我们是吧线圈当作了电阻,而实际它是线圈,线圈内的电流不能突变,所以在断开的瞬间会形成反向电动势,上图中的二极管就是为了释放这个反向电动势而设计的。
同理,电磁阀也是一种电阻很小功率很大的负载,也需要按照上述欧姆定律的方法,选择合适的驱动元件。
在更多的使用场景下,在同一个项目中可能需要驱动多个继电器,此时采用分立元件三极管来驱动可能就会有写繁琐了,此时可以采用一些驱动芯片,比较常见的有达林顿管ULN2003、ULN2803。采用这样的集成芯片驱动可以让电路变得简洁,还可以增加可靠性。如果需要更加保险的考虑的话可以在输入驱动信号的地方采用光耦作为隔离。

使用特权

评论回复
沙发
时光贩卖机| | 2025-4-16 20:43 | 只看该作者
这个帖子解释得很清楚,继电器的工作原理和如何用单片机控制继电器的通断。学到了!

使用特权

评论回复
板凳
rosemoore| | 2025-5-3 22:31 | 只看该作者
单片机 IO 口输出的电压与继电器的额定电压相匹配。

使用特权

评论回复
地板
minzisc| | 2025-5-4 00:17 | 只看该作者
当单片机 IO 口驱动能力不足时,可使用三极管(如 NPN 三极管)或 MOS 管作为开关来控制继电器。

使用特权

评论回复
5
maqianqu| | 2025-5-4 01:51 | 只看该作者
通过晶体管/MOSFET间接驱动,保护单片机IO口。

使用特权

评论回复
6
burgessmaggie| | 2025-5-4 19:57 | 只看该作者
继电器线圈在断电时会产生反电动势,其方向与电源电压相反,可能会损坏单片机或其他元件。

使用特权

评论回复
7
backlugin| | 2025-5-13 17:44 | 只看该作者
推挽输出模式可能无法提供足够电流,开漏模式需外接上拉电阻。

使用特权

评论回复
8
10299823| | 2025-5-13 20:01 | 只看该作者
当继电器线圈断电时,续流二极管为反电动势提供泄放路径,将反电动势消耗在二极管和线圈的电阻上,从而保护电路。

使用特权

评论回复
9
eefas| | 2025-5-13 21:19 | 只看该作者
在继电器电源引脚添加滤波电容              

使用特权

评论回复
10
tabmone| | 2025-5-14 22:10 | 只看该作者
在程序中对控制信号进行延时或滤波处理。

使用特权

评论回复
11
lidi911| | 2025-5-15 07:55 | 只看该作者
单片机的IO输出电流较小不能直接驱动继电器线圈

使用特权

评论回复
12
lihuami| | 2025-5-15 10:24 | 只看该作者
继电器线圈切换时可能引入噪声,影响单片机电源稳定性。

使用特权

评论回复
13
wengh2016| | 2025-5-15 12:21 | 只看该作者
为了保护电路,可在继电器线圈两端并联一个续流二极管(如 1N4007)。

使用特权

评论回复
14
macpherson| | 2025-5-15 13:01 | 只看该作者
反向电动势损坏IO口​              

使用特权

评论回复
15
nomomy| | 2025-5-15 13:41 | 只看该作者
继电器线圈在断电时会产生反向电压(反电动势),这可能会损坏单片机的IO引脚。应在继电器线圈两端并联一个续流二极管(如1N4001)来抑制反向电压。

使用特权

评论回复
16
sdCAD| | 2025-5-15 14:16 | 只看该作者
在软件设计时,要尽量避免不必要的继电器开关操作,合理安排继电器的工作时间和频率。

使用特权

评论回复
17
hilahope| | 2025-5-15 16:37 | 只看该作者
在继电器线圈两端并联续流二极管(如1N4007),方向为线圈正极→二极管正极。

使用特权

评论回复
18
wangdezhi| | 2025-5-15 17:17 | 只看该作者
反电动势保护              

使用特权

评论回复
19
burgessmaggie| | 2025-5-15 17:48 | 只看该作者
继电器线圈在断开时会产生反向电动势,这可能会损坏单片机。为了保护单片机,需要在继电器线圈两端并联一个续流二极管(如1N4001)。这个二极管可以释放反向电动势,防止其对电路造成损害。

使用特权

评论回复
20
jackcat| | 2025-5-15 18:56 | 只看该作者
为了放大电流,通常需要使用三极管(如S8050)或驱动芯片(如ULN2003、ULN2803)。这些元件可以将单片机IO口的小电流转换为足以驱动继电器的大电流。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

3364

帖子

1

粉丝