单片机毕设 人体定位智能调速风扇系统
文章目錄
- 0 前言
- 1 主要功能
- 2 硬件設計
- 3 核心軟件設計
- 4 實現效果
- 5 最后
0 前言
🔥
這兩年開始畢業設計和畢業答辯的要求和難度不斷提升,傳統的畢設題目缺少創新和亮點,往往達不到畢業答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統達不到老師的要求。
為了大家能夠順利以及最少的精力通過畢設,學長分享優質畢業設計項目,今天要分享的是
🚩 畢設分享 基于單片機的人體定位智能調速風扇系統統(源碼+硬件+論文)
🥇學長這里給一個題目綜合評分(每項滿分5分)
- 難度系數:3分
- 工作量:3分
- 創新點:4分
🧿 項目分享:
https://gitee.com/sinonfin/sharing
1 主要功能
創新點
- (1)我們設計的自動調速跟蹤風扇能夠實現自動定位人群的功能;
- (2)能夠根據環境溫度的變化自動調節風扇轉速;
- (3)能夠通過設定啟動值自動啟動風扇;
- (4)能夠通過彩屏實時顯示所用電量及價格。
2 硬件設計
系統各模塊的最終方案如下:
- 微控制器模塊:采用STM32F103VET6單片機控制主控臺,采用AT89S52和ATmega16單片機控制工作區。
- 檢測模塊:采用熱釋紅外傳感器。
- 環境溫度采集模塊:采用DS18B20溫度傳感器。
- 電機模塊:采用舵機與直流電機搭配。
- 數據傳輸模塊:采用NRF24L01無線收發模塊。
- 顯示模塊:采用彩屏液晶顯示。
3 核心軟件設計
主控臺可以通過觸摸彩屏對工作區閾值溫度、溫度和轉速的對應關系以及電量的價格等信息進行設置。其設置流程圖如圖
利用射頻模塊實現主控臺與工作區的信息轉換。主控臺設置啟動溫度、溫度與轉速轉換對應關系等信息,通過NRF24L01射頻模塊傳到工作區。工作區將采集到的環境溫度通過射頻模塊回傳給主控臺,當達到啟動溫度時,整個系統開始運行
驅動電路主要包括電機驅動和舵機驅動兩部分。根據人群位置的信息,計算改變舵機的轉角;根據環境溫度的高低,調節風扇電機的轉速。其程序流程圖如
關鍵代碼
(5)main主函數 /******************** (C) COPYRIGHT 2011 野火嵌入式開發工作室 ******************** * 文件名 :main.c * 描述 :LCD觸摸實驗,開機先校驗屏幕,畫筆通過觸摸板取色。 * 實驗平臺:野火STM32開發板 * 庫版本 :ST3.0.0 * * 作者 :fire QQ: 313303034 * 博客 :firestm32.blog.chinaunix.net **********************************************************************************/ #include "stm32f10x.h" #include "lcd.h" #include "sd_fs_app.h" #include "SPI_Flash.h" #include "systick.h" #include "usart1.h" #include "Touch.h" #include "led.h" #include "24l01.h" void RCC_Configuration(void); extern volatile unsigned char touch_flag; extern unsigned int flagflag,flagflag1,flagflag2; extern unsigned int flagflag3,flagflag4,flagflag5,flagflag6; extern unsigned char emission[5]; extern unsigned char emission1[4]; extern unsigned char emission2[5]; extern unsigned char emission3[3]; /** 函數名:main* 描述 :主函數* 輸入 :無* 輸出 :無*/ int main(void) { unsigned char five=0;RCC_Configuration(); /*時鐘配置*/LCD_Init(); /*LCD初始化*/Touch_init(); /*觸摸初始化*/while(Touchl_Calibrate() !=0); /*等待觸摸屏校準完畢*/ /*******************************開始工作**************************************************/while (1) { Init_Menu(); //進入起始菜單while(flagflag==0){ if((touch_flag==1)&&(flagflag3==1)) { { if(Get_touch_point(&display, Read_2046_2(), &touch_para ) !=DISABLE) { if((display.y>90)&&(display.y<140)||((240-display.x)>110)&&((240-display.x)<190) ){#ifdef HX8347 //LCD_draw_rectangle(0,0,240,320,BLACK); /*清白屏*/ //#else //LCD_draw_rectangle(0,0,240,320,BLACK); /*清白屏*/ //#endif Init_Menu1(); LED_GPIO_Config();NRF24L01Int1();while(five<=20){ five++; NRFSetTxMode1(emission);//發送溫度while(CheckACK1()); //檢測是否發送完畢GPIO_SetBits(GPIOC,GPIO_Pin_0);NRFDelay(1000);GPIO_ResetBits(GPIOC,GPIO_Pin_0);NRFDelay(1000); } five=0;flagflag3=0;delay_ms(500);Init_Menu();/*************連續發送5次信息數組emission*******************/LCD_Show_8x16_String(180,10,1,emission1); //LCD_Show_8x16_String(180,33,1,emission2); //LCD_Show_8x16_String(180,56,1,emission3); // } } } } // if(touch_flag == 1) /*如果觸筆按下了*/ //下面的就是判斷坐標了 { if(Get_touch_point(&display, Read_2046_2(), &touch_para ) !=DISABLE) { Palette_draw_point(display.x,display.y); } }} //進入二級菜單while(flagflag1==1) { flagflag2=1;if(touch_flag == 1) {if(Get_touch_point(&display, Read_2046_2(), &touch_para ) !=DISABLE){ Palette_draw_point(display.x,display.y); }}} } } /*****************************驗證各個通道**********************************************************/ /*int main(void) { uint i; unsigned char yanzheng[5]={0}; SystemInit();LED_GPIO_Config();NRF24L01Int(); while(1){NRFSetRXMode();//設置為接收模式GetDate(); //開始接受數 for(i=0;i<5;i++){ yanzheng[i]=RevTempDate0[i]; //A點if(yanzheng[i]!=0)4 實現效果
紅外傳感器系統檢測人群位置,ATmega16控制舵機的轉角,使風扇只在人群區域內轉動。此時DS18B20繼續采集環境溫度,AT89S52將此溫度值與轉速調節溫度進行對比,ATmega16則相應的調節直流電機的轉速,使其更加的人性化。NRF24L01無線射頻傳輸模塊則實現與控制臺信息的交換
5 最后
包含內容
🧿 項目分享:
https://gitee.com/sinonfin/sharing
總結
以上是生活随笔為你收集整理的单片机毕设 人体定位智能调速风扇系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电子科大计算机学硕考研分数线,2020电
- 下一篇: Thermal Desktop V4.8