首页 > 其他分享 >继电器模块的使用与代码示例

继电器模块的使用与代码示例

时间:2024-07-19 23:55:06浏览次数:13  
标签:relay Relay 示例 void 继电器 NO 模块 GPIO

 目录

前言

继电器简介

模块接线

工作原理

驱动代码

relay.h

relay.c

main.c

参考手册


继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节安全保护、转换电路等作用。 

继电器_百度百科 (baidu.com)

.f1f3c5685916495fabfe280beca26183.png

前言

继电器的驱动代码和LED类似,比较简单。

继电器简介

继电器(relay)是用于在低电压电路中控制高电压电路的开关。

例如,当我们需要控制家里的电灯或电器时,由于电灯或电器的负载电流较大,直接用微控制器或其他低功率电子元件控制开关是不现实的,这时就需要用继电器来控制开关。

1.继电器可实现电路的隔离(输入回路与输出回路没有接线关系,因此继电器具有隔离功能),从而保护低功率电子元件,使其不会受到高电压或大电流的影响。

2.用弱电控制强电,保证人们不会在高压电路中因为某种因为发生危险。

模块接线

引脚解释
弱电端与单片机连接
VCC电源正极(多少V继电器就用多少V供电)
GND电源负极
IN信号输入脚(一般有低电平触发和高电平触发两种,如低电平触发IN口输入低电平时NO和COM导通)
强电端与负载端相连
NO(normal open)表示常开端,默认状态是和COM不导通(继电器线圈未通电时断开)
COM公共端,不同状态下与NO、NC的导通状态不同
NC(normal close)表示常闭端,默认状态和COM导通(继电器线圈未通电时闭合)

cfdeabe71534424ba39a7b26eda8d937.png

0d6c0d4772d648ea96a86f8e4acb8cbb.png

开路即断路,闭合指的是开关闭合,也就是说,在没有任何上电之类的动作时,NC和COM端相当于已经连通,这种继电器模块的连线一般情况下NC是闭合的,所以我们要接到NO接口,然后信号输入引脚即IN引脚给低电平(低电平触发)或者高电平(高电平触发方式),NC端断开,NO端闭合,负载端电路形成闭合回路,开始工作,当IN端给相反电平时时,NO端断开,负载即停止工作。

 如果想一直工作,给信号停止工作,即把NO端的连线接在NC端就行了。

 切记:继电器的GND要和单片机的GND接在一起共地,也可用同一电源来达到共地的效果。

 80c31676357b420596fca9e5bb969cd5.png

我使用的模块如上图所示,为高电平触发

继电器(弱电端)STM32F103C8T6
VCC3.3V
GNDGND
INPA0
继电器(强电端)负载
COMGND
NO正极

工作原理

电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放

451ef708b4ad43d6a209ff8f06ccf18c.png

驱动代码

relay.h

#ifndef         _RELAY_H_
#define			_RELAY_H_

#define RELAY_HIGH     	1
#define RELAY_LOW       0

void  Relay_Init(void);
void  Relay_High(void);
void  Relay_Low(void);
#endif

relay.c

#include "stm32f10x.h"                  // Device header
#include "relay.h"

void Relay_Init(void)
{
	
		RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
 
		GPIO_InitTypeDef GPIO_InitStruct;
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStruct);
		//默认输出低电平
}

void  Relay_High(void)
{
	GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)RELAY_HIGH);	
}
 
void  Relay_Low(void)
{
	GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)RELAY_LOW);
}

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "relay.h"

int main(void)
{
	Relay_Init();
	
	while (1)
	{
		Relay_High();
		Delay_ms(1000);
		Relay_Low();
		Delay_ms(1000);
		
	}
}

可以听到继电器开关的声音

参考手册

0c60443cd73e45c19eb5b3d0adf6a217.png

34e568a855b544fcbbf63f82e78a2616.png

44ca8c8c16f24a6c8bb2b318a70e72e6.png

a93063d7d8f24d188e43914d26b5b657.png

参考手册

JQC-3FF-S-Z 数据表 PDF - TONGLING (datasheet4u.com)

标签:relay,Relay,示例,void,继电器,NO,模块,GPIO
From: https://blog.csdn.net/m0_75090944/article/details/140561893

相关文章

  • NVIDIA全面转向开源GPU内核模块
      每周跟踪AI热点新闻动向和震撼发展想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行!订阅:https://......
  • 0基础学python-18:掌管匹配机制的模块——re
    目录前言使用正则表达式的背景: 元字符 匹配的范围 正则表达式1.importre2.re.match(r"匹配的规则",所要匹配的字符串) 3.匹配一个变量名 4.转义字符的匹配5.分组匹配6.贪婪匹配7.预编译前言        正则表达式(RegularExpression,简称regex或......
  • 【C++进阶学习】第七弹——AVL树——树形结构存储数据的经典模块
    二叉搜索树:【C++进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫-CSDN博客目录一、AVL树的概念二、AVL树的原理与实现AVL树的节点AVL树的插入AVL树的旋转AVL树的打印AVL树的检查三、实现AVL树的完整代码四、总结前言:在前面我们学习二叉搜索树的......
  • 插片式远程IO模块:单通道PNP和NPN编码器模块功能和安装方法
     XD系列插片式远程I/O模块是兴达易控技术研发的分布式扩展模块。XD系列成套系统主要由耦合器、各种功能I/O模块、电源辅助模块以及终端模块组成。有多种通讯协议总线的耦合器,例如PROFINET、EtherCAT、Ethernet/IP、CclinkIE以及modbus/TCP等。I/O模块可分为多通道数字量输入模块......
  • 自动化测试-Robotframework项目结构示例
    学习总结,有错误欢迎指出。总结:项目要有自己的一套结构,形成自己的体系,应对不同的项目。1.项目结构2.目录说明......
  • Chromium源码阅读(10):了解Log模块
    Chromium许多日志被TraceEvent代替了,因此TraceEvent出现的频率要比Log高很多。但是也有不少场景使用Log。在blink,Log的实现由blink/base提供,而chromium的日志由blink/render/core/base/logging.h提供。一些底层的日志由absel的log模块提供。说实话,日志模块的实现数量有点......
  • 排序代码示例
    快速排序publicstaticvoidmain(String[]args){int[]arr={0,5,9,1,3,6};//intpartition=partition(arr,0,arr.length-1);quick(arr,0,arr.length-1);System.out.println(Arrays.toString(arr));}publicsta......
  • 深度学习第P9周:YOLOv5-Backbone模块实现
    >-**......
  • Flowable流程引擎核心事件详细解释说明并附上示例代码FlowableEventType
    Flowable核心事件详细解释说明并附上示例代码Flowable的核心事件类型下表列出引擎中的所有事件类型。每种类型对应org.flowable.engine.common.api.delegate.event.FlowableEventType中的一个枚举值。事件名称说明事件类ENGINE_CREATED本监听器所属的流程引擎已经创建,并......
  • 社区志愿者小程序功能模块
    社区志愿者小程序的功能模块是围绕着促进志愿服务活动的组织和参与而设计的。以下是一些核心功能模块,它们共同构成了一套完整的志愿者服务平台:###1.用户模块-**注册与登录**:用户注册账号,通过手机号、邮箱或社交媒体账号登录。-**个人中心**:用户可以查看和编辑个人信息,如......