当前位置: 首页 > news >正文

蓝桥杯物联网竞赛_STM32L071_2_继电器控制

Stm32l071原理图:

在这里插入图片描述
PA11PA12连接着UNL2803

ULN2803是一种集成电路芯片,通常被用作高电压和高电流负载的驱动器。
ULN2803是一个达林顿阵列,当输入引脚(IN1至IN8)被连接到正电源时,相应的输出引脚(OUT1至OUT8)将会断开或保持在高阻抗状态。这意味着输出引脚不会提供任何电流或电压输出。

当输入引脚被连接到正电源时,通常用于让外部组件(如微控制器或其他逻辑电路)控制输出引脚的状态。如果你想让输出引脚处于活跃状态,你需要将输入引脚连接到地或负电源。

PA11PA12输入高电平,其对位引脚REALY1REALY2输出就为低电平,反之输入为低,输出就为高

REALY1REALY2输出为低电平,继电器Relay导通其对位的K1K2就会导通LD2LD3发光,反之继电器处于释放状态,那么K1K2断开,灯熄灭=

CubeMX配置:

在这里插入图片描述

Function.c及Function.h:

#include "Function.h"
#include "gpio.h"
void Function_LD5_ON(void){HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET);
}void Function_LD5_OFF(void){HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_SET);
}void Function_LD5_Toggle(void){HAL_GPIO_TogglePin(LD5_GPIO_Port, LD5_Pin);
}void Function_K1_ON(void){HAL_GPIO_WritePin(K1_GPIO_Port, K1_Pin, GPIO_PIN_SET);
}void Function_K1_OFF(void){HAL_GPIO_WritePin(K1_GPIO_Port, K1_Pin, GPIO_PIN_RESET);
}void Function_K1_Toggle(void){HAL_GPIO_TogglePin(K1_GPIO_Port, K1_Pin);
}void Function_K2_ON(void){HAL_GPIO_WritePin(K2_GPIO_Port, K2_Pin, GPIO_PIN_SET);
}void Function_K2_OFF(void){HAL_GPIO_WritePin(K2_GPIO_Port, K2_Pin, GPIO_PIN_RESET);
}void Function_K2_Toggle(void){HAL_GPIO_TogglePin(K2_GPIO_Port, K2_Pin);
}
#ifndef __FUNCTION__
#define __FUNCTION__
void Function_LD5_ON(void);void Function_LD5_OFF(void);void Function_LD5_Toggle(void);void Function_K1_ON(void);void Function_K1_OFF(void);void Function_K1_Toggle(void);void Function_K2_ON(void);void Function_K2_OFF(void);void Function_K2_Toggle(void);#endif

main函数:

while (1){Function_K1_Toggle();Function_LD5_Toggle();Function_K2_Toggle();HAL_Delay(300);}

效果:

K1-LED、K2-LED、LD5持续亮灭

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/242618.html

相关文章:

  • python之pyqt专栏2-项目文件解析
  • Kafka 集群如何实现数据同步
  • opencv- CLAHE 有限对比适应性直方图均衡化
  • IOS免签封装打包苹果APP的方法
  • Springboot引入分布式搜索引擎Es RestAPI
  • Lua脚本解决redis实现的分布式锁多条命令原子性问题
  • Vatee万腾独特科技力量的前沿探索:Vatee的数字化奇点
  • C++面试,const的使用
  • 小总结----长度
  • 【深度学习】如何选择神经网络的超参数
  • jQuery 3.0 新增了哪些特性?(jQuery 3 所引入的那些最重要的变化)
  • MindStudio学习一 整体介绍
  • excel表中慎用合并单元格,多用跨列居中
  • linux网络编程之UDP编程
  • YB4556 28V、1A、单节、线性锂电池充电IC
  • 基于单片机设计的大气气压检测装置(STC89C52+BMP180实现)
  • 【ChatGLM3-6B】Docker下部署及微调
  • 编程常见报错信息及解决方案汇总
  • 从Redis反序列化UserDetails对象异常后发现FastJson序列化的一些问题
  • 0001Java程序设计-springboot基于微信小程序批发零售业商品管理系统
  • 中国防锈油市场深度调研与投资战略报告(2023版)
  • Linux C 基于tcp和epoll在线聊天室
  • 为什么要隐藏id地址?使用IP代理技术可以实现吗?
  • 前端(HTML + CSS + JS)
  • 12 要素 12 Factor
  • 十大排序之冒泡排序与快速排序(详解)
  • 【SpringBoot篇】阿里云OSS—存储文件的利器
  • Leetcode—58.最后一个单词的长度【简单】
  • Apach Ozone部署
  • 【nlp】3.2 Transformer论文复现:1. 输入部分(文本嵌入层和位置编码器)