目录
前言
继电器简介
模块接线
工作原理
驱动代码
relay.h
relay.c
main.c
参考手册
继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
继电器_百度百科 (baidu.com)
.
前言
继电器的驱动代码和LED类似,比较简单。
继电器简介
继电器(relay)是用于在低电压电路中控制高电压电路的开关。
例如,当我们需要控制家里的电灯或电器时,由于电灯或电器的负载电流较大,直接用微控制器或其他低功率电子元件控制开关是不现实的,这时就需要用继电器来控制开关。
1.继电器可实现电路的隔离(输入回路与输出回路没有接线关系,因此继电器具有隔离功能),从而保护低功率电子元件,使其不会受到高电压或大电流的影响。
2.用弱电控制强电,保证人们不会在高压电路中因为某种因为发生危险。
模块接线
引脚 | 解释 |
---|---|
弱电端 | 与单片机连接 |
VCC | 电源正极(多少V继电器就用多少V供电) |
GND | 电源负极 |
IN | 信号输入脚(一般有低电平触发和高电平触发两种,如低电平触发IN口输入低电平时NO和COM导通) |
强电端 | 与负载端相连 |
NO | (normal open)表示常开端,默认状态是和COM不导通(继电器线圈未通电时断开) |
COM | 公共端,不同状态下与NO、NC的导通状态不同 |
NC | (normal close)表示常闭端,默认状态和COM导通(继电器线圈未通电时闭合) |
开路即断路,闭合指的是开关闭合,也就是说,在没有任何上电之类的动作时,NC和COM端相当于已经连通,这种继电器模块的连线一般情况下NC是闭合的,所以我们要接到NO接口,然后信号输入引脚即IN引脚给低电平(低电平触发)或者高电平(高电平触发方式),NC端断开,NO端闭合,负载端电路形成闭合回路,开始工作,当IN端给相反电平时时,NO端断开,负载即停止工作。
如果想一直工作,给信号停止工作,即把NO端的连线接在NC端就行了。
切记:继电器的GND要和单片机的GND接在一起共地,也可用同一电源来达到共地的效果。
我使用的模块如上图所示,为高电平触发
继电器(弱电端) | STM32F103C8T6 |
VCC | 3.3V |
GND | GND |
IN | PA0 |
继电器(强电端) | 负载 |
COM | GND |
NO | 正极 |
工作原理
电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放
驱动代码
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);
}
}
可以听到继电器开关的声音
参考手册
参考手册
JQC-3FF-S-Z 数据表 PDF - TONGLING (datasheet4u.com)