MCU控制继电器的电路详解

本文详细解析了两种控制继电器的方式:控制电源通断和控制接地通断,通过具体电路实例阐述了如何利用三极管和场效应管实现继电器的控制,并解释了续流二极管在消除反向电动势中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 控制继电器的两种方式

控制继电器断开和闭合,无非就是控制继电器电源端或接地端的通断,通常选择使用三级管开关或场效应管开关来实现。不管采用何种方案,其思想是一致的,下面就控制电源通断和控制接地通断这两个方面,用实际产品电路来分析一下继电器电路设计的思想。

1.1 控制电源通断

下图中的电路是一款设备的12V继电器控制电路,用于控制车辆油路通断。

接线示意图:在这里插入图片描述原理图:
在这里插入图片描述简单分析一下电路:
VKK 是主电源,CON_OIL+ 接继电器线圈的一端,继电器线圈的另一端接地,CTRL_OIL 是 MCU 控制引脚。

  • CTRL_OIL ==> 低电平
    当 CTRL_OIL 设置为低电平时,三极管Q23没有导通,PMOS管Q20的 G 极被电阻R77拉高,也没有导通,所以继电器没有电流流过,继电器处于断开状态。

  • CTRL_OIL ==> 高电平
    当 CTRL_OIL 设置为高电平时,三极管Q23导通,PMOS管Q20的 G 极被拉低到 1/2 VKK,VGS < 0,PMOS管Q20导通,继电器线圈中有电流流过,继电器处于闭合状态。

1.2 控制接地通断

下图中的电路是另一款设备的12V继电器控制电路,与上图不同的是,这个是控制继电器接地端通断的。

接线示意图:
在这里插入图片描述原理图:
在这里插入图片描述简单分析一下电路:
VKK 是主电源,继电器线圈一端接电源,YOULU- 接继电器线圈的一端,YOULU_CTRL- 是 MCU 控制引脚。

  • YOULU_CTRL-==> 低电平
    当 CTRL_OIL 设置为低电平时,三极管Q7导通,三极管Q5导通,继电器中有电流流过,继电器处于闭合状态。
  • YOULU_CTRL- ==> 高电平
    当 CTRL_OIL 设置为高电平时,三极管Q7和Q5没有导通,继电器线圈中没有电流流过,继电器处于断开状态。

并联在继电器上的二极管称为续流二极管,用于消除继电器断开瞬间产生的反向电动势对电路的影响,使用续流二极管,当电感性负载的电流有突然的变化或减少时,其电流可以较平缓地变化,避免突变电压的产生。

这个原理图中使用的是 1N4007 ,是一个通用二极管,一般用于整流,这种普通二极管的单向导电特性取决于P型半导体与N型半导体接触形成的PN结,由于结电容的存在,反应时间并不太短,所以在开关电路断开瞬间,普通的二极管可能还来不及导通,相当于没使用续流二极管,还是会产生较大反向电动势,所以选用肖特基二极管应该会好点。

2. 继电器产生反向电动势的原因简析

我们先回忆一下中学时期学习过的几个物理知识点:

  • 电生磁
  • 磁生电
  • 法拉第电磁感应定律
  • 楞次定律

继电器的线圈通以电流后,就会在在其周围产生磁场,这就是电生磁;当线圈的电流发生变化时,磁通也发生变化,磁通变化产生感应电动势,这就是磁生电;继电器断开瞬间,线圈中的电流急速变化,产生很大的感应电动势。

那么为什么继电器断开瞬间产生的电动势会损坏电路中的元器件呢?这个等我们简单分析一下这个感应电动势的方向后就可以找到答案了。

楞次定律指出,线圈中磁通变化引起的感应电动势,其真实方向总是使其产生的感应电流试图阻止磁通的变化。简单点理解就是感应电动势总是会阻碍线圈中电流的变化,也就是感应电动势的方向总是与电流变化的方向相反,这就是我们常说的 “来拒去留” ,继电器断开瞬间,线圈中的电流急剧减小,产生的感应电动势就会阻止线圈中电流变小,所以感应电动势方向就如下图所示:
在这里插入图片描述当作为负载开关的三极管/场效应管的耐压值不够高,继电器断开瞬间线圈产生的反向电动势就会击穿三极管/场效应管,损坏器件,所以感性器件上(例如继电器、电动机等)并联续流二极管很有必要。

以上是我对两款产品的继电器控制电路的浅显理解,如有错误欢迎指正。

你可以使用以下代码来验证PyTorch是否安装成功: ```python import torch print(torch.__version__) print(torch.cuda.is_available()) ``` 这段代码会输出PyTorch的版本号以及CUDA是否可用。如果PyTorch安装成功,你应该能够看到相应的输出。\[1\] 另外,你也可以使用以下代码来验证和查看PyTorch的安装情况: ```python import torch print(torch.cuda.is_available()) # 查看CUDA是否可用 print(torch.cuda.device_count()) # 查看可用的CUDA数量 print(torch.version.cuda) # 查看CUDA的版本号 ``` 这段代码会输出CUDA是否可用、可用的CUDA数量以及CUDA的版本号。\[2\] 此外,你还可以使用命令`nvidia-smi`来查看CUDA的版本。然而,你可能会发现通过代码和`nvidia-smi`命令查看的CUDA版本可能不同。这是因为PyTorch和NVIDIA驱动之间的兼容性问题。你可以参考这篇文章了解更多信息:\[链接\](https://blog.csdn.net/sophicchen/article/details/120782209)。\[3\] #### 引用[.reference_title] - *1* [检查PyTorch版本及GPU是否安装成功检测](https://blog.csdn.net/weixin_46569877/article/details/122089421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [检查pytorch是否安装成功、查看torch和cuda的版本](https://blog.csdn.net/qq_41340996/article/details/124326865)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值