你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32f1之简单控制继电器模块

[复制链接]
STMCU小助手 发布时间:2022-5-14 20:38
前言

相信很多志同道合的小伙伴们已经找到了学习STM32的好途经(灵光一闪刷到我的博客)了,接下来的时光里,我会讲到一些我对一些模块的使用,同时附上源码还有我的心得。没错,今天我讲的就是继电器的使用。

O7}]~6HB_35UY3E`TOBAU.png

一、继电器的使用(重要!!!)
其实继电器简单来说就是一个开关,VCC表示电源正极、GND表示电源负极、IN表示信号输入脚,COM表示公共端,NC(normal close)表示常闭端,NO(normal open)表示常开端

一般情况下是常闭状态

这里简单地描述一下大部分的继电器模块:

Vcc接电源正极,Gnd接电源负极,In接STM32上的输出脚(输入高电平公共端连常闭,输入低电平公共端连常开),如下图所示,你就可以明白了,当IN脚输入高电平时,NC与COM相连(左图);当输入低电平时,NO与COM相连(右图)。

G4$)<]C1YNKLZHCF[3S2V.png

相信这样子你就对继电器有了基本的使用了解,下面我就不讲解其内部的结构原理了,可以到其他文章上学习具体原理,附上链接

二、写个代码检验

下面我就简单的实现以下它的开关功能吧

  1. #include "jdq.h"


  2. void relay_init(void)//对继电器初始化,即对PB7口初始化
  3. {
  4.   GPIO_InitTypeDef     GPIO_InitStructure;
  5.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  6.         
  7.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  8.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//
  9.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  10.         
  11.   GPIO_Init(GPIOB, &GPIO_InitStructure);
  12.         
  13. }         

  14. void relay_on(void)//PB7置1
  15. {
  16.   GPIO_SetBits(GPIOB,GPIO_Pin_7);
  17. }

  18. void relay_off(void)//PB7置0
  19. {
  20.   GPIO_ResetBits(GPIOB,GPIO_Pin_7);
  21. }
复制代码

主函数:

  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "led.h"
  4. #include "jdq.h"

  5. int main(void)
  6. {        
  7.         delay_init();                  
  8.         LED_Init();                  
  9.          relay_init();//继电器初始化
  10.         while(1)
  11.         {

  12.                 relay_off();//置0,即开关置NO,连常开
  13.                 LED0=0;
  14.                 delay_ms(2000);//延时4s左右
  15.                 delay_ms(2000);
  16.                 delay_ms(2000);
  17.                 delay_ms(5000);
  18.                 delay_ms(5000);

  19.                 relay_on();//置1,即开关置NC,连常闭
  20.                 LED0=1;
  21.                 delay_ms(2000);//延时4s左右
  22.                 delay_ms(2000);
  23.                 delay_ms(2000);
  24.                 delay_ms(5000);
  25.                 delay_ms(5000);
  26.         }
  27. }
复制代码

效果图如下:

Y$AM4R22{$M6D[AS]X0}FP9.png
~PI}8~NHZEH{{%T5S@6D)F4.png


上面我只用了STM32F1的最小系统板测试了一下,光敏传感器检验了一下,注意我这里用的是一节3.7V的锂电池给光敏传感器供电,所以你在给继电器模块上的Vcc口接电源时记得接3.3V的,不能接5V的,不然没法驱动开关,因为这个的原理就是弱电控制强电,你如果比另外一端电压还大那就无法达到效果。

继电器就是小电控制大电电路,切记!

注意继电器大部分都是高电平下连接常闭,低电平连接常开,有部分产家会是反过来,大家买回来如果不确定,可以像我这样做个小实验证一下。





收藏 评论0 发布时间:2022-5-14 20:38

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版