【STM32F103】继电器的用法

您所在的位置:网站首页 继电器输出端口是哪个 【STM32F103】继电器的用法

【STM32F103】继电器的用法

2024-07-12 22:41| 来源: 网络整理| 查看: 265

前言

因为最近用到了继电器,所以稍微记录一下继电器的用法。

如果我们需要点亮一个LED灯的时候,我们只需要用单片机的GPIO口去输出高低电平驱动就行。

但是我们需要通过单片机去控制大电压器件的开关的时候,我们就不能简简单单地用一个GPIO口去控制了,这时候我们需要用到继电器。

继电器

上图是我有的继电器(是磁吸式的,不过不重要),其他继电器的用法也大差不差。

可以看到有6个接口,分别是NO,COM,CN;VCC,GND,IN。

我这款继电器是5V直流驱动的(继电器表面最下面一行写的),所以我们需要在VCC接5V直流电压(实测STM32F103提供的3.3V带得不动我这款继电器,因此我使用了5V锂电池),GND就接地。IN随便接一个GPIO口用于驱动继电器。

接下来是重点,我们抛开原理不谈,直接说用法。当继电器工作时,也就是你的IN触发了继电器工作(具体看你的继电器是高电平驱动还是低电平驱动),COM和NO是连通的,而COM和CN是断开的。当继电器不工作时,COM和NO是断开的,而COM和CN是连通的。

一般情况下,我们要点亮一个灯是像上图这样的。

而我们要用单片机去控制一个灯的开关,并且默认灯是关着的时候是像下图这样的,原本直接连通的线我们破开,一路接COM,一路接NO。

这样默认情况下COM和NO是断开的,当我们给IN的电平驱动继电器工作时,COM和NO连通了起来,灯泡也就亮了,我们也就成功通过单片机控制继电器从而控制灯泡的开关。

当我们要用单片机去控制一个灯的开关,并且默认灯是开着的时候是像下图这样的,原本直接连通的线我们破开,一路接COM,一路接NC。

这样默认情况下COM和NC是连通的,当我们给IN的电平驱动继电器工作时,COM和NC断开,灯泡也就灭了,我们也就成功通过单片机控制继电器从而控制灯泡的开关。

通过STM32F103实测 #include "stm32f10x.h" // Device header #include "Delay.h" int main(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitTypeDef itd; itd.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出 itd.GPIO_Pin=GPIO_Pin_0; //使用Pin_0号引脚 itd.GPIO_Speed=GPIO_Speed_2MHz; GPIO_Init(GPIOA,&itd); while(1){ GPIO_WriteBit(GPIOA,GPIO_Pin_0,1); Delay_s(1); GPIO_WriteBit(GPIOA,GPIO_Pin_0,0); Delay_s(1); } }

代码没什么可说的,就是让一个GPIO口高低电平切换,我们就是用这个GPIO口去接继电器的IN口来操控继电器的。

可以来看看我的接线。

我的LED以及继电器都是用的5V锂电池供电的(因为STM32F103的3.3V带不动继电器,因此用了锂电池,因为用了DC降压模块,实际电压差不多是4V),上图的线比较乱,我再画个平面图。

简单来说就是在LED通电的情况下,用继电器把原本连通的电路给阻断。

值得一提的是由于STM32F103的3.3V带不动继电器,因此用的额外的电池给继电器供电,但是需要STM32的GND和继电器的GND共地。一开始没有共地导致STM32F103即使是输出高电平也是触发了继电器工作,因为GND不同,因此电压的高低电平会有偏差,使得单片机即使是输出了高电平,在继电器眼里仍然是低电平(我的继电器是低电平触发),后来共地就好了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3