版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章緒論1.1課題研究的背景及意義我國風能資源豐富,在過去十年里我國的風機產業(yè)得到了迅猛發(fā)展,但與此同時,風機安全事故也在逐年增加。另外,由于風機大多安裝在野外或海上,一旦著火將造成嚴重的損失,因此急需裝備自動消防控制系統(tǒng)。1.2課題研究的現(xiàn)狀及發(fā)展趨勢我國10m高度層的風能資源總儲量為32.26億kW,其中實際可開發(fā)利用的風能資源儲量為2.53億kW。東南沿海及其附近島嶼是風能資源豐富地區(qū),有效風能密度大于或等于200W/m2的等值線平行于海岸線;沿海島嶼有效風能密度在300W/m2以上,全年中風速大于或等于3m/s的時數(shù)約為7000~8000h,大于或等于6m/s的時數(shù)為4000h。新疆北部、內蒙古、甘肅北部也是中國風能資源豐富地區(qū),有效風能密度為200~300W/m2,全年中風速大于或等于3m/s的時數(shù)為5000h以上,全年中風速大于或等于6m/s的時數(shù)為3000h以上。我國的風力發(fā)電已成為大勢所趨,但由于風機大多安裝在野外或海上,一旦著火將造成嚴重的損失,這也導致了風電機組火災事件猛增。2014年國能局印發(fā)《國家能源局關于印發(fā)〈防止電力生產事故的二十五項重點要求〉的通知》(國能安全〔2014〕161號)和《國家能源局綜合司關于加強風電場安全管理防范風機火災事故的通知》,《人民日報》曾經(jīng)說到:“自2012年開始,我國的風電組火災事故已讓人大為吃驚?!鄙鲜鰯?shù)據(jù)表明:高效智能的消防系統(tǒng)的需求正以迅猛的速度上漲,這將使得風力發(fā)電在新能源行業(yè)中脫穎而出,同時也面臨著嚴峻的挑戰(zhàn)。為了解決火災預防和高效滅火的問題,風電機組自動消防控制系統(tǒng)的設計顯得尤為重要。由于新能源和風電的發(fā)展,我國風力發(fā)電機數(shù)量持續(xù)上漲,因此風電機組自動消防控制系統(tǒng)的設計刻不容緩。本文所設計的自動消防控制系統(tǒng)不僅能夠預防火災的,還可以在已經(jīng)發(fā)生火災的同時實現(xiàn)高效滅火。該系統(tǒng)所采用的ATmega128單片機,價格便宜性價比超高,同時本程序裝有煙霧傳感器,溫濕度傳感器,液晶顯示器和無線通信系統(tǒng),能將現(xiàn)場的數(shù)據(jù)傳輸?shù)绞謾C上,并通過紅外遙控器控制滅火。1.3本設計主要內容本次設計是為了減輕野外風電機組消防滅火的壓力,設計一種可以檢測風電機組內部狀態(tài),并實現(xiàn)自動滅火的智能消防控制系統(tǒng)。該系統(tǒng)采用了ATmega128芯片作為控制單元,內部裝有無線收發(fā)模塊,利用NRF24L01實現(xiàn)內部信息傳遞,其次通過溫濕度,煙霧傳感器對機組內部進行檢測,再由A/D轉換器將得到的數(shù)據(jù)傳輸給ATmega128處理,所有傳感器信息、火災信息、消防裝置運行情況等數(shù)據(jù),在本地液晶上顯示,通過NRF24L01實現(xiàn)傳感器和監(jiān)控中心的雙向通信。1.4論文結構論文第1部分是說明本次課題的來源和近幾年國內風電機組消防系統(tǒng)發(fā)展的趨勢,最后對本次設計的系統(tǒng)進行一次簡單概括。論文第2部分是系統(tǒng)設計方案選擇,先說明每個模塊的儲備設計方案和任務,并對所選硬件的特點和優(yōu)勢進行說明。論文第3部分是硬件設計部分,近一步對論文第二部分的硬件做詳細解釋,包括無線通信、OV2640攝像頭、溫濕度傳感器DHT11、煙霧傳感器和2.8寸彩屏模塊,并解釋了各模塊引腳如何與主芯片ATmega128連接。論文第4部分是軟件設計部分,先對主程序流程進行了說明,接著對各個模塊的主要程序進行了詳細說明。論文第5部分是系統(tǒng)調試部分,一開始說明了我的準備工作,接著是對軟件進行的仿真調試。最后,軟件調試結束后,對各個模塊的功能進行了調試。論文第6部分是結束語,主要再對風電機組自動消防控制系統(tǒng)進行一次說明,在這個部分講述了工作過程中遇到的困難以及克服的辦法。最后是致謝和參考文獻。
第2章系統(tǒng)設計方案2.1系統(tǒng)設計任務本設計是風電機組自動消防系統(tǒng)進行一次研究,并且以ATmega128作為控制單元,并通過該芯片讀取數(shù)據(jù)顯示在TFTLCD屏上。該系統(tǒng)采用了ATmega128芯片作為控制單元,內部裝有無線收發(fā)模塊,利用NRF24L01實現(xiàn)內部信息傳遞,其次通過溫濕度,煙霧傳感器對機組內部進行檢測,再由A/D轉換器將得到的數(shù)據(jù)傳輸給ATmega-128處理,所有傳感器信息、火災信息、消防裝置運行情況等數(shù)據(jù),在本地液晶上顯示,通過NRF24L01實現(xiàn)傳感器和監(jiān)控中心的雙向通信。下面將會對系統(tǒng)功能及各模塊設計的方案選擇進行描述。2.2系統(tǒng)設計方案選擇2.2.1單片機芯片的選擇本次設計選擇ATmega128作為核心芯片,內部含有128K的FLASH空間、4KB的RAM空間以及4KB的EEPROM空間,共有6.5組雙向I/O口共計53個,分別為PA,PB,PC,PD,PE,PF,PG,多個接口[3]。同時內部程序存儲器價格低廉、可擦寫1萬次以上、指令長度單元為16位的FlashROM,數(shù)據(jù)存儲器為8位。2.2.2電源選擇方案系統(tǒng)電源模塊提供整個開發(fā)板的電源,支持USB接口和外接電源供電,使用USB供電顯得尤其方便,一條USB線即可供電。開發(fā)板支持3.3V系統(tǒng)和5V系統(tǒng),板上集成5V到3.3V的電壓穩(wěn)壓芯片ASM1117-3,可以通過跳線自由選擇。2.2.3無線通信模塊選擇方案對于信號的傳輸,本系統(tǒng)是采用NRF24L01芯片實現(xiàn)該功能的。該芯片適用于單片收發(fā),一般可在2.4GHz~2.5GHz頻段進行工作。該芯片擁有126個通信通道和六個數(shù)據(jù)通道。本次設計就是利用該芯片將機組內信息發(fā)給監(jiān)控室。同時,NRF24L01芯片有很多優(yōu)點,它的功能消耗較低。盡管使用高頻率進行發(fā)射與接收。工作的輸出電流很低,對于電能的節(jié)約有一定的幫助,而且該芯片對于信號傳輸?shù)木嚯x較遠,設計時更加方便。2.2.4開發(fā)軟件選擇方案本系統(tǒng)采用的編譯軟件是Atmelstudio, 燒錄的軟件選擇AVRstudio。ATMEL公司提供的AVRStudio開發(fā)平臺是免費的匯編開發(fā)平臺。該平臺支持AVR匯編語言程序的編輯、編譯、連接以及生成目標代碼。同時,該軟件平臺還內嵌AVRGCC高級語言接口(C/C++語言開發(fā),內含AVR軟件模擬器,其仿真調試平臺還可配合各種類型的AVR仿真器,如實時在板仿真器ICE40、ICE50,實時在線仿真器JTAGICE、JTAGICEmkⅡ可實現(xiàn)系統(tǒng)的在線的硬件仿真和代碼的下載。2.2.5攝像頭選擇方案本部分采用的攝像頭模塊型號是OV2640,它是由OV公司產出的比較新型的攝像頭傳感器,該類型的攝像頭模塊具有很多優(yōu)點:它的體積較小、工作電壓低、清晰度高。OV2640是由SCCB總線進行控制,我們可以對SCCB接口進行編程,從而對圖像的平衡度、色彩進行調整,除此以外。OV2640還可以改善圖像缺陷,使得圖像更加清晰。2.2.6傳感器選擇方案本系統(tǒng)用到的傳感器有溫濕度傳感器和煙霧傳感器,溫濕度傳感器型號選擇的是DHT11溫濕度傳感器,這種傳感器對溫濕度的變化更加敏銳,數(shù)據(jù)更加準確。煙霧傳感器型號選擇的是AT89S52煙霧傳感器,該煙霧傳感器使用的氣敏材料是在清潔空氣中電導率較低的二氧化鋁,與其它煙霧傳感器相比優(yōu)勢在于可以檢測多種可燃性氣體,是一種適合多種場合的低成本傳感器。2.2.7顯示屏模塊選擇方案本系統(tǒng)采用的顯示屏模塊型號是DMTFT-28,是一種2.8寸TFTLCD,有著240×320的分辨率。其顯示屏大小一般是OLED的三到四倍,該顯示屏內部采用ST7789芯片實現(xiàn)對TFTLCD的驅動,同時芯片內部設有GRAM裝置。通過該裝置,主控制芯片實現(xiàn)驅動功能將會變得很方便。2.3系統(tǒng)整體設計框圖本系統(tǒng)以ATmega-128為主控制器,接下來使用溫濕度傳感器、煙霧傳感器、攝像頭模塊對數(shù)據(jù)進行采集,所有傳感器信息、火災信息、消防裝置運行情況等數(shù)據(jù),在本地液晶上顯示,最后實現(xiàn)火災現(xiàn)場和監(jiān)控中心的雙向通信。下圖2-1為整個系統(tǒng)設計的框圖。圖2-1系統(tǒng)設計框圖
硬件電路設計本系統(tǒng)是傳感技術、通信技術和嵌入式技術的結合。具體實現(xiàn)方案如下:用AVR單片機作為控制核心,風電機組現(xiàn)場溫度和濕度通過溫度傳感器來檢測;通過紅外傳感器、煙霧傳感器和攝像頭模塊顯示機組內是否出現(xiàn)火災,有則控制消防裝置滅火;且將所有傳感器信息、火災信息、消防裝置運行情況等數(shù)據(jù),在本地液晶上顯示;同時通過通信模塊,實現(xiàn)現(xiàn)場傳感器和監(jiān)控中心的雙向通信。本次風電機組自動消防控制系統(tǒng)的設計是利用ATmega128芯片作為控制中心,利用其它各個模塊對數(shù)據(jù)的采集,最后通過無線通信進行傳輸從而得以實現(xiàn)。如果將其運用到實際中,能夠有效地提高了風電機組發(fā)現(xiàn)火災實施滅火的效率,風力發(fā)電行業(yè)將會得到很大的改善,也方便了我們的生活3.1主控制器ATmega128本次設計選用ATmega128芯片作為主控制器,該CPU功能消耗低并且價格便宜,功能齊全,資源豐富的ATmega128是ATMEL公司atmegaAVR系列單片機中的一款。此單片機支持多種方式的程序下載與燒寫,包括高壓并口方式、ISP方式和JTAG下載方式。ATmeaga128單片機作為主控單片機,該型單片機具有豐富的資源和接口,內部ROM和RAM完全能滿足AVR單片機高級開發(fā)要求,內置大容量程序Flash空間和SRAM數(shù)據(jù)空間,還包含非易失性存儲器EEPROM,對于那些實際項目中的數(shù)據(jù)存儲也不需要擴展外部存儲空間。單片機外部工作晶振默認為7.3728MHz,選擇此晶振的目的是考慮到單片機的速度與單片機串行通信波特率所需時鐘而選擇的,可以自行更換使用其他頻率晶振,最大支持16M。在該芯片中有SD卡讀寫模塊,輕松實現(xiàn)對SD卡內部數(shù)據(jù)進行讀寫,SD卡可以作為外掛超大容量存儲器,存儲超大容量數(shù)據(jù)。支持計算機PS2鍵盤接口功能,使用普通的6針PS2計算機鍵盤可以實現(xiàn)與單片機的通信,方便靈活的采集各種輸入信號。支持8位數(shù)碼管顯示,可選擇使用其中任意的數(shù)碼管使用,動態(tài)顯示。支持1602字符型液晶顯示器、128X64點陣圖形液晶接口,可以適用于不同要求。支持TFT彩屏液晶驅動,板載TFT彩屏液晶接口,在TFT液晶上顯示任意字符、漢字和彩色圖片,可以方便實現(xiàn)人機界面。配合SD卡模塊和TFT模塊,可以實現(xiàn)類似數(shù)碼相框功能,顯示SD卡中的BMP圖片文件,讓你輕松學習FAT文件系統(tǒng)的應用。雙串口DB9接口,方便多級控制,與電腦通信也易如反掌。小功率步進電機控制模塊,方便進行控制級開發(fā)。所有AVR單片機I/O接口全部引出,如果需要自行配置使用單片機的I/O口,可以通過導線簡單的實現(xiàn)連接,因此具有良好的擴展應用功能。支持紅外一體化接收功能,通過板載的紅外接收器可以接收38KHz紅外遙控器信號,通過軟件可解碼,實現(xiàn)無線控制;在該芯片中,每個定時器的功能不同:其中有四個定時器可以對輸入輸出進行捕捉比較,還可以用作編碼器輸入和脈沖計數(shù);兩個十六位的定時器用來對PWN進行控制管理;一個獨立型和一個窗口型的看門狗計時器;一個遞減型的系統(tǒng)時間定時器和兩個十六位的可對DAC進行驅動的基本定時器。圖3-1為ATmege128芯片的硬件原理圖:圖3-1(a)ATmega128芯片引腳圖圖3-1(b)ATmega128芯片引腳圖在圖3-1(a)中,引腳PA0是按鍵引腳,可以在當MCU低功耗狀態(tài)或者休眠狀態(tài)下起喚醒作用。PA1是ADC輸入引腳,PA2是RS485的RX腳,PF3是TX引腳,PF4是DAC-OUT輸出腳,PF5可以連NRF24L01芯片的SCK口。圖3-1(c)ATmega128芯片PB端口引腳圖在圖3-1(b)中,引腳PB0可用來接TFTLCD顯示屏的控制背光腳LCD_BL,PB1可接TFTLCD的SCK信號,PB2可接TFTLCD的MISO信號,PB3可接OV2640 的FIFO_WEN接口,PB4可接OV2640的PCLK接口,PB5可接NRF24L01接口的SCK信號。圖3-1(d)ATmega128芯片PC端口引腳圖在圖3-1(c)中,引腳PC0可用來接煙霧傳感器的D0小板開關數(shù)字量輸出接口,PC1可接DMT11的SCK信號,PC2可接DMT11的MISO信號,PC3可接OV2640的FIFO_WEN接口,PC4可接OV2640的SCCB接口,PC5可接LM393接口的SCK信號。圖3-1(e)ATmega128芯片PD端口引腳圖在圖3-1(d)中,PD0-AD4為8位并行數(shù)據(jù)接口,作為數(shù)碼管、液晶的數(shù)據(jù)口,D5-D7作為8位LED發(fā)光二極管的控制口,其他IO口為相關模塊的控制口。3.2電源模塊圖3-2電源模塊原理圖系統(tǒng)電源模塊提供整個系統(tǒng)的電源,本系統(tǒng)支持USB接口和外接電源供電,使用USB供電顯得尤其方便,一條USB線即可供電。集成5V到3.3V的電壓穩(wěn)壓芯片ASM1117-3,可以通過跳線自由選擇,確定使用何種電壓,對于低功耗場所使用提供了方便,有助于項目開發(fā)的使用。3.3無線通信模塊本部分的無線通信模塊主要采用了NRF24L01芯片,該種類的無線通信模塊體積較小,方便安裝并且2.4G工作頻率傳輸距離大約是空曠距離的40到50米,同時該芯片內部還裝有片內穩(wěn)壓器oltageregulators,該穩(wěn)壓器可以讓無線通信模塊在1.9到3.6v低電壓工作,并可以通過軟件設置芯片為發(fā)送或者接收模式,更有特點的是該模塊在掉電模式下的功耗400nA,待機模式下的功耗32uA,非常的節(jié)能。該無線通信模塊可支持3V~5V范圍的電壓,可不通過外部設備便可以主控制芯片相連。該種類型的無線通信模塊可通過PPS指示燈的變化判斷是否成功連接,當該指示燈不亮時,表明芯片內部已被損壞或者電路連接錯誤;當指示燈亮但并不閃爍時,表明芯片運作正常,但接收不到信號,可對接收端芯片進行設置;當指示燈跳閃,即實現(xiàn)了接收端和發(fā)送端的互聯(lián)。這樣一來,當無線通信模塊不能實現(xiàn)雙向通信時,便可以很快知道其中原因,方便解決。NRF24L01芯片原理圖如下圖3-3所示:圖3-3無線通信模塊NRF24L01芯片模塊原理圖在圖3-3中,引腳CE可用來外接RX或TX模式選擇,引腳CSN可接SPI片選信號,引腳SCK可用來接SPI時鐘,引腳MOSI是從SPI輸入腳,引腳MISO是SPI輸出腳,引腳IRQ是可屏蔽中斷腳,引腳VDD可用來外接3.3V-5V電源,引腳VSS接地,引腳XC2是晶體振蕩器2腳,引腳XC1可接外部時鐘,引腳VDD-PA是電源輸出腳,給RF的功率放大器提供+1.8V電源,引腳ANT1/2是天線1/2接口,引腳DVDD是去耦電路電源正極端接口。 3.4攝像頭模塊本部分采用的攝像頭模塊選用了OV2640型號的攝像頭,該種類的攝像頭模塊體積較小,工作電壓低,清晰度高。同時OV2640型號的攝像頭內部是由SCCB接口進行控制,我們可以對SCCB接口進行編程,從而通過軟件設置圖像的平衡度。OmmiVision圖像傳感器應用獨特的傳感器技術,通過減少或消除光學或電子缺陷如固定圖案噪聲、拖尾、浮散等,提高圖像質量,能得到清晰的穩(wěn)定圖像。該攝像頭模塊可支持3V~5V范圍的電壓,支持自動曝光控制、自動增益控制、自動白平衡、自動消除燈光條紋、自動黑電平校準等自動控制功能。同時支持色飽和度、色相、伽馬、銳度等設置。支持圖像縮放、平移和窗口設置。支持圖像壓縮,即可輸出JPEG圖像數(shù)據(jù)。自帶嵌入式微處理器、集成有源晶振,無需外部提供時鐘。集成LDO,僅需提供3.3V電源即可正常工作。OV2640芯片原理圖如下圖3-4所示:圖3-4攝像頭模塊OV2640芯片原理圖從圖3-4可以看出,模塊自帶了1.3V和2.8V的穩(wěn)壓芯片,給OV2640供電,因此外部僅需提供3.3V電壓即可;同時自帶了一個12M的有源晶振,所以模塊不需要外部提供時鐘。OV2640攝像頭模塊通過一個2*9的排針同外部電路連接,GND是接地線,VCC3.3是3.3V電源輸入腳,OV_SCL為SCCB時鐘線(IN1)接口,OV_VSYNC是幀同步信號(OUT2)接口,OV_SDA為SCCB數(shù)據(jù)線(IN/OUT)接口,OV_HREF為行參考信號(OUT)接口,OV_D0~D7為數(shù)據(jù)線(OUT)接口,OV_RESET為復位信號(低電平有效)(IN)接口,OV_PCLK為像素時鐘(OUT)接口,OV_PWDN為掉電模式使能(高電平有效)(IN)接口,NC未用到。3.5傳感器模塊3.5.1溫濕度傳感器模塊本部分采用的溫濕度模塊選用了DHT11作為核心芯片的數(shù)字溫濕度傳感器,DHT11數(shù)字溫濕度傳感器是已校準數(shù)字信號輸出的溫濕度復合傳感器。它有專用的數(shù)字模塊采集技術和溫濕度傳感技術,確保產品具有可靠性與卓越的長期穩(wěn)定性,成本低、相對濕度和溫度測量、快響應、抗干擾能力強、信號傳輸距離長、數(shù)字信號輸出、精確校準。傳感器包括一個電容式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。該溫濕度傳感器模塊可支持3.3V~5V范圍的電壓,支持相對濕度和溫度一體測量,全量程標定,且響應時間很短。DHT11芯片原理圖如下圖3-5(a)所示:圖3-5(a)溫濕度模塊DHT11芯片原理圖在圖3-5(a)中,引腳VCC可用來外接3.3V-5V,GND可外接GND接口,D0小板開關數(shù)字量輸出接口接單片機IO口。3.5.1煙霧傳感器模塊本部分采用的煙霧傳感器模塊選用了LM393、MQ135氣體感應探頭作為核心芯片,DHT11數(shù)字煙霧傳感器是可調節(jié)靈敏度的復合傳感器,內置具有信號輸出指示燈指示,雙路信號輸出(模擬量輸出及TTL電平輸出),TTL輸出有效信號為低電平,(輸出低電平時信號燈亮,可接單片機IO口),氣感探頭的模擬量輸出隨濃度增加而增加,濃度越高電壓越高,對煙霧氣體具有很高的靈敏度,使用壽命長且穩(wěn)定,能夠快速的響應和恢復。煙霧傳感器芯片原理圖如下圖3-5(b)所示:圖3-5(b)煙霧傳感器模塊芯片原理圖在圖3-5(b)中,引腳VCC可用來外接電源正輸入,DOUT為TTL電平信號輸出接口,GND為電源負輸入接口,Aout為模擬信號輸出接口。3.6顯示屏模塊本部分的顯示屏模塊選用了DMTFT-28模組,一種2.8寸TFT彩屏,主要用液晶面板,觸摸屏和轉接板組成,轉接板與液晶面板通過排線連接。轉接板電路共分為FPC接口電路、觸摸屏控制電路、IO擴展電路、TFT控制接口電路、背光電路及SD卡接口電路等。屏幕顯示分辨率為240X320,可自由顯示字符、漢字、圖片,支持3.3V或5V,可由模組的液晶轉接板進行設置。顯示屏模塊原理圖如下圖3-7所示:圖3-6(a)液晶顯示屏模塊FPC接口電路原理圖FPC接口電路是用于將液晶面板與轉接板連接起來,連接方式采用焊接,該種方式可以得到最穩(wěn)定的工作狀態(tài),如果需要卸載面板,則需要使用專業(yè)的拆除工具。圖3-6(b)液晶顯示屏模塊觸摸屏控制電路原理圖在圖3-6(b)中,引腳BUSY是轉換狀態(tài)信號接口,DOUT為串行數(shù)據(jù)輸出接口,DIN為串行數(shù)據(jù)輸入接口,DLCK為外部串行時鐘輸入接口,引腳CS是片選信號接口,VCC為電源輸入接口,VBAT為電池監(jiān)視輸入接口,AUX為ADC輔助輸入通道接口,引腳VREF是參考電壓輸入/出接口,PRNIRQ為筆接觸中斷引腳,IOVDD為數(shù)字電源輸入接口。圖3-6(c)液晶顯示屏模塊觸摸屏IO擴展電路原理圖在圖3-6(c)中控制器的8位IO口與鎖存器的D0~D7連接,鎖存器的輸出與TFT的高8位數(shù)據(jù)口連接,當寫16位數(shù)據(jù)時,現(xiàn)將16位數(shù)據(jù)的高8位送到D10~D17,此時通過LE控制管腳將數(shù)據(jù)鎖存到TFT的高8位數(shù)據(jù)口,然后16位數(shù)據(jù)的低8位送到D10~D17即完成數(shù)據(jù)送至TFT數(shù)據(jù)口工作。圖3-6(c)液晶顯示屏模塊電源電路原理圖液晶屏支持外接3.3V或者5V電源,板上集成AMS1117芯片,在圖3-6(c)中,引腳VIN為輸入電壓腳,TFT面板本身只能在3.3V下工作,所以當輸入電壓VIN腳為5V時,必須讓AMS1117-3.3這個IC工作,當輸入VIN腳為3.3V時,則需要使用0歐姆電阻將J2短接,相當于不通過穩(wěn)壓芯片直接給模塊供電,引腳VOUT為輸出電壓腳。第4章系統(tǒng)軟件設計本章詳細介紹了各個模塊的軟件設計流程以及部分源代碼,包括溫濕度傳感器模塊、攝像頭模塊與ATmega128芯片之間的軟件程序,顯示屏模塊的程序,最終得以在顯示屏上顯示出溫濕度,煙霧濃度以及我的班級,姓名和課題。4.1自動消防控制系統(tǒng)主程序流程在該系統(tǒng)中,首先對變量進行定義,其次利用調用函數(shù)對液晶、攝像頭、接下來對這些模塊的參數(shù)進行設置,利用While語句進行循環(huán),將讀取的溫濕度,煙霧濃度以及我個人的信息在液晶屏上顯示出來。主程序流程圖如圖4-1圖4-1主程序流程圖4.2溫濕度傳感器模塊程序溫濕度傳感器模塊是利用溫濕度傳感器檢測風電機組內部從而判斷機組內是否要發(fā)生火災,該部分程序L4.1如下:L4.1.1程序清單:#include<string.h>…#defineuintunsignedint#defineData_IO PORTA#defineData_DDRDDRA(1)#defineD_LE0 PORTD&=~(1<<PD4)(2)#defineD_LE1PORTD|=(1<<PD4)(3)#defineW_LE0 PORTD&=~(1<<PD5)#defineW_LE1PORTD|=(1<<PD5)#defineDQ_IN DDRE&=~(1<<PE4) (4)#defineDQ_OUT DDRE|=(1<<PE4) #defineDQ_CLR PORTE&=~(1<<PE4) #defineDQ_SET PORTE|=(1<<PE4) #defineDQ_R PINE&(1<<PE4) (5)程序L4.1.1說明:L4.1.1(1):設置數(shù)碼管寄存器L4.1.1(2):設置數(shù)碼管段控制位為0,鎖存端口數(shù)據(jù)L4.1.1(3):數(shù)碼管段控制位為1,鎖存器輸出與端口一致L4.1.1(4):設置輸入,DHT11接單片機PE4口L4.1.1(5):讀電平L4.1.2程序清單:ucharkey;uinttemp_value;uinttemp,A1,A2,A3; (1)ucharflag1;uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};(2) voidsystem_init(){Data_IO=0xFF;Data_DDR=0xFF;PORTD=0xFF;(3)DDRD=0xFF;}(4)L4.1.2程序說明:L4.1.2(1):定義的變量,顯示數(shù)據(jù)處理L4.1.2(2):IO端口初始化L4.1.2(3):定義DHT11的控制口,設置為輸出L4.1.2(4):DHT11控制數(shù)碼管動態(tài)掃描顯示函數(shù),顯示采集到的溫度L4.1.3程序清單:unsignedcharDS18B20_Reset(void){unsignedchari;DQ_OUT; DQ_CLR; ... delay_us(500); (1) if(i) … return(value);}Void_wriu8_byte(unsignedcharvalue) ...} delay_us(80); (2) value>>=1; } }(3)voidDHT11_start(void){ dht11_Reset(); dht11_write_byte(0xCC); dht11_write_byte(0x44); } DHT11_Reset(); dht11_write_byte(0xCC); dht11_write_byte(0xBE); (4) for(i=0;i<9;i++){... data_do(temp_value);(5)for(j=0;j<200;j++){ Display_DHT11(A1,A2,A3);}}L4.1.3程序說明:L4.1.3(1):延時500usL4.1.3(2):延時80msL4.1.3(3):啟動dht111轉換L4.1.3(4):得到溫度L4.1.3(5):處理數(shù)據(jù),得到要顯示的值4.3攝像頭模塊程序攝像頭模塊是利用攝像頭檢測風電機組內部從而判斷機組內是否發(fā)生火災,該部分程序L4.2如下:L4.2.1程序說明:#include"sys.h"#include"delay.h"…#include"dma.h"(1)#defineOV2640_JPEG_WIDTH 1024 (2) #defineOV2640_JPEG_HEIGHT 768 (3)u8*ov2640_framebuf; externu8ov_frame; (4)L4.2.1程序說明:L4.2.1(1):設置頭文件L4.2.1(2):設置拍照的寬度L4.2.1(3):設置拍照的高度L4.2.1(4):幀緩存L4.2.1程序說明:voidcamera_new_pathname(u8*pname,u8mode){ u8res; u16index=0; … if(res==FR_NO_FILE)break; (1) index++; }}voidov2640_speed_ctrl(void){ u8clkdiv,pclkdiv; (2) if(lcddev.width==240) { clkdiv=1; pclkdiv=28; … }(3) SCCB_WR_Reg(0XFF,0X00); SCCB_WR_Reg(0XD3,pclkdiv); (4) SCCB_WR_Reg(0XFF,0X01); SCCB_WR_Reg(0X11,clkdiv); (5)}L4.2.1程序說明:L4.2.2(1):OV2640速度控制L4.2.2(2):設置時鐘分頻系數(shù)和PCLK分頻系數(shù)L4.2.2(3):2.8寸LEDL4.2.2(4):設置PCLK分頻L4.2.2(5):設置CLK分頻L4.2.3程序說明:u8ov2640_jpg_photo(u8*pname){ … u8*pbuf;(1) f_jpg=(FIL*)mymalloc(SRAMIN,sizeof(FIL)); (2) if(f_jpg==NULL)return0XFF; OV2640_JPEG_Mode(); (3) OV2640_OutSize_Set(OV2640_JPEG_WIDTH,OV2640_JPEG_HEIGHT); SCCB_WR_Reg(0XFF,0X00); SCCB_WR_Reg(0XD3,30); SCCB_WR_Reg(0XFF,0X01); SCCB_WR_Reg(0X11,0X1); for(i=0;i<10;i++) (4) { while(OV2640_VSYNC==1); while(OV2640_VSYNC==0); } while(OV2640_VSYNC==1) (5) { … { printf("jpegdatasize:%d\r\n",jpeglen);(6) pbuf=(u8*)ov2640_framebuf; for(i=0;i<jpeglen;i++)(7) { if((pbuf[i]==0XFF)&&(pbuf[i+1]==0XD8))break; } if(i==jpeglen)res=0XFD;(8) else (9) { pbuf+=i;(10) res=f_write(f_jpg,pbuf,jpeglen-i,&bwr); if(bwr!=(jpeglen-i))res=0XFE; } }L4.2.3程序說明:L4.2.3(1):設置要保存的jpg照片路徑+名字L4.2.3(2):開辟FIL字節(jié)的內存區(qū)域L4.2.3(3):內存申請失敗后切換為JPEG模式L4.2.3(4):丟棄10幀,等待OV2640自動調節(jié)L4.2.3(5):開始采集jpeg數(shù)據(jù)L4.2.3(6):串口打印JPEG文件大小L4.2.3(7):查找0XFF,0XD8L4.2.3(8):找到了0XFF,0XD8L4.2.3(9):沒找到0XFF,0XD8L4.2.3(10):偏移到0XFF,0XD8處L4.2.3程序說明:intmain(void){ … delay_init(); (1)NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);(2) uart_init(115200); (3) usmart_dev.init(72); (4) LED_Init(); (5) KEY_Init(); (6) LCD_Init(); (7) BEEP_Init(); (8) W25QXX_Init(); (9) my_mem_init(SRAMIN); (10) exfuns_init(); (11) f_mount(fs[0],"0:",1); (12) f_mount(fs[1],"1:",1); (13) POINT_COLOR=RED; while(font_init()) { … LCD_Fill(30,150,240,146,WHITE);(14) delay_ms(200); } L4.2.3程序說明:L4.2.3(1):延時函數(shù)初始化L4.2.3(2):設置中斷優(yōu)先級分組L4.2.3(3):串口初始化為115200L4.2.3(4):初始化USMART L4.2.3(5):初始化與LED連接的硬件接口L4.2.3(6):初始化按鍵L4.2.3(7):初始化LCDL4.2.3(8):蜂鳴器初始化L4.2.3(9):初始化W25Q128L4.2.3(10):初始化內部內存池L4.2.3(11):為fatfs相關變量申請內存L4.2.3(12):掛載SD卡L4.2.3(13):掛載FLASHL4.2.3(14):清除顯示 4.4煙霧傳感器模塊程序煙霧傳感器模塊是利用煙霧傳感器檢測風電機組內部煙霧濃度從而判斷機組內部是否發(fā)生火災,該部分程序L4.3如下:#include<reg52.h> (1)#defineucharunsignedchar#defineuintunsignedintsbitLED=P1^0; (2)sbitDOUT=P2^0; (3)voiddelay(){ucharm,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);(4)}voidmain(){ while(1) { delay(); if(DOUT==0) { LED=0; (5) } } }} L4.3程序說明:L4.3(1):定義庫文件L4.3(2):定義單片機P1口的第1位(即P1.0)為指示端L4.3(3):定義單片機P2口的第1位(即P2.0)為傳感器的輸入端L4.3(3):延時程序L4.3(5):當濃度高于設定值時,執(zhí)行條件函數(shù),點亮p1.0口4.5顯示屏模塊程序對于主程序的顯示屏模塊,在其中調用了顯示字符串函數(shù),接下來對該程序進行描述,程序如L4.5L4.5.1程序清單:#include<stdio.h>#include<math.h>#include<avr/io.h>#include<avr/iom128.h>#define F_CPU 7372800 (1)#include<util/delay.h>#include<avr/pgmspace.h> (2)程序L4.5.1說明:L4.5.1(1):單片機主頻為7.3728MHz,用于延時子程序L4.5.1(2):須增加的頭文件,用來將數(shù)據(jù)存放在flashL4.5.2程序清單:#include"Config.h"#include"Ascii_8x16.h"(1)#include"Chinese.h"(2)#include"GB2424.h"(3)#include"TFT28.h"(4)#include"TFT28.c"(5)程序L4.5.2說明:L4.5.2(1):設置字符大小為8x16L4.5.2(2):16x16像素大小的漢字,這是提取到的點陣L4.5.2(3):24x24像素大小的漢字,這是提取到的點陣L4.5.2(4):設置TFT頭文件L4.5.2(5):TFT操作初始化及函數(shù)L4.5.3程序清單:unsignedintDevice_code;externvoiddelayms(unsignedintcount); (1)voidGPIO_Init(){ TFT28_PORT=0xFF; (2) TFT28_DDR=0xFF; (3) … TFT28_RST_PORT|=(1<<TFT28_RST); (4) TFT28_RST_DDR|=(1<<TFT28_RST); (5)}程序L4.5.3說明:L4.5.3(1):初始化TFT觸摸屏IO口子程序L4.5.3(2):LCD口全部拉高L4.5.3(3):設置LCD數(shù)據(jù)口為輸出模式L4.5.3(4):LCD控制口初始化為高電平L4.5.3(5):LCD控制口初始化為輸出模式本段程序是使LED閃爍一次,類似斷點L4.5.4程序清單:voidLED_Light(){LED8=0x00; (1)delay_ms(500);LED8=0xFF; (2)delay_ms(500);}程序L4.5.4說明:L4.5.4(1):點亮LEDL4.5.4(2):熄滅LEDL4.5.5程序清單:intmain(void){uinti,y;Close_LED8(); (1)Close_iRed(); (2)Close_LED_Show(); GPIO_Init();(3)LED_Light();(4)Device_code=0x7789;TFT_Initial();(5)PORTD|=(1<<PD6);(6)程序L4.5.5說明:L4.5.5(1):關閉8個LED燈L4.5.5(2):關閉紅外接收端的LED燈L4.5.5(3):系統(tǒng)初始化,設置IO口屬性L4.5.5(4):LCD點亮一次,如有現(xiàn)象說明單片機初始化成功L4.5.5(5):初始化LCDL4.5.5(6):關閉蜂鳴器避免亂響L4.5.程序清單:while(1){CLR_Screen(Black);(1)LCD_PutString24(35,140,"基于AVR的風電機組自動消防系統(tǒng)的研究與設計",Yellow,Black);(2)delay_ms(200);LCD_PutString24(83,170,"基",Yellow,Black);delay_ms(100);…LCD_PutString24(131,170,"計",Yellow,Black);delay_ms(100);LCD_PutString(69,300,"2020.5.24",White,Black);(3)delay_ms(200);CLR_Screen(Black);for(y=0;y<10;y++){LCD_PutString(52,y*32,"17通信二龔平",White,Black);(4)delay_ms(20);}delay_ms(200);CLR_Screen(Black);for(y=0;y<10;y++){LCD_PutString(24,y*32,"指導老師:徐強",White,Black);(5)delay_ms(20);}delay_ms(200);(6)}程序L4.5.5說明:L4.5.5(1):背景色清屏L4.5.5(2):顯示課題名稱L4.5.5(3):字符顯示日期L4.5.5(4):漢字顯示班級姓名L4.5.5(5):漢字顯示指導老師L4.5.5(6):持續(xù)一會兒
第5章系統(tǒng)仿真與調試5.1設計前期工作在確定了這個基于AVR風電機組自動消防控制系統(tǒng)的研究與設計的課題后,我為整個方案搭建了一個基本的框架,隨后先了解了現(xiàn)在風電機組的消防標準,接著開始著手了解設計一個自動消防系統(tǒng)所需要的模塊。查閱資料后,我了解到一個自動消防系統(tǒng)一般有無線通信模塊,攝像頭模塊,溫濕度傳感器模塊,煙霧傳感器模塊,液晶顯示模塊模塊以及消防模塊模塊,于是我就去細致了解它們各自的運作原理,并學習如何讓它們互聯(lián)互通相互協(xié)作。當學到了一定的深度,我就對主芯片ATmega128以及需要的材料包括MQ135煙霧傳感器、TFT彩屏、OV2640攝像頭、NRF24L01無線通信芯片、DHT11溫濕度傳感器進行購買,隨后開始實操起來,然后通過ATmega128芯片讀取所需要的數(shù)據(jù),將我的數(shù)據(jù)與個人信息在顯示屏上顯示出來,接著就是將需要用到的ATmegaStudio和AVRstudio軟件進行安裝。硬件實物圖如圖5-1所示:圖5-1硬件實物圖5.2系統(tǒng)仿真本次開發(fā)基于AVR的風電機組自動消防系統(tǒng)的設計的軟件是ATmegaStudio和AVRstudio,對于該軟件的安裝,可在64位的WIN10系統(tǒng)電腦上安裝。利用ATmegaStudio軟件可以編寫我需要的軟件,然后通過AVRstudio將程序燒錄到ATmega128芯片中,最后實現(xiàn)自動消防系統(tǒng)的各個功能。下圖5-2為ATmegaStudio軟件的操作頁面:圖5-2ATmegaStudio軟件操作界面右鍵點擊屏幕右側的項目樹,選擇“properties”,選擇“Toolchain”,點擊“Directories”設置項目路徑,如圖5-3:圖5-3ATmegaStudio項目路徑設置界面在圖5-3中,我們可以設置一些選項,比如芯片類型,main程序類型以及Debug選項。設置成功后生成Hex文件,打開AVRstudio將生成的Hex文件燒錄到我們的ATmega128芯片當中,從而使ATmega128芯片能夠離開電腦也實現(xiàn)我們的所需要的功能。當液晶屏上出現(xiàn)我們需要的數(shù)據(jù)時,則該部分調試成功。在AVRstudio燒錄前,我們首先要設置燒錄接口。JTAGICE接口連接好之后,打開電腦的任務管理器,看到端口為COM4,如圖5-4:圖5-4電腦設備管理器界面接著設置AVRstudio中的JTAGICE接口,需要把接口設置與電腦設備管理器中的一樣。如圖5-5:圖5-5SelectAVRProgrammer界面將生成的Hex文件燒錄到的ATmega128芯片當中,從而使ATmega128芯片能夠離開電腦也實現(xiàn)我們的所需要的功能。當液晶屏上出現(xiàn)我們需要的數(shù)據(jù)時,則該部分調試成功。5.3硬件電路調試這一部分的調試主要是測試一下各個模塊的功能是否可以正常實現(xiàn)。在單片機中,電源、復位和晶振這三個部分是構成單片機系統(tǒng)中最為重要的三個部分。在對ATmega128單片機的硬件調試中,我們首先要確認GND管腳與電源管腳之間的電壓正常,接著我們要對晶振引腳和復位引腳進行測試,測試成功的話就沒有問題了。對于系統(tǒng)的攝像頭模塊,我可以通過它對同一場景的連續(xù)圖像采集,從而知道它是否能夠實時檢測風電機組內部的狀態(tài);其次對于溫濕度傳感器和煙霧傳感器,我們可以將其放在不同的環(huán)境下進行對比測試,進而判斷它的準確性;最后,倘若在2.8寸TFT彩屏上能夠顯示我們需要的數(shù)據(jù)以及我的個人信息,則調試成功。5.3.1溫濕度傳感器模塊調試溫濕度傳感器是用于采集風電機組內部環(huán)境中的實際溫度及濕度的實際數(shù)值,可以測量溫度、濕度信息。且在本風電機組自動消防控制系統(tǒng)中,在最后要將溫濕度在顯示屏上顯示出來。對于溫濕度傳感器的調試,第一步先打開電源,先用傳感器測量室內的溫度,接著在陽臺進行測量,將采集到的多組數(shù)據(jù)進行對比,從而判斷溫濕度傳感器模塊是否檢測成功,在不同場景采集到的數(shù)據(jù)如圖5-6(a)和5-6(b)所示:圖5-6(a)室內溫濕度檢測圖5-6(b)室外溫濕度檢測在圖5-6(a)和5-6(b)的圖中,記錄了溫濕度的變化。為了更加清晰的進行對比,我將數(shù)據(jù)轉換成了表格,如圖表一:表5-1室內外溫濕度值對比表溫度濕度室內2440室外3245在表5-1中,清晰的記錄了不同狀態(tài)下的溫濕度變化,由此可見,對于溫濕度傳感器模塊的功能測試是成功的。5.3.2攝像頭模塊調試本系統(tǒng)的攝像頭模塊主要是用于對風電機組內部進行圖像采集,而且能夠實時監(jiān)測風電機組內部的實時變化并通過圖像的模式記錄在SD卡中,最后通過ATmega128芯片處理圖像信息并在2.8寸彩屏顯示器上顯示出來。本次對攝像頭模塊的調試,主要是觀察該攝像頭模塊是否清晰,是否連續(xù)。對于本次測試,我選取的被測物體是一個水杯通過對水杯不斷加水,從而判斷攝像頭模塊的上述功能是否實現(xiàn)。實現(xiàn)結果如圖5-7(a)到5-7(c)所示:圖5-7(a)水瓶未注水圖5-7(b)水瓶第一次注水圖5-7(c)水瓶第二次注水5.3.3煙霧傳感器模塊調試溫濕度傳感器是用于采集風電機組內部環(huán)境中的實際煙霧濃度的實際數(shù)值,可以測量煙霧濃度信息。且在本風電機組自動消防控制系統(tǒng)中,在最后要將煙霧濃度在顯示屏上顯示出來。對于煙霧傳感器的調試,第一步先打開電源,先用傳感器測量室內的煙霧,接著在附近點上蚊香進行測量,當煙霧濃度高于設定值時,led燈閃爍。如圖5-8所示:圖5-8LED燈閃爍LED燈閃爍視為報警,煙霧濃度超出設定值可能風電機組內部已經(jīng)發(fā)生了火情,監(jiān)控室應當立即采取措施,該模塊調
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年四川甘孜事業(yè)單位考試及答案
- 2025年山東3月份事業(yè)編考試及答案
- 2025年港中深本科筆試面試及答案
- 2025年南充事業(yè)編考試題答案
- 2025年山東東營護理事業(yè)編考試及答案
- 2025年鋪警報名筆試及答案
- 落實工作責任,嚴格執(zhí)行值班制度
- 數(shù)學小知識視
- 羊交易市場進出貨查驗記錄制度
- 2026年機械設計與制造實戰(zhàn)題庫
- 2026年1月浙江省高考(首考)地理試題(含答案)
- 職高信息技術題目及答案
- 2026年各地高三語文1月聯(lián)考文言文匯編(文言詳解+挖空)
- 冰箱安裝施工方案
- 急性失代償性心力衰竭管理的研究進展2026
- 老年人摔傷后的長期護理計劃
- 2026年黑龍江民族職業(yè)學院單招職業(yè)傾向性考試題庫帶答案詳解
- 消防維保應急預案及措施
- 2026元旦主題班會:馬年猜猜樂猜成語 (共130題)【課件】
- 2026年盤錦職業(yè)技術學院單招職業(yè)技能測試題庫及參考答案詳解一套
- 創(chuàng)傷中心多發(fā)傷患者的分診時間管理策略
評論
0/150
提交評論