嵌入式STM32学习——继电器
继电器模块引脚说明
VCC(+): 供电正极。连接此引脚到电源(通常是直流电源),以提供继电器线圈所需的电流。
GND(-): 地。连接此引脚到电源的负极或地。
IN(或者类似标记): 控制输入。通常用于连接控制信号,当该信号变化时,继电器将切换状态。
NC(Normally Closed): 常闭接口,继电器吸合前与COM连接,吸合后悬空
COM(Common): 公共端,通常是中间的触点,与常开或常闭触点相连。
NO(Normally Open): 常开接口,继电器吸合前悬空,吸合后与COM连接
开路即通路、断路,闭合指的是开关闭合,也就是说,在没有任何上电之类的动作时,NC和COM端相当于已经连通
个人见解:
继电器有指示灯一侧接STM32,VCC和GND不用多说,分别是电源和地线的连接,IN接口则接STM32中的一个引脚,用来控制继电器的接通与否,若IN口为0(低电平)时继电器绿灯亮起(接通),若IN口为1(高电平)时继电器绿灯熄灭(断开)。当继电器接通时左侧便可以控制传感器等大电流器件工作。
实验:(控制继电器开关,间隔一秒)
relay.c
#include "relay.h"
#include "stm32f10x.h"void Relay_Init(void)
{GPIO_InitTypeDef Relay_initstruct;//结构体定义RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);//时钟初始化Relay_initstruct.GPIO_Pin = GPIO_Pin_0;Relay_initstruct.GPIO_Speed = GPIO_Speed_10MHz;Relay_initstruct.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOA, &Relay_initstruct );初始化结构体}
relay.h
#ifndef RELAY_H_
#define RELAY_H_void Relay_Init(void);//声明#endif
main
#include "stm32f10x.h"
#include "main.h"#include "relay.h"void delay(uint16_t time) //延时函数
{uint16_t i=0;while(time--){i =12000;while(i--);}
}int main()
{Relay_Init(); //函数声明GPIO_SetBits(GPIOA,GPIO_Pin_0);初始化继电器为断开状态while(1){GPIO_ResetBits(GPIOA,GPIO_Pin_0); //闭合delay(1000);GPIO_SetBits(GPIOA,GPIO_Pin_0); //断开delay(1000);}
}