270【畢設課設】基於51微控制器的人體熱釋感測器自動門控制系統設計
阿新 • • 發佈:2020-12-17
【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
本設計由STC89C52微控制器電路+熱釋紅外模組電路+LED指示燈電路+到位開關檢測電路+紅外避障感測器電路+蜂鳴器報警電路+ULN2003步進電機驅動電路+電源電路組成。
1、通過熱釋紅外感測器檢測是否有人,步進電機預設停止(即預設門是關的)。如果有人,則步進電機一直正轉(模擬開門),直到1號到位開關檢測到訊號(開門到了最大),則步進電機停轉。如果再次檢測到沒人,則,步進電機反轉(模擬關門),知道2哈到位開關檢測到訊號(門已關死),則步進電機停轉。依次迴圈……
2、熱釋紅外檢測到有人時,黃色LED燈亮,否則黃燈不亮。
3、如果紅外避障感測器檢測到障礙物,蜂鳴器報警,否則蜂鳴器不報警。
4、如果在關門過程中,檢測到有人,此時,步進電機正轉開門。
#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通電,其他相斷電 #define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通電,其他相斷電 #define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通電,其他相斷電 #define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部斷電 unsigned char zfFlag = 0 ; //正反轉標誌 unsigned char guanIng = 1;//關閉過程中 unsigned long time_20ms=0; //定時器計數 unsigned char daoweiFlag = 2;//記錄當前狀態 void Init_Timer0(void); void main (void) { Init_Timer0(); //定時器0初始化 DelayMs(200); //延時有助於穩定 while (1) //主迴圈 { if(tanTou == 0) buzzer =0 ;//探頭檢測到報警