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

文章介绍了STM32L071微控制器如何通过PA11和PA12控制ULN2803驱动器,进而控制继电器Relay和LED灯的开关。使用CubeMX配置GPIO,展示了Function.c中的相关函数实现灯和继电器的亮灭操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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持续亮灭

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值