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

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

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

1. 源码下载及前置阅读

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

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

https://www.lxlinux.net/e/stm32/relay-tutorial.html

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

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负载
5V5mA190mA5V2-4mA交流250V/10A 直流30V/10A
12V5mA80mA12V2-4mA交流250V/10A 直流30V/10A
24V5mA50mA24V2-4mA交流250V/10A 直流30V/10A

工作示意图如下:

接线如下:

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

以下三个引脚,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.3VCC
GGND
P8IN
COMR
GND负极
NO 正极

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

ST-Link V2STM32
SWCLKSWCLK
SWDIOSWDIO
GNDGND
3.3V3V3

接好如下图:

6.3 继电器代码

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

#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 随你挑!

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

推荐阅读:

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


良许
1k 声望1.8k 粉丝