本設計的硬件構成:
STM32F103C8T6單片機最小系統板(包含+3.3V穩壓電路+時鐘晶振電路+復位電路(上電自復位,手動復位)),溫度傳感器、水位傳感器、紅外人體傳感器、紅外反射傳感器、超聲波測距模塊、LCD液晶顯示屏、按鍵、蜂鳴器、LED指示燈、繼電器等電路而成;
功能介紹:
1、溫度傳感器采集水溫,按鍵設置水溫閾值,人體感應檢測人體信號,當發現有人時并且水溫低于閾值時,進行加熱(繼電器A),否則不加熱。
2、接水口為固定區域,紅外傳感器檢測是否有水杯,超聲波傳感器檢測水杯里的水位高度。當有水杯時(檢測到紅外信號),開始加水(繼電器B啟動),當超聲波距離小于預設值(程序中設定),停止加水。
3、水位傳感器檢測飲水機內水位,當飲水機水位較低時,發出蜂鳴器提示儲水不足。
4、顯示屏幕顯示數據信息(超聲波距離、 水溫、水位)。
5、通過按鍵設置水溫,按鍵1:設置鍵;按鍵2:加一鍵;按鍵3:減一鍵。
主要物料清單及型號:
顯示屏:LCD1602-5V;
單片機:STM32F103C8T6;
超聲波測距模塊:HC-SR04;
紅外人體傳感器:SR602;
繼電器:SRD-05V;
蜂鳴器:5V有源蜂鳴器;
原理圖:
實物圖1:
設計資料:
元器件清單:
程序:
int main(void) { u8 key_value; delay_init(); //延時函數初始化 uart_init(9600); //串口初始化為9600 TIM3_Cap_Init(1,72-1); //以1Mhz的頻率計數,第一個選項,最小只能是1 TIM2_Int_Init(499,7199);//10Khz的計數頻率,計數到1000為100ms // LED_Init(); //初始化與LED連接的硬件接口 BEEP_Init(); KEY_Init(); //初始化按鍵 RELAY_Init(); Adc_Init(); Lcd_GPIO_init(); //初始化lcd引腳 Lcd_Init(); //初始化lcd屏幕 UltrasonicWave_Configuration(); //初始化超聲IO delay_ms(200); cool_relay=0; while(1) { key_value=KEY_Scan(0); key_Handle(key_value); APP_Handle(); if(PEOPLE==1) { people_flag=10; } if(disFlag>10) //顯示標志 { disFlag = 0; if(people_flag>0) people_flag--; ceju(); //獲取水位 water=Get_Adc_Average(9,10)/40; temperature=(float)DS18B20_Get_Temp()+7; //縮小10倍為實際值 if(settemp>temperature&&people_flag>0) { heat_relay=0; } else { heat_relay=1; } if(S>10&&HR==0) { cool_relay=0; } else { cool_relay=1; } if(water<10) { BEEP=!BEEP; } else BEEP=1; if(set==0) display(); ????}?? } }??
-
繼電器
+關注
關注
132文章
5349瀏覽量
148905 -
單片機
+關注
關注
6037文章
44558瀏覽量
635297 -
STM32
+關注
關注
2270文章
10900瀏覽量
356005
原文標題:基于stm32單片機的多功能水杯設計
文章出處:【微信號:單片機Protues仿真,微信公眾號:單片機Protues仿真】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論