5V继电器模块详解(STM32)

目录

一、介绍

二、模块原理

1.原理图

2.引脚描述

3.工作原理介绍

三、程序设计

main.c文件

relay.h文件

relay.c文件

四、实验效果 

五、资料获取

项目分享


一、介绍

        继电器(Relay),也称电驿,是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。

以下是继电器模块的参数:

型号

SRD-05VDC-SL-C

工作电压

5V

最大负载

250V/10A

触发电流

5mA

尺寸

25mm×50mm×18.5mm

哔哩哔哩视频链接:

5V继电器模块详解(STM32)

(资料分享见文末) 

二、模块原理

1.原理图

2.引脚描述

引脚名称

描述

DC+

电源正极

DC-

电源负极

IN

控制信号

NO

常开接口

COM

公共接口

NC

常闭接口

3.工作原理介绍

    利用电磁效应,当线圈两端加以电压时,电磁铁会产生磁力,导致衔铁吸合,此时弹簧压缩,金属触点连接到常开的一侧。当线圈两端没有电压时,电磁吸力也随之消失,衔铁就会在弹簧的反作用下返回原来的位置,常闭的金属触点导通。

    继电器的驱动电流大概是50mA,而STM32的引脚输出电流大概在8mA,如果直接用IO口控制,驱动电流太小,继电器不会闭合。而三极管的作用就是类似开关控制,通过控制三极管的基极电流可以让三极管工作在截止和饱和导通状态,从而控制继电器闭合和断开。

三、程序设计

使用STM32F103C8T6控制5V继电器模块完成吸合和断开的操作。

RELAY_IN

PA0

OLED_SCL

PB11

OLED_SDA

PB10

main.c文件

#include "stm32f10x.h"
#include "led.h"
#include "usart.h"
#include "delay.h"
#include "oled.h"
#include "relay.h"

/*****************辰哥单片机设计******************
											STM32
 * 项目			:	5V继电器实验                     
 * 版本			: V1.0
 * 日期			: 2024.9.18
 * MCU			:	STM32F103C8T6
 * 接口			:	参看relay.h							
 * BILIBILI	:	辰哥单片机设计
 * CSDN			:	辰哥单片机设计
 * 作者			:	辰哥 

**********************BEGIN***********************/

int main(void)
{ 
	
  SystemInit();//配置系统时钟为72M	
	delay_init(72);
	LED_Init();
	LED_On();
	RELAY_Init();
	USART1_Config();//串口初始化
	
	OLED_Init();
	printf("Start \n");
	delay_ms(1000);
	
	OLED_Clear();
	//显示“继电器:”
	OLED_ShowChinese(0,0,0,16,1);
	OLED_ShowChinese(16,0,1,16,1);
	OLED_ShowChinese(32,0,2,16,1);
	OLED_ShowChar(48,0,':',16,1);

  while (1)
  {
		RELAY_ON;
		LED_On();
		OLED_ShowChinese(48,24,3,16,1);		//闭
		OLED_ShowChinese(64,24,4,16,1);		//合
		delay_ms(1000);
		
		RELAY_OFF;
		LED_Off();
		OLED_ShowChinese(48,24,5,16,1);		//断
		OLED_ShowChinese(64,24,6,16,1);		//开
		delay_ms(1000);

  }
}

relay.h文件

#ifndef __RELAY_H
#define	__RELAY_H
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"

/*****************辰哥单片机设计******************
											STM32
 * 文件			:	5V继电器h文件                   
 * 版本			: V1.0
 * 日期			: 2024.9.18
 * MCU			:	STM32F103C8T6
 * 接口			:	见代码							
 * BILIBILI	:	辰哥单片机设计
 * CSDN			:	辰哥单片机设计
 * 作者			:	辰哥

**********************BEGIN***********************/


/***************根据自己需求更改****************/
// 继电器 GPIO宏定义

#define	RELAY_CLK							RCC_APB2Periph_GPIOA

#define RELAY_GPIO_PIN 				GPIO_Pin_0

#define RELAY_GPIO_PROT 			GPIOA

#define RELAY_ON 		GPIO_SetBits(RELAY_GPIO_PROT,RELAY_GPIO_PIN)
#define RELAY_OFF 	GPIO_ResetBits(RELAY_GPIO_PROT,RELAY_GPIO_PIN)


/*********************END**********************/

void RELAY_Init(void);

#endif

relay.c文件

#include "relay.h"

/*****************辰哥单片机设计******************
											STM32
 * 文件			:	5V继电器c文件                   
 * 版本			: V1.0
 * 日期			: 2024.9.18
 * MCU			:	STM32F103C8T6
 * 接口			:	见代码							
 * BILIBILI	:	辰哥单片机设计
 * CSDN			:	辰哥单片机设计
 * 作者			:	辰哥

**********************BEGIN***********************/


void RELAY_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RELAY_CLK, ENABLE ); //配置时钟
	
	GPIO_InitStructure.GPIO_Pin = RELAY_GPIO_PIN;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(RELAY_GPIO_PROT,&GPIO_InitStructure);

	RELAY_OFF;
}

四、实验效果 

五、资料获取

项目分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值