继电器模块详解

继电器,一种常见的电控制装置,其应用几乎无处不在。在家庭生活,继电器被广泛应用于照明系统、电视机、空调等电器设备的控制;在工业领域,它们用于控制电机、泵站、生产线等高功率设备的运行;继电器还在通信网络、交通系统以及医疗设备中发挥着重要作用。

不仅如此,继电器也是学习其他电子原理和技术的入门工具。通过理解继电器的工作原理和使用方法,你将为更深入地探索电子世界打下坚实基础。

所以,如果你还是一枚小白,不必担心!继电器是一个很好的起点,可以帮助你逐步了解电子领域的基础概念和应用。相信我,一旦你掌握了继电器的奥秘,你将获得打开通向电子世界更大门的钥匙!

1. 源码下载及前置阅读

本文首发 良许嵌入式网www.lxlinux.net/e/ ,欢迎关注!

本文所涉及的源码及安装包如下(由于平台限制,请点击以下链接阅读原文下载):

www.lxlinux.net/e/stm32/rel...

往期教程,有兴趣的小伙伴可以看看。

2. 继电器介绍

继电器,可以被形象地比作一个开关,就像电灯开关一样,按下,电路闭合,电路通,灯亮;再按下,电路断开,电路不通,灯灭。它能够通过控制小电流来打开或关闭大电流电路,实现电路的控制和信号的传递。不过,与普通的物理开关相比,继电器具有更高的可靠性和灵活性,能够应对复杂的电路控制需求。

3. 继电器工作原理

当继电器的电磁线圈通电时,产生的磁场会引起机械部件的运动,从而改变触点的状态,触点可以是常闭或常开。

继电器原理示意图如下:

当信号电源断开,线圈两端没有施加电压,线圈没有产生磁力,衔铁在弹簧拉力下不接触触点,工作电路不连通,负载电器不工作。

当信号电源闭合,线圈两端施加电压,线圈产生磁力把衔铁往下拉,衔铁接触触点,工作电路连通,负载电器工作。

继电器的控制电路与工作电路是隔离的,这种切换状态的能力使得继电器能够控制高电压、大电流电路的开关操作。

4. 型号介绍

我们常见的继电器型号按照两方面分类:电压和路数。

1. 以电压分类:

根据控制电路的工作电压来分类,如 5V、12V、24V 等继电器。

  • 5V 继电器:通常在低电压应用中使用,如微控制器或单片机系统。
  • 12V 继电器:广泛应用于汽车电子、家用电器和工业自动化等领域。
  • 24V 继电器:常见于工业自动化和建筑控制系统等高电压应用。

2. 以路数分类:

按路数可分为 1/2/4/8 等路数,就像一板电灯开关上可以有 1/2/4/8 个开关,每个开关可以控制各自的电灯开关。8 路继电器就可以控制 8 个电路的开关。

5. 工作参数及引脚介绍

以下是常见继电器的工作参数,不过大家做项目前还是要按照商家详情页的挑选合适的,毕竟每个厂家会有些不同。

有些继电器可通过跳线设置高电平/低电平触发,跳线与 L 短接时为低电平触发,跳线与 H 短接时为高电平触发。

工作电压 静态电流 MAX电流 触发电压 触发电流 MAX负载
5V 5mA 190mA 5V 2-4mA 交流250V/10A 直流30V/10A
12V 5mA 80mA 12V 2-4mA 交流250V/10A 直流30V/10A
24V 5mA 50mA 24V 2-4mA 交流250V/10A 直流30V/10A

工作示意图如下:

接线如下:

  • 输入部分:
继电器 单片机/电路 备注
DC+/VCC 电源正极 按继电器要求,接5V、12、24V或其他电压
DC-/GND 电源负极
IN IO口 可以以高或低电平控制继电器吸合
  • 输出部分:

以下三个引脚,COM 一定要接,NO 和 NC 二选一。

继电器 电路 备注
NO 需要控制的电路,与 NC 二选一 常开接口,继电器吸合前悬空,吸合后与COM短接,电路闭合
COM 公共端 继电器公用接口
NC 需要控制的电路,与 NO 二选一 常闭接口,继电器吸合前与COM短接,吸合后悬空,电路断开

6. 编程实战

6.1 通信示意图

我们的实现目标是由 STM32 控制继电器闭合与松开,让 LED 的红灯亮灭。

6.2 硬件连接

