STM32F103单片机控制继电器开关小风扇和加热片

前言:

   在智能衣柜中,使用异味传感器检测柜内异味值,当异味值大于设定值时会自动开启小风扇,小风扇起到一个排污去浊的功能,再加上温湿度传感器检测柜内的温度和湿度,当温湿度达到设定值时,加热片自动发热,起到一个降温除霉的作用。想要使小风扇和加热片自动开启或者关闭,就要使用继电器作为一个自动开关装置。

一,5V继电器

1.1两路5V继电器购买渠道

元器件链接:【淘宝】https://m.tb.cn/h.U6pnKbc?tk=dk7KdYCslzq CZ3457 「1 2 4 8路5V12V24V继电器模块带光耦隔离支持高低电平触发开发板」 点击链接直接打开 或者 淘宝搜索直接打开

1.2  5V小风扇购买渠道

元器件链接:【淘宝】https://m.tb.cn/h.UgZhnzy?tk=zBvfdYCxJBO CZ3457 「3D打印机 Makerbot 配件 挤出机小散热风扇4010 5/12/24V直流风扇」 点击链接直接打开 或者 淘宝搜索直接打开

1.3 5V加热片购买渠道

元器件链接:【淘宝】https://m.tb.cn/h.UgZ75ZX?tk=QPgQdYCysp2 CZ0001 「小型PTC发热片5V12V24V电热芯陶瓷恒温LED灯珠拆换加热板烘干除潮」 点击链接直接打开 或者 淘宝搜索直接打开

二,两路5V继电器

2.1简介

继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用,可以用来控制5V的小风扇和加热片。

2.2继电器硬件图

STM32F103单片机控制继电器开关小风扇和加热片_第1张图片

放一张继电器图,主要是让大家避避雷,我第一次使用的时候,一直没效果,上网搜索好多博客来看才明白输出端的线怎么接的,写在这里也是希望大家不用像我一样。

输入端口:外接5V电源,输入端哪里有个绿色框框,黑色跳帽可以控制继电器是高电平触发还是低电平触发。

输出端口:从左往右看,分别是NO1/NO2,COM1/COM2,NC1/NC2,代表常开,公共端,常闭三种状态。

继电器的两种状态,开和关,当继电器触发时,为打开状态,NOn口就会被使能,当继电器为关闭状态时,NCn口就会被使能,中间作为公共端连接输出。

元器件的线如何连接?

继电器为打开状态:小风扇红黑两根线子,红线接入继电器的NO1/NO2口,继电器的COM1/COM2拿一根公母杜邦线引出来接入5V电源,小风扇的黑线接STM32的GND口。

继电器为关闭状态:小风扇红黑两根线子,红线接入继电器的NC1/NC2口,继电器的COM1/COM2拿一根公母杜邦线引出来接入5V电源,小风扇的黑线接STM32单片机的GND口。连接图下图所示:

输入端

STM32F103单片机控制继电器开关小风扇和加热片_第2张图片

 输出端

STM32F103单片机控制继电器开关小风扇和加热片_第3张图片

三,软件代码部分

3.1软件部分---STM32CUBEMAX部分

第一步:配置STM32单片机PC2,PC3口味GPIO_OUT输出

STM32F103单片机控制继电器开关小风扇和加热片_第4张图片

 第二步:黑色跳帽插入H端,为高电平触发,在MCU上电时,初始化IO口为低电平输出,开漏输出,输出使能上拉电阻,并设置标签:FAN_IO,HOT_IO,如下图所示:

STM32F103单片机控制继电器开关小风扇和加热片_第5张图片

第三步:STM32Cubemaa生成keil代码。


3.2软件部分---Keilv5代码部分

第一步:因为加热片和小风扇的代码比较少和简单,就把他们合成一个文件去使用哦,在工程文件中添加小风扇和加热片.c和.h控制文件。

STM32F103单片机控制继电器开关小风扇和加热片_第6张图片

 第二步:在fan&hot.h中添加以下代码:

#ifdef H_fan_HOT_H
#define H_fan_HOT_H
#include "main.h"

void FAN_Switch(uint8_t a);//¿ªÆô/¹Ø±Õ·çÉÈ

void HOT_Switch(uint8_t a);//¿ªÆô/¹Ø±Õ¼ÓÈÈƬ

#endif

第三步:在fan&hot.c中添加以下代码:

#include "fan&hot.h"
#include "gpio.h"

void FAN_Switch(uint8_t a)
{
	if(a)	//ÅжÏaÊÇ·ñΪÕæÖµ
	{
	  HAL_GPIO_WritePin(GPIOC,FAN_IO_Pin,GPIO_PIN_SET);
	}
	else
	 HAL_GPIO_WritePin(GPIOC,FAN_IO_Pin,GPIO_PIN_RESET);	//ÉèÖÃPC8Òý½Å״̬Ϊ¸ßµçƽ

}


void HOT_Switch(uint8_t a)
{

 if(a)	//ÅжÏaÊÇ·ñΪÕæÖµ
	{
	 HAL_GPIO_WritePin(GPIOC,HOT_IO_Pin,GPIO_PIN_SET);
	}
	else
	 HAL_GPIO_WritePin(GPIOC,HOT_IO_Pin,GPIO_PIN_RESET);	//ÉèÖÃPC8Òý½Å״̬Ϊ¸ßµçƽ

}

第四步:在main.c中加入新增.h文件:

STM32F103单片机控制继电器开关小风扇和加热片_第7张图片

 第五步:在mian.c的while循环中打开/关闭小风扇,并在串口处打印输出。

STM32F103单片机控制继电器开关小风扇和加热片_第8张图片

 四,测试输出

4.1sscom串口输出

STM32F103单片机控制继电器开关小风扇和加热片_第9张图片

 看图可知,每隔5s打开/关闭小风扇,继电器控制小风扇/加热片成功。

4.2实际控制测试

VID_20221208_153540

看视频可知,小风扇5s打开,5s之后关闭的状态。

五,总结

总结:上面部分我只是做了继电器控制小风扇的测试,如果想要做成达到预订异味值就开启风扇或加热片的效果,可以加上温度值进行判断,就是在while中加一个if 判断函数,就可以了哦。目前规划就是加紧把剩下的部分更新出来吧,争取1月之前更完。

有什么问题可以私信给我,我看到都会回的,当然直接要整个毕业设计的代码勿扰哈!

你可能感兴趣的:(单片机,stm32,嵌入式硬件)