前言:
? ?在智能衣柜中,使用異味傳感器檢測(cè)柜內(nèi)異味值,當(dāng)異味值大于設(shè)定值時(shí)會(huì)自動(dòng)開(kāi)啟小風(fēng)扇,小風(fēng)扇起到一個(gè)排污去濁的功能,再加上溫濕度傳感器檢測(cè)柜內(nèi)的溫度和濕度,當(dāng)溫濕度達(dá)到設(shè)定值時(shí),加熱片自動(dòng)發(fā)熱,起到一個(gè)降溫除霉的作用。想要使小風(fēng)扇和加熱片自動(dòng)開(kāi)啟或者關(guān)閉,就要使用繼電器作為一個(gè)自動(dòng)開(kāi)關(guān)裝置。
一,5V繼電器
1.1兩路5V繼電器購(gòu)買(mǎi)渠道
元器件鏈接:【淘寶】https://m.tb.cn/h.U6pnKbc?tk=dk7KdYCslzq CZ3457 「1 2 4 8路5V12V24V繼電器模塊帶光耦隔離支持高低電平觸發(fā)開(kāi)發(fā)板」 點(diǎn)擊鏈接直接打開(kāi) 或者 淘寶搜索直接打開(kāi)
1.2? 5V小風(fēng)扇購(gòu)買(mǎi)渠道
元器件鏈接:【淘寶】https://m.tb.cn/h.UgZhnzy?tk=zBvfdYCxJBO CZ3457 「3D打印機(jī) Makerbot 配件 擠出機(jī)小散熱風(fēng)扇4010 5/12/24V直流風(fēng)扇」 點(diǎn)擊鏈接直接打開(kāi) 或者 淘寶搜索直接打開(kāi)
1.3 5V加熱片購(gòu)買(mǎi)渠道
元器件鏈接:【淘寶】https://m.tb.cn/h.UgZ75ZX?tk=QPgQdYCysp2 CZ0001 「小型PTC發(fā)熱片5V12V24V電熱芯陶瓷恒溫LED燈珠拆換加熱板烘干除潮」 點(diǎn)擊鏈接直接打開(kāi) 或者 淘寶搜索直接打開(kāi)
二,兩路5V繼電器
2.1簡(jiǎn)介
繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱(chēng)輸入回路)和被控制系統(tǒng)(又稱(chēng)輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開(kāi)關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用,可以用來(lái)控制5V的小風(fēng)扇和加熱片。
2.2繼電器硬件圖
放一張繼電器圖,主要是讓大家避避雷,我第一次使用的時(shí)候,一直沒(méi)效果,上網(wǎng)搜索好多博客來(lái)看才明白輸出端的線怎么接的,寫(xiě)在這里也是希望大家不用像我一樣。
輸入端口:外接5V電源,輸入端哪里有個(gè)綠色框框,黑色跳帽可以控制繼電器是高電平觸發(fā)還是低電平觸發(fā)。
輸出端口:從左往右看,分別是NO1/NO2,COM1/COM2,NC1/NC2,代表常開(kāi),公共端,常閉三種狀態(tài)。
繼電器的兩種狀態(tài),開(kāi)和關(guān),當(dāng)繼電器觸發(fā)時(shí),為打開(kāi)狀態(tài),NOn口就會(huì)被使能,當(dāng)繼電器為關(guān)閉狀態(tài)時(shí),NCn口就會(huì)被使能,中間作為公共端連接輸出。
元器件的線如何連接?
繼電器為打開(kāi)狀態(tài):小風(fēng)扇紅黑兩根線子,紅線接入繼電器的NO1/NO2口,繼電器的COM1/COM2拿一根公母杜邦線引出來(lái)接入5V電源,小風(fēng)扇的黑線接STM32的GND口。
繼電器為關(guān)閉狀態(tài):小風(fēng)扇紅黑兩根線子,紅線接入繼電器的NC1/NC2口,繼電器的COM1/COM2拿一根公母杜邦線引出來(lái)接入5V電源,小風(fēng)扇的黑線接STM32單片機(jī)的GND口。連接圖下圖所示:
輸入端:
?輸出端:
三,軟件代碼部分
3.1軟件部分---STM32CUBEMAX部分
第一步:配置STM32單片機(jī)PC2,PC3口味GPIO_OUT輸出
?第二步:黑色跳帽插入H端,為高電平觸發(fā),在MCU上電時(shí),初始化IO口為低電平輸出,開(kāi)漏輸出,輸出使能上拉電阻,并設(shè)置標(biāo)簽:FAN_IO,HOT_IO,如下圖所示:
第三步:STM32Cubemaa生成keil代碼。
3.2軟件部分---Keilv5代碼部分
第一步:因?yàn)榧訜崞托★L(fēng)扇的代碼比較少和簡(jiǎn)單,就把他們合成一個(gè)文件去使用哦,在工程文件中添加小風(fēng)扇和加熱片.c和.h控制文件。
?第二步:在fan&hot.h中添加以下代碼:
#ifdef H_fan_HOT_H
#define H_fan_HOT_H
#include "main.h"
void FAN_Switch(uint8_t a);//?a??/1?±?·?éè
void HOT_Switch(uint8_t a);//?a??/1?±??óèè??
#endif
第三步:在fan&hot.c中添加以下代碼:
#include "fan&hot.h"
#include "gpio.h"
void FAN_Switch(uint8_t a)
{
if(a) //?D??aê?·??a???μ
{
HAL_GPIO_WritePin(GPIOC,FAN_IO_Pin,GPIO_PIN_SET);
}
else
HAL_GPIO_WritePin(GPIOC,FAN_IO_Pin,GPIO_PIN_RESET); //éè??PC8òy??×′ì??a??μ???
}
void HOT_Switch(uint8_t a)
{
if(a) //?D??aê?·??a???μ
{
HAL_GPIO_WritePin(GPIOC,HOT_IO_Pin,GPIO_PIN_SET);
}
else
HAL_GPIO_WritePin(GPIOC,HOT_IO_Pin,GPIO_PIN_RESET); //éè??PC8òy??×′ì??a??μ???
}
第四步:在main.c中加入新增.h文件:
?第五步:在mian.c的while循環(huán)中打開(kāi)/關(guān)閉小風(fēng)扇,并在串口處打印輸出。
?四,測(cè)試輸出
4.1sscom串口輸出
?看圖可知,每隔5s打開(kāi)/關(guān)閉小風(fēng)扇,繼電器控制小風(fēng)扇/加熱片成功。
4.2實(shí)際控制測(cè)試
VID_20221208_153540
看視頻可知,小風(fēng)扇5s打開(kāi),5s之后關(guān)閉的狀態(tài)。
五,總結(jié)
總結(jié):上面部分我只是做了繼電器控制小風(fēng)扇的測(cè)試,如果想要做成達(dá)到預(yù)訂異味值就開(kāi)啟風(fēng)扇或加熱片的效果,可以加上溫度值進(jìn)行判斷,就是在while中加一個(gè)if 判斷函數(shù),就可以了哦。目前規(guī)劃就是加緊把剩下的部分更新出來(lái)吧,爭(zhēng)取1月之前更完。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-783483.html
有什么問(wèn)題可以私信給我,我看到都會(huì)回的,當(dāng)然直接要整個(gè)畢業(yè)設(shè)計(jì)的代碼勿擾哈!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-783483.html
到了這里,關(guān)于STM32F103單片機(jī)控制繼電器開(kāi)關(guān)小風(fēng)扇和加熱片的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!