STM32控制5V继电器模块详解
创作时间:
作者:
@小白创作中心
STM32控制5V继电器模块详解
引用
CSDN
1.
https://m.blog.csdn.net/qq_44016222/article/details/142511973
继电器(Relay)是一种电子控制器件,具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中。它实际上是用较小的电流去控制较大电流的一种"自动开关",在电路中起着自动调节、安全保护、转换电路等作用。
以下是继电器模块的参数:
- 型号:SRD-05VDC-SL-C
- 工作电压:5V
- 最大负载:250V/10A
- 触发电流:5mA
- 尺寸:25mm×50mm×18.5mm
模块原理
引脚描述
引脚名称 | 描述 |
---|---|
DC+ | 电源正极 |
DC- | 电源负极 |
IN | 控制信号 |
NO | 常开接口 |
COM | 公共接口 |
NC | 常闭接口 |
工作原理
利用电磁效应,当线圈两端加以电压时,电磁铁会产生磁力,导致衔铁吸合,此时弹簧压缩,金属触点连接到常开的一侧。当线圈两端没有电压时,电磁吸力也随之消失,衔铁就会在弹簧的反作用下返回原来的位置,常闭的金属触点导通。
继电器的驱动电流大概是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"
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"
// 继电器 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)
void RELAY_Init(void);
#endif
relay.c文件
#include "relay.h"
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;
}
实验效果
(此处应补充实验效果的具体描述,例如继电器控制LED灯的开关效果等)
热门推荐
墨兰的浇水技巧(从浇水频率到水的品质)
河南春晚再上大分,看点前瞻,创作揭秘
名字的魅力与影响:如何选择好听且有意义的名字
体检报告这3项指标正常,可排除很多疾病
凹凸/高度贴图、法线贴图、视差贴图、置换贴图异同
滞纳金的会计分录怎么写(滞纳金计入什么明细科目)
魂牵梦绕:生活中的美好瞬间与难忘情感的追寻
延边州深度游玩指南!多条主题线路任你选
表达特别喜欢一个人的诗句精选53句
由技入道:探寻太极拳修炼的境界之路
稀疏自注意力(Sparse Self-Attention)
到哪里去申请公租房?如何把握机会提高申请成功率
每个伤口都需要我们认真对待!关于伤口护理,你需要知道这些知识
微信发文规范公众号标题夸大营销行为
遇到这种瓜子立马吐,1 秒钟都别迟疑!
偷税和避税在税务审计中如何被识别
如何正确检查齿轮油的状态?齿轮油检查的步骤和注意事项是什么?
深圳龙华区18个免费游玩景点推荐
庭院园林景观设计理念都有哪些
交通事故赔偿费用标准详解
2025年交通事故赔偿标准及处理流程详解
年终岁末,让车辆年检更便捷的实用指南
生酮疗法:原理、益处与风险全解析
探索伊春精华:更优化旅游路线及行程建议
“科艺文旅”融合,徽风皖韵更出彩
最新研究揭示:少吃不一定瘦,但可能更长寿
手机生产日期难查询?教你几招快速找到出厂时间
手机生产日期难查询?教你几招快速找到出厂时间
高三“过来人”的忠告,真的对吗?
俯卧撑虽常见,但你做的标准吗?快来学习一下