本教程使用的硬件如下:

  • 单片机:STM32F103C8T6
  • 继电器:5V 一路继电器
  • 小灯:三色 LED 灯模块
  • 电池
  • 烧录器:ST-LINK V2
STM32 继电器 LED 电池
3.3 VCC
G GND
P8 IN
COM R
GND 负极
NO 正极

烧录的时候接线如下表,如果不会烧录的话可以看我之前的文章 STM32下载程序的五种方法:www.lxlinux.net/e/stm32/fiv...

ST-Link V2 STM32
SWCLK SWCLK
SWDIO SWDIO
GND GND
3.3V 3V3

接好如下图:

6.3 继电器代码

代码很简单,就是初始化一个引脚,连接继电器的 IN:高电平,继电器吸合,LED 亮;低电平,继电器悬空,LED 灭。

c 复制代码
#include "sys.h"
#include "usart.h"
#include "delay.h"


//继电器控制LED引脚定义
#define LED_CLK()       __HAL_RCC_GPIOB_CLK_ENABLE()
#define LED_GPIO        GPIOB
#define LED_PIN         GPIO_PIN_8 

void led_init(void);                    /* LED初始化函数声明 */

int main(void)
{
    HAL_Init();                         /* 初始化HAL库 */
    sys_stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */
    delay_init(72);                     /* 延时初始化 */
    led_init();                         /* LED初始化 */
    while(1)
    { 
        HAL_GPIO_WritePin(LED_GPIO,LED_PIN,GPIO_PIN_SET);   //继电器吸合,LED亮
        delay_ms(1000);
        HAL_GPIO_WritePin(LED_GPIO,LED_PIN,GPIO_PIN_RESET); //继电器悬空,LED灭
        delay_ms(1000); 
    }
}

/**
 * @brief       初始化LED相关IO口, 并使能时钟
 * @param       无
 * @retval      无
 */
void led_init(void)
{
    GPIO_InitTypeDef gpio_initstruct;
    LED_CLK();                                              /* IO口时钟使能 */

    gpio_initstruct.Pin = LED_PIN;                          /* LED0引脚 */
    gpio_initstruct.Mode = GPIO_MODE_OUTPUT_PP;             /* 推挽输出 */
    gpio_initstruct.Pull = GPIO_PULLUP;                     /* 上拉 */
    gpio_initstruct.Speed = GPIO_SPEED_FREQ_HIGH;           /* 高速 */
    HAL_GPIO_Init(LED_GPIO, &gpio_initstruct);              /* 初始化LED0引脚 */
}

6.4 效果展示

继电器「啪嗒」吸合,红灯亮;继电器「啪嗒」松开,红灯灭,如此循环。

6. 总结

继电器作为一种常见的电控制装置,在现代电子技术领域扮演着重要角色。它以其可靠性和高效性,成为各行各业中电路控制和电力传输的关键元件。希望通过本文的介绍大家能更好地理解和利用这一重要模块。感谢各位看官,love and peace!

另外,想进大厂的同学,一定要好好学算法,这是面试必备的。这里准备了一份 BAT 大佬总结的 LeetCode 刷题宝典,很多人靠它们进了大厂。

刷题 | LeetCode算法刷题神器,看完 BAT 随你挑!

有收获?希望老铁们来个三连击,给更多的人看到这篇文章

推荐阅读:

欢迎关注我的博客:良许嵌入式教程网,满满都是干货!

相关推荐
矛取矛求3 小时前
Linux如何更优质调节系统性能
linux
内核程序员kevin4 小时前
在Linux环境下使用Docker打包和发布.NET程序并配合MySQL部署
linux·mysql·docker·.net
kayotin5 小时前
Wordpress博客配置2024
linux·mysql·docker
Ztiddler5 小时前
【Linux Shell命令-不定期更新】
linux·运维·服务器·ssh
小小不董5 小时前
Oracle OCP认证考试考点详解082系列16
linux·运维·服务器·数据库·oracle·dba
a1denzzz6 小时前
Linux系统的网络设置
linux·服务器·网络
ac.char6 小时前
在CentOS下安装RabbitMQ
linux·centos·rabbitmq
m0_519523107 小时前
Linux——简单认识vim、gcc以及make/Makefile
linux·运维·vim
mit6.8247 小时前
[Docker#4] 镜像仓库 | 部分常用命令
linux·运维·docker·容器·架构
zyp2468107 小时前
Linux之DNS服务器
linux·运维·服务器