?最近設(shè)計了一個項目基于STM32F103C8T6單片機(jī)的智能室內(nèi)外晾衣架控制系統(tǒng),與大家分享一下:
一、基本介紹
項目名:基于單片機(jī)的晾衣架的的設(shè)計
項目編號:mcuclub-dz-033
單片機(jī)類型:STM32F103C8T6
功能簡介:
1、通過按鍵切換室內(nèi)室外模式
2、室內(nèi)模式下,通過人體熱釋電感應(yīng)模塊檢測周圍是否有人,沒人時對衣物進(jìn)行紫外線消毒,有人時自動關(guān)閉;室外模式也自動關(guān)閉。
3、室內(nèi)模式下,通過DHT11檢測室內(nèi)濕度值,若濕度大于設(shè)置最大值,則啟動烘干功能;室外模式自動關(guān)閉。
4、室外模式下,通過兩個光敏電阻檢測太陽光最強(qiáng)的方位,根據(jù)光強(qiáng)自動調(diào)整晾衣架角度(控制舵機(jī)角度);室內(nèi)模式不啟動。
5、室外模式下,通過觸發(fā)式雨滴檢測模塊檢測是否下雨,如果下雨,則每間隔1分鐘,聲光報警10s,直到按鍵切換成室內(nèi)模式;室內(nèi)模式不啟動。
6、通過按鍵可設(shè)置濕度最大值
7、通過OLED顯示測量數(shù)據(jù)
二、32實物圖
單片機(jī)型號:STM32F103C8T6
板子為綠色PCB板,兩層板,厚度1.2,上下覆銅接地。元器件基本上為插針式,個別降壓芯片會使用貼片式。
供電接口:TYPE-C
三、原理圖
軟件版本:AD2013
電路連線方式:網(wǎng)絡(luò)標(biāo)號連線方式
注意:原理圖只是畫出了模塊的引腳圖,而并不是模塊的內(nèi)部結(jié)構(gòu)原理圖
?四、PCB圖
由原理圖導(dǎo)出,封裝很大一部分都是作者自己繪制,不提供封裝庫,只提供連接好的源文件。中間有一個項目編號,隱藏在單片機(jī)底座下,插入單片機(jī)后不會看到。
兩層板,上下覆銅接地。
?五、系統(tǒng)框圖
本設(shè)計以單片機(jī)為核心控制器,加上其他模塊一起組成此次設(shè)計晾衣架的整個系統(tǒng),其中包括中控部分、輸入部分和輸出部分。中控部分采用了單片機(jī)控制器,其主要作用是獲取輸入部分的數(shù)據(jù),經(jīng)過內(nèi)部處理,邏輯判斷,最終控制輸出部分。輸入由六部分組成,第一部分是溫濕度檢測模塊,通過該模塊檢測當(dāng)前環(huán)境中的溫濕度;第二部分是光照強(qiáng)度檢測模塊,通過改模塊檢測當(dāng)前環(huán)境中的光照強(qiáng)度;第三部分是人體熱釋電檢測模塊,通過該模塊檢測是否有人;第四部分是雨量檢測模塊,通過該模塊檢測是否下雨;第五部分是按鍵模塊,通過該模塊可以切換界面、設(shè)置閾值、切換模式等;第六部分是供電模塊,通過該模塊可給整個系統(tǒng)進(jìn)行供電。輸出由四部分組成,第一部分是顯示模塊,通過該模塊可以顯示監(jiān)測的數(shù)據(jù)以及設(shè)置的閾值;第二部分是報警模塊,檢測到下雨進(jìn)行聲光報警提醒;第三部分是舵機(jī)模塊,通過舵機(jī)控制晾衣架的角度;第四部分是繼電器模塊,控制烘干機(jī)和紫外線消毒燈進(jìn)行工作。具體系統(tǒng)框圖如圖3.1所示。。
六、軟件設(shè)計流程
系統(tǒng)的主流程圖如圖4-2所示。在主程序中:首先對各個模塊進(jìn)行初始化,隨后進(jìn)入while主循環(huán),在主循環(huán)中,首先進(jìn)入第一個函數(shù)按鍵函數(shù),該函數(shù)主要分為兩部分,第一部分為調(diào)用按鍵掃描函數(shù)獲取按鍵鍵值,第二部分通過鍵值進(jìn)行相應(yīng)的處理操作,包括切換界面、設(shè)置閾值、切換模式等;緊接著進(jìn)入第二個函數(shù)監(jiān)測函數(shù),該函數(shù)主要通過調(diào)用相應(yīng)的驅(qū)動函數(shù)獲取測量值;緊接著進(jìn)入第三個函數(shù)顯示函數(shù),該函數(shù)顯示監(jiān)測值及閾值;最后進(jìn)入第四個函數(shù)處理函數(shù),室內(nèi)模式,沒人時對衣物進(jìn)行紫外線消毒,有人時自動關(guān)閉,濕度大于設(shè)置最大值,則啟動烘干功能,室外模式,下雨,則每間隔1分鐘,聲光報警10s,根據(jù)當(dāng)前的光照強(qiáng)度調(diào)整舵機(jī)。
?七、部分程序展示
軟件版本:keil5文章來源:http://www.zghlxwxcb.cn/news/detail-782316.html
邏輯程序和驅(qū)動程序分開,分布于main.c和其他.c文件文章來源地址http://www.zghlxwxcb.cn/news/detail-782316.html
*******處理函數(shù)
*****/
void Manage_function(void)
{
if(flag_display == 0) //測量界面
{
if(flag_mode == 0) //室內(nèi)模式
{
BEEP = 0;
LED = 1;
if(MAN == 1) //沒人時對衣物進(jìn)行紫外線消毒,有人時自動關(guān)閉
RELAY_XD = 1;
else
RELAY_XD = 0;
if(humi_value > humi_max*10) //濕度大于設(shè)置最大值,則啟動烘干功能
RELAY_HG = 1;
else
RELAY_HG = 0;
}
else //室外模式
{
RELAY_XD = 0;
RELAY_HG = 0;
if(DO == 0) //下雨,則每間隔1分鐘,聲光報警10s,
{
flag_timer_begin_10s = 1;
if(flag_1m == 0)
{
if(flag_10s == 0)
{
flag_timer_begin_1m = 0;
flag_1m = 0;
if(time_num %2 == 0)
{
LED = ~LED;
BEEP =~BEEP;
}
}
else
{
flag_timer_begin_1m = 1;
BEEP = 0;
LED = 1;
}
}
else
{
flag_timer_begin_1m = 0;
flag_1m = 0;
flag_10s = 0;
}
}
else
{
flag_timer_begin_10s = 0;
flag_10s = 0;
flag_timer_begin_1m = 0;
flag_1m = 0;
BEEP = 0;
LED = 1;
}
if(light_l > light_r+10)
{
motor_duoji_cout = 1900; //舵機(jī)
TIM_SetCompare1(TIM1,motor_duoji_cout); //設(shè)置定時器pwm值
}
else if(light_l < light_r-10)
{
motor_duoji_cout = 1780; //舵機(jī)
TIM_SetCompare1(TIM1,motor_duoji_cout); //設(shè)置定時器pwm值
}
else
{
motor_duoji_cout = 1830; //舵機(jī)
TIM_SetCompare1(TIM1,motor_duoji_cout); //設(shè)置定時器pwm值
}
}
}
else //設(shè)置界面
{
BEEP = 0;
LED = 1;
RELAY_XD = 0;
RELAY_HG = 0;
}
}
到了這里,關(guān)于【單片機(jī)畢業(yè)設(shè)計】【mcuclub-dz-033】基于單片機(jī)的智能室內(nèi)外晾衣架控制系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!