基于Arduino的糧倉環(huán)境監(jiān)測循跡車_第1頁
基于Arduino的糧倉環(huán)境監(jiān)測循跡車_第2頁
基于Arduino的糧倉環(huán)境監(jiān)測循跡車_第3頁
基于Arduino的糧倉環(huán)境監(jiān)測循跡車_第4頁
基于Arduino的糧倉環(huán)境監(jiān)測循跡車_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

-PAGEI-上海建橋?qū)W院本科畢業(yè)設(shè)計(論文)-PAGE1-基于Arduino的糧倉環(huán)境監(jiān)測循跡車摘要為了解決傳統(tǒng)檢測傳感器單一的糧倉環(huán)境監(jiān)測系統(tǒng),獲取的數(shù)據(jù)較為片面,易造成誤報警或漏報警的問題,本文設(shè)計了一款基于Arduino的集糧倉環(huán)境監(jiān)測裝置為一體的循跡小車,分別進(jìn)行了軟硬件的系統(tǒng)設(shè)計。以ArduinoUNO為核心控制器,利用紅外傳感器對糧倉進(jìn)行全方位的靜態(tài)軌跡監(jiān)測,DS1302時鐘芯片完成系統(tǒng)時間的設(shè)定,按鍵對系統(tǒng)參數(shù)進(jìn)行設(shè)置。主要處理DHT11溫濕度傳感器傳輸?shù)臄?shù)據(jù)并控制LCD1602液晶顯示器的實時顯示,對異常情況進(jìn)行現(xiàn)場聲光報警,并可根據(jù)需要通過藍(lán)牙無線傳輸模塊和手機(jī)端APP進(jìn)行數(shù)據(jù)共享,糧倉管理人員可以根據(jù)實時環(huán)境參數(shù)做出相應(yīng)的管控措施。通該系統(tǒng)整體結(jié)構(gòu)簡單明了,易于操作,檢測效率高,通過各模塊間的共同工作,從而實現(xiàn)環(huán)境的智能監(jiān)測。關(guān)鍵詞:Arduino,環(huán)境監(jiān)測系統(tǒng),循跡車,無線傳輸-PAGEIV-AGrainWarehouseEnvironmentalMonitoringTrackerBasedonArduinoAbstractInordertosolvetheproblemoftraditionalsinglesensorgrainstorageenvironmentmonitoringsystems,whichobtainone-sideddataandarepronetofalsealarmsormissedalarms,thispaperdesignsatrackingcarbasedonArduinothatintegratesgrainstorageenvironmentmonitoringdevices,anddesignsthesoftwareandhardwaresystemsseparately.UsingArduinoUNOasthecorecontroller,infraredsensorsareusedtomonitorthestatictrajectoryofthegranaryinalldirections.TheDS1302clockchipsetsthesystemtimeandsetsthesystemparameterswithbuttons.MainlyprocessingthedatatransmittedbyDHT11temperatureandhumiditysensorsandcontrollingthereal-timedisplayofLCD1602LCDdisplay,providingon-sitesoundandlightalarmsforabnormalsituations,andsharingdatathroughBluetoothwirelesstransmissionmodulesandmobileappsasneeded.Grainwarehousemanagementpersonnelcanmakecorrespondingcontrolmeasuresbasedonreal-timeenvironmentalparameters.Theoverallstructureofthesystemissimpleandclear,easytooperate,andhashighdetectionefficiency.Throughthejointworkofvariousmodules,intelligentmonitoringoftheenvironmentisachieved.KeyWords:Arduino,EnvironmentalMonitoringSystem,TrackingVehicle,WirelessTransmission目錄497117220引言 613377297101系統(tǒng)框架設(shè)計 712169355272硬件設(shè)計 84011482612.1控制模塊 811476546942.1.1ArduinoUNORev3概述 820818083512.1.2ArduinoUNORev3的電路參數(shù) 818946862.1.3ArduinoUNORev3的電路圖 817792165442.2驅(qū)動模塊 917301541802.2.1TB6612FNG電機(jī)概述 1017727228802.1.2TB6612FNG的電路參數(shù) 1021128093292.1.3TB6612FNG電機(jī)的電路圖 1013442893582.3DHT11溫濕度檢測模塊 1219432734662.3.1DHT11的電路參數(shù) 1216658394862.3.2DHT11的電路圖 1210199352632.4液晶顯示模塊 138374948872.4.1LCD1602概述 1311687433712.4.2LCD1602的電路參數(shù)4.3LCD1602的電路圖 1319935690802.5報警模塊 148756670662.6繼電器模塊 156309453712.7紅外循跡模塊7.1TCRT5000概述 1511607351532.7.2TCRT5000的電路參數(shù) 157342671232.7.3TCRT5000的電路圖 1613865005992.8時鐘模塊 165705137962.8.1DS1302時鐘芯片的電路參數(shù) 171108855172.8.2DS1302時鐘芯片的電路圖 1717845622702.9無線傳輸模塊 1713814578882.9.1HC-05概述 1817170158992.9.2HC-05的電路參數(shù) 189661072.9.3HC-05的電路圖 1812049748203系統(tǒng)軟件設(shè)計 2012410085303.1傳感器接口 2012691840463.2變量定義 212211954713.3運(yùn)動控制函數(shù) 213380881403.4初始化 2356390183.5監(jiān)測系統(tǒng)主邏輯的設(shè)計 242856950583.6LCD頁面顯示的邏輯設(shè)計 2520508887613.7光報警的邏輯設(shè)計 28273881303.8小車循跡控制的邏輯設(shè)計 287508004524系統(tǒng)測試 29892869924.1系統(tǒng)組裝 3017028889384.2各功能模塊測試 319398173974.2.1Arduino控制模塊測試 317687676944.2.2傳感器模塊測試 3114170127064.2.3電機(jī)驅(qū)動模塊測試 311389045124.2.3LCD顯示模塊測試 322534088954.2.4循跡模塊測試 325832262644.2.5聲光報警模塊測試 3211684541404.2.6整體系統(tǒng)集成測試 321618262812結(jié)論 33262692029參考文獻(xiàn) 341623687831致謝 42·16··PAGE18·PAGE1引言民以食為天,糧食的安全管控關(guān)系國計的民生之大事,糧食的儲備環(huán)節(jié)更是重中之重,對糧倉的溫濕度的監(jiān)測可以有效的確保糧食的新鮮度以及實現(xiàn)倉庫糧食的減損、保鮮和安全至關(guān)重要。傳統(tǒng)糧倉環(huán)境監(jiān)測系統(tǒng)采用人工或單一的傳感器檢測,獲取的數(shù)據(jù)較為片面,易造成誤報警或漏報警,且單一傳感器損壞后會影響整個系統(tǒng)的性能。本文設(shè)計了一種多傳感器融合的糧倉環(huán)境監(jiān)測的循跡車系統(tǒng),采用先進(jìn)的無線通信技術(shù)、多傳感器融合技術(shù),循跡車能夠根據(jù)預(yù)設(shè)的路徑或通過智能導(dǎo)航系統(tǒng)覆蓋糧倉的各個區(qū)域,包括難以到達(dá)的角落和高層存儲區(qū),確保監(jiān)測數(shù)據(jù)的全面性。車上搭載溫濕度傳感器,自動在糧倉內(nèi)進(jìn)行巡檢,實時采集糧倉內(nèi)的溫度和濕度數(shù)據(jù)。這種自動化的監(jiān)測方式比傳統(tǒng)的人工檢測更加高效和準(zhǔn)確。同時對采集數(shù)據(jù)進(jìn)行實時顯示并進(jìn)行信息對比和優(yōu)化組合處理,極大地提高了系統(tǒng)的準(zhǔn)確性、穩(wěn)定性及可靠性,同時能遠(yuǎn)程自動化控制通風(fēng)、降溫、干燥設(shè)備,糧倉存在異常情況時可即刻聲光報警和發(fā)送遠(yuǎn)程信息通知,方便工作人員在大數(shù)據(jù)平臺上及時處理,確保糧倉存儲安全。從糧倉存儲環(huán)境監(jiān)測的實際需求出發(fā),循跡車為糧倉環(huán)境監(jiān)測提供了全面、實時、精準(zhǔn)、可靠的數(shù)據(jù),提高了糧倉環(huán)境信息智能化水平,保證了糧食存儲質(zhì)量,系統(tǒng)穩(wěn)定、可靠,在智能糧食倉儲領(lǐng)域有一定推廣和應(yīng)用前景。

1系統(tǒng)框架設(shè)計本文設(shè)計的糧倉環(huán)境監(jiān)測循跡車的監(jiān)測系統(tǒng)是基于ArduinoUNO進(jìn)行控制,該系統(tǒng)由7個模塊組成:ArduinoUNO開發(fā)板、DHT11溫濕度傳感器、紅外循跡模塊、無線傳輸模塊、時鐘模塊、LCD1206液晶顯示器、蜂鳴器模塊和兩個繼電器模塊。Arduino作為核心控件,根據(jù)糧倉的特定軌道確定循跡車需要遵循的路徑,采集傳感器的環(huán)境參數(shù)由LCD液晶顯示器實時顯示,并將數(shù)據(jù)進(jìn)行處理,與系統(tǒng)設(shè)置值進(jìn)行比較,同時進(jìn)行調(diào)整控制,使之達(dá)到或或保持設(shè)置值。此外,對異常情況進(jìn)行報警,現(xiàn)場聲光報警,并可根據(jù)需要通過無線傳輸模塊發(fā)送手機(jī)上進(jìn)行遠(yuǎn)程通知,系統(tǒng)結(jié)構(gòu)圖如圖1.1所示。圖1.1系統(tǒng)結(jié)構(gòu)圖

2硬件設(shè)計2.1控制模塊關(guān)于主板硬件的選用,主板是選擇ArduinoUNO系列的,雖然主板上也可以添加藍(lán)牙模塊,但需要進(jìn)行焊接操作,故外接一個pcb的擴(kuò)展板,在擴(kuò)展板上接一個藍(lán)牙模塊,來實現(xiàn)糧倉環(huán)境異常情況發(fā)送遠(yuǎn)程信息。該設(shè)計選用了ArduinoUNOR3,是一款流行的開源微控制器開發(fā)板,它基于ATmega328P微控制器,適用于各種電子項目和編程學(xué)習(xí)。2.1.1ArduinoUNORev3概述微控制器:ATmega328P,具有20MHz的最大工作頻率和高達(dá)20MIPS的性能。數(shù)字I/O引腳:14個數(shù)字輸入/輸出引腳,其中6個支持PWM輸出。模擬輸入引腳:6個模擬輸入引腳,具有10位分辨率的ADC。電源:通過USB或外部電源插孔供電,支持5V輸出。USB接口:用于連接計算機(jī),提供電源和數(shù)據(jù)傳輸。ICSP接口:用于在電路中直接編程微控制器。復(fù)位按鈕:用于重置開發(fā)板到初始狀態(tài)。2.1.2ArduinoUNORev3的電路參數(shù)工作電壓:推薦7-12V,極限范圍6-20V。數(shù)字I/O引腳電流:每個引腳最大20mA。3.3V引腳電流:最大50mA。閃存:32KB,其中0.5KB用于bootloader。SRAM:2KB。EEPROM:1KB。時鐘速度:16MHz。板載LED:一個用于指示電源和編程狀態(tài)的LED。2.1.3ArduinoUNORev3的電路圖ArduinoUNOR3的電路圖包括以下關(guān)鍵部分。電源管理:包括電源插孔、USB接口和電壓穩(wěn)壓電路;微控制器:ATmega328P的引腳連接和功能;通信接口:USB轉(zhuǎn)ATmega16U2的串行通信接口;編程接口:ICSP接口的連接方式;指示燈和復(fù)位按鈕:LED指示燈和復(fù)位按鈕的電路連接;模擬和數(shù)字輸入:模擬輸入和數(shù)字I/O引腳的電路設(shè)計。圖2.1為ArduinoUNORev3的電路圖。圖2.1ArduinoUNORev3的電路圖2.2驅(qū)動模塊驅(qū)動模塊主要由電機(jī)和驅(qū)動板構(gòu)成,電機(jī)選擇具有高電流驅(qū)動能力、雙通道輸出多控制模式低邏輯電壓的TB6612FNG電機(jī),它具有大電流MOSFET-H橋結(jié)構(gòu),能夠提供雙通道電路輸出,同時驅(qū)動兩個直流電機(jī)。邏輯供電(VCC)為2.7V至5.5V,電機(jī)驅(qū)動電壓(VM)為2.74V至10.8V,封裝形式為SSOP24小型貼片封裝,便于集成到設(shè)備中。驅(qū)動板則選擇對比其他驅(qū)動板更高功率更大電流且適合小車的L298N。驅(qū)動模塊主要是用于實現(xiàn)小車的向前運(yùn)動、向左轉(zhuǎn)彎、向右轉(zhuǎn)彎、停止。圖2.2為TB6612FNG電機(jī)的外觀。圖2.2TB6612FNG電機(jī)的外觀2.2.1TB6612FNG電機(jī)概述電機(jī)驅(qū)動能力:TB6612FNG能夠提供高達(dá)1.2A的平均輸出電流和3.2A的峰值輸出電流,適用于驅(qū)動小型到中型的直流電機(jī)。輸入電壓范圍:最大輸入電壓為15V,這使得它可以與多種電源配合使用,包括電池和適配器??刂乒δ埽簝?nèi)置PWM輸入,支持高達(dá)100kHz的頻率,允許精確控制電機(jī)速度。保護(hù)功能:內(nèi)置過熱保護(hù)和低壓檢測電路,增強(qiáng)了系統(tǒng)的可靠性和安全性。封裝:采用小尺寸封裝(SSOP24),便于集成到緊湊的系統(tǒng)中。2.1.2TB6612FNG的電路參數(shù)電源電壓:VM=15V(最大值)輸出電流:IOUT=1.2A(平均值)/3.2A(峰值)輸出低導(dǎo)通電阻:0.5Ω(高+低典型值@VM≥5V)待機(jī)電流:ICC(3V)=1.1-1.8mA,ICC(5.5V)=1.5-2.2mA控制輸入電壓:VIH=Vcc×0.7至Vcc+0.2V,VIL=-0.2至Vcc×0.3V工作溫度:Topr=-20~85°C,Tstg=-55~150°C功耗:PD=0.78W(僅IC),0.89W(PCB貼裝時,50mm×50mm,t=1.6mm,Cu≥40%)2.1.3TB6612FNG電機(jī)的電路圖TB6612FNG的電路圖包含以下關(guān)鍵部分。電源輸入:VM1和VM2分別連接到兩個電機(jī)的電源正極,PGND1和PGND2接地;控制輸入:AIN1和AIN2控制第一個電機(jī),BIN1和BIN2控制第二個電機(jī)。PWMA和PWMB用于PWM控制;使能和待機(jī):STBY引腳用于使能驅(qū)動器,通常接高電平(3.3V或5V);輸出:AO1和AO2是第一個電機(jī)的輸出,BO1和BO2是第二個電機(jī)的輸出;死區(qū)時間:為了防止電機(jī)死點和穿透電流,TB6612FNG在切換模式時提供死區(qū)時間。圖2.3、圖2.4分別為TB6612FNG電機(jī)的電路原理圖與PCB版圖。圖2.3TB6612FNG電機(jī)的電路原理圖圖2.4TB6612FNG電機(jī)的PCB版圖2.3DHT11溫濕度檢測模塊DHT11是一款數(shù)字信號輸出傳感器,集濕度、溫度測量為一體,具有相對濕度和相對溫度可測量、抗干擾能力強(qiáng)、輸出精準(zhǔn)和功耗低等優(yōu)點。DHT11使用單總線通信協(xié)議,這意味著所有的數(shù)據(jù)傳輸都通過一個數(shù)據(jù)線(DATA)進(jìn)行。傳感器內(nèi)部包含一個微控制器,它負(fù)責(zé)處理溫濕度的測量和數(shù)據(jù)的輸出。DHT11需要一個外部上拉電阻(通常為4.7kΩ)來確保數(shù)據(jù)線在空閑時保持高電平。DTH11采取了一種被動的工作模式,等待處理器發(fā)送命令。在接收到命令后,傳感器就會從睡眠模式轉(zhuǎn)換為工作模式,發(fā)出響應(yīng)信號,并進(jìn)行一次信號采集,將數(shù)據(jù)傳輸出去。一次采集結(jié)束后,回到睡眠狀態(tài),等待下一次指令。DHT11的通信協(xié)議相對簡單,它通過發(fā)送一系列的信號位來傳輸數(shù)據(jù)。數(shù)據(jù)傳輸包括40位,分為五個部分:濕度整數(shù)部分、濕度小數(shù)部分、溫度整數(shù)部分、溫度小數(shù)部分和一個校驗位。數(shù)據(jù)傳輸是同步的,由主機(jī)Arduino發(fā)起,傳感器響應(yīng)。2.3.1DHT11的電路參數(shù)濕度測量范圍:20%-95%RH(相對濕度)濕度測量誤差:±5%溫度測量范圍:0℃-50℃溫度測量誤差:±2℃工作電壓:3.3V-5.5V輸出形式:數(shù)字信號封裝:4針單排引腳封裝2.3.2DHT11的電路圖DHT11的電路圖相對簡單,主要包括以下幾個部分。VCC:連接到3.3V-5.5V的電源正極;GND:連接到電源負(fù)極或地線;DATA:用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式。在連接DHT11時,DATA引腳需要通過一個上拉電阻連接到VCC,以確保信號的準(zhǔn)確性。這是因為DHT11通信協(xié)議要求在數(shù)據(jù)傳輸期間,數(shù)據(jù)線需要保持在高電平狀態(tài),除非DHT11將其拉低以傳輸數(shù)據(jù)。在實際應(yīng)用中,DHT11通過發(fā)送40位的數(shù)據(jù)序列來進(jìn)行溫濕度信息的傳輸,這包括濕度的整數(shù)和小數(shù)部分、溫度的整數(shù)和小數(shù)部分,以及一個校驗和。數(shù)據(jù)傳輸格式為高位先出,每一位數(shù)據(jù)的傳輸都以一個低電平時間段開始,隨后是高電平時間段,通過高電平的持續(xù)時間來區(qū)分?jǐn)?shù)據(jù)位是0還是1。DHT11的電路圖如圖2.5所示。圖2.5DHT11的電路圖2.4液晶顯示模塊LCD1602作為各類項目設(shè)計中常見的顯示屏,可顯示字母、數(shù)字和符號,能夠同時顯示16字符、2行的字母或數(shù)字。LCD1602最佳工作電壓為5V,具有低功耗、高可靠性、易于控制等優(yōu)點。它通常作為顯示輸出設(shè)備用于嵌入式系統(tǒng)中,易于跟Arduino開發(fā)板連接使用,符合本設(shè)計的需求。2.4.1LCD1602概述LCD1602模塊由字符型液晶顯示屏(LCD)、控制驅(qū)動主電路HD44780及其擴(kuò)展驅(qū)動電路HD44100組成,還包括少量電阻、電容元件和結(jié)構(gòu)件等。該模塊的優(yōu)點是耗電量低、體積小、輻射低,主要用來顯示數(shù)字、字母、圖形以及少量自定義字符。2.4.2LCD1602的電路參數(shù)顯示能力:能夠顯示16列2行,共32個字符。工作電壓:推薦4.5V至5.5V,最佳工作電壓為5V。工作電流:在5V工作電壓下約為2.0mA。模塊最佳工作電壓:5.0V。字符尺寸:2.95x4.35mm(寬x高)。顯示顏色:通常為藍(lán)色或綠色背光,也有其他顏色可選。顯示模式:支持8位并行數(shù)據(jù)接口。對比度調(diào)節(jié):通過V0引腳調(diào)整液晶對比度。2.4.3LCD1602的電路圖LCD1602共有16個引腳,其電路連接如下。1腳(VSS/GND):地引腳;2腳(VDD/VCC):電源引腳,連接到正電源;3腳(VL):液晶顯示器對比度引腳,通過外接電位器調(diào)整對比度;4腳(RS):寄存器選擇腳,用于區(qū)分?jǐn)?shù)據(jù)和指令;5腳(R/W):讀/寫信號線,低電平時進(jìn)行寫操作;6腳(E):使能端,控制數(shù)據(jù)的讀寫;7-14腳(D0-D7):8位雙向數(shù)據(jù)線,用于傳輸數(shù)據(jù)和指令;15腳(A/K):背光源正極;16腳:背光源負(fù)極。在電路設(shè)計中,VSS和GND用于供電,VDD和VCC連接到電源正極,A/K用于連接背光源,RS、R/W和E用于控制LCD的操作模式,D0-D7用于數(shù)據(jù)的讀寫。通過這些引腳的合理連接和控制,可以實現(xiàn)對LCD1602的編程和顯示控制。圖2.6為LCD1602的電路原理圖。圖2.6LCD1602的電路原理圖2.5報警模塊裝置通過屏顯、LED燈光、蜂鳴器和云報警實現(xiàn)隱患的警示,人員巡檢到就地,可以通過OLED顯示屏獲知系統(tǒng)運(yùn)行的溫度和壓力參數(shù)實時數(shù)值,檢查評估系統(tǒng)工況,當(dāng)參數(shù)到達(dá)報警限值時,也會給出屏顯提示和燈光警示,對于溫度超限、濕度超標(biāo)等達(dá)到超限報警條件的經(jīng)繼電器送至云報警芯片組件,按照預(yù)訂設(shè)置給綁定的手機(jī)撥打電話、發(fā)送短消息,實現(xiàn)遠(yuǎn)程云報警功能。2.6繼電器模塊繼電器是一種自動控制保護(hù)裝置。在系統(tǒng)電路設(shè)計中,用兩個繼電器來控制電路的通斷,即用流經(jīng)繼電器開關(guān)的小電流,通過常閉和常開觸點的動作控制用電器的大電流。其中電磁式繼電器的應(yīng)用為最廣泛。DC5V繼電器是一種常見的電磁式繼電器,在本項目中主要控制加濕器與風(fēng)扇的工作。2.7紅外循跡模塊小車的紅外循跡模塊采用的是TCRT5000,TCRT5000是一種紅外反射式光電傳感器,它廣泛應(yīng)用于自動循跡小車、機(jī)器人避障、紙張檢測等領(lǐng)域。這種傳感器通過發(fā)射紅外光線并檢測反射回來的光線強(qiáng)度來工作。TCRT5000,使用寬電壓LM393比較器,工作電壓通常在3.3V至5V之間,輸出類型為數(shù)字開關(guān)量輸出,通常為TTL電平,此傳感器的檢測距離一般為1mm至25mm。TCRT5000配有多圈可調(diào)精密電位器,可用于調(diào)節(jié)靈敏度。它以數(shù)字信號作為輸出形式,未檢測到反射為0和1檢測到反射。TCRT5000傳感器內(nèi)部包含一個紅外發(fā)射二極管和一個光敏接收器。紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)紅外線遇到黑線時,部分光線會被反射回來。光敏接收器檢測到反射的紅外線強(qiáng)度,并通過內(nèi)部的比較器處理信號。如果反射的紅外線強(qiáng)度足夠高,光敏接收器會導(dǎo)通,導(dǎo)致比較器輸出低電平;如果反射的紅外線強(qiáng)度不足,光敏接收器保持關(guān)閉狀態(tài),比較器輸出高電平。在本循跡車設(shè)計的循跡應(yīng)用中,TCRT5000傳感器連接到Arduino的數(shù)字輸入引腳。通過讀取該引腳的電平狀態(tài),可以判斷傳感器是否檢測到物體。即將多個TCRT5000傳感器排列在小車的底部,以便檢測地面上的黑線。根據(jù)傳感器的輸出信號,微控制器Arduino可以控制小車的轉(zhuǎn)向和速度,使其沿著預(yù)定的路徑行駛。2.7.1TCRT5000概述TCRT5000傳感器通過紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)紅外線遇到物體時,部分光線會被反射回來。光敏三極管接收到反射的紅外線后,會產(chǎn)生電流。傳感器的輸出狀態(tài)取決于反射光的強(qiáng)度2.7.2TCRT5000的電路參數(shù)工作電壓:3.3V-5V檢測反射距離:1mm-25mm輸出形式:數(shù)字開關(guān)量輸出(0和1)集電極電流:約為1mA工作波長:950nm輸出信號:TTL開關(guān)信號靈敏度調(diào)節(jié):通過電位器調(diào)節(jié)供電正常時LED指示:使用白色遮擋物時DO-LED點亮,使用黑色遮擋物時DO-LED熄滅2.7.3TCRT5000的電路圖TCRT5000傳感器的引腳連接如下。1腳(VCC):電源正;2腳(GND):電源地;3腳(DO):TTL開關(guān)信號輸出,與其他器件I/O口連接;4腳(AO):模擬信號輸出,通常情況下無需連接。TCRT5000的電路圖如圖2.7所示。圖2.7TCRT5000的電路原理圖2.8時鐘模塊關(guān)于系統(tǒng)時間的設(shè)定安裝的是DS1302時鐘芯片,它是一種低功耗的實時時鐘芯片,它能夠提供年、月、日、時、分、秒的計時功能,并具有閏年補(bǔ)償功能。該芯片可保持準(zhǔn)確的時間,即使在主電源關(guān)閉的情況下也能保持時間的準(zhǔn)確性。DS1302時鐘芯片通過串行通信與微控制器進(jìn)行數(shù)據(jù)交換,使用一個外部32.768kHz晶振作為時鐘源。同時,又因為DS1302內(nèi)部有多個寄存器,包括控制寄存器、日歷/時鐘寄存器和RAM,所以在此裝置中可以通過發(fā)送特定的控制命令來讀取或設(shè)置這些寄存器的值。2.8.1DS1302時鐘芯片的電路參數(shù)工作電壓:2.5V~5.5V電源類型:雙電源供電,主電源VCC2和備用電池VCC備用電池充電:提供涓流充電功能,適用于外部備用電池時鐘精度:采用32.768kHz晶振作為時鐘源通信接口:SPI三線接口進(jìn)行同步通信,支持突發(fā)方式傳送數(shù)據(jù)RAM容量:31字節(jié)非易失性RAM寫保護(hù):具備寫保護(hù)功能,防止非法寫入操作溫度范圍:通常在-40°C至+85°C范圍內(nèi)工作2.8.2DS1302時鐘芯片的電路圖DS1302芯片的電路圖包含以下幾個關(guān)鍵部分。引腳1(VCC2):主電源輸入;引腳2(X1)和引腳3(X2):振蕩源輸入,外接32.768kHz晶振;引腳4(GND):電源接地;引腳5(RST):復(fù)位/片選線,用于啟動控制邏輯和終止數(shù)據(jù)傳送;引腳6(IO):串行數(shù)據(jù)輸入輸出端(雙向);引腳7(SCLK):時鐘輸入端,用于同步數(shù)據(jù)傳輸;引腳8(VCC1):后備電源輸入,用于維持時鐘運(yùn)行。在實際電路設(shè)計中,DS1302與MCU配合,通過SPI接口進(jìn)行數(shù)據(jù)的讀寫操作。通信時序要求嚴(yán)格的上升沿和下降沿控制,以確保數(shù)據(jù)的正確傳輸。此外,DS1302的引腳5(RST)在上電時必須保持低電平,直到Vcc超過2.0V才能置為高電平。DS1302時鐘芯片的電路原理圖如圖2.8所示。圖2.8DS1302時鐘芯片的電路原理圖2.9無線傳輸模塊Arduino微處理器可以通過藍(lán)牙無線傳輸模塊與其他設(shè)備進(jìn)行無線通信,藍(lán)牙技術(shù)提供了一種簡單的方式來發(fā)送和接收數(shù)據(jù)。本設(shè)計將HC-05藍(lán)牙模塊的VCC和GND引腳連接到Arduino的相應(yīng)電源引腳,然后將模塊的TX和RX引腳通過串口連接到Arduino的RX和TX引腳,實現(xiàn)監(jiān)測過程中溫濕度異常情況需要向糧倉工作人員發(fā)送遠(yuǎn)程信息的通知。2.9.1HC-05概述HC-05是一款基于BluetoothSpecificationV2.0+EDR(增強(qiáng)數(shù)據(jù)速率)藍(lán)牙協(xié)議的串口通信模塊。它工作在2.4GHzISM頻段,采用GFSK調(diào)制方式,最大發(fā)射功率為4dBm,接收靈敏度為-85dBm。模塊自帶PCB天線,可以實現(xiàn)最遠(yuǎn)10米的通信距離。2.9.2HC-05的電路參數(shù)供電電壓:3.1V-4.2V工作電流:不大于50mA尺寸大小:27mm*13mm*2mm存儲溫度:-40℃至+85℃工作溫度:-25℃至+75℃數(shù)字接口:2.4GHz無線收發(fā)空中波特率:2Mbps芯片型號:CSRBC04支持操作系統(tǒng):Android、WINXP、WIN72.9.3HC-05的電路圖HC-05模塊的電路圖包含以下主要部分。VCC:連接到3.3V-4.2V的電源正極;GND:電源接地;TXD:串行傳輸數(shù)據(jù)輸出,連接到主控芯片的RXD(接收數(shù)據(jù));RXD:串行傳輸數(shù)據(jù)輸入,連接到主控芯片的TXD(發(fā)送數(shù)據(jù));STATE:狀態(tài)指示燈,通常為藍(lán)色,表示模塊的工作狀態(tài);LED:藍(lán)牙連接狀態(tài)指示燈,連接到模塊的LED_CON控制腳;其他引腳:包括用于配置模塊參數(shù)的AT命令模式引腳,如KEY和INT等。在設(shè)計電路時,模塊的TXD和RXD引腳需要交叉連接到主控芯片的RXD和TXD引腳上。如果主控芯片的供電電壓為5V,而模塊的供電電壓為3.3V,需要在TXD和RXD引腳之間加入電平轉(zhuǎn)換電路或者使用適當(dāng)?shù)碾娮鑱泶_保信號的正確傳輸。圖2.9為HC-05藍(lán)牙模塊的電路原理圖。圖2.9HC-05藍(lán)牙模塊的電路原理圖

3系統(tǒng)軟件設(shè)計3.1傳感器接口首先為Arduino程序的頭部和定義部分,它為一個包含溫濕度監(jiān)測和實時時鐘顯示功能的系統(tǒng)設(shè)置了基礎(chǔ)。代碼如下:#include"DHT.h"#include<DS1302.h>#include<LiquidCrystal_I2C.h>LiquidCrystal_I2Clcd(0x27,16,2);//DS1302:CEpin->ArduinoDigital5//I/Opin->ArduinoDigital4//SCLKpin->ArduinoDigital3//InittheDS1302DS1302rtc(5,4,3);#defineDHTPIN2//DigitalpinconnectedtotheDHTsensor#defineDHTTYPEDHT11//DHT11DHTdht(DHTPIN,DHTTYPE);#definetrackLA2//左巡線#definetrackRA3//右巡線#defineIN110//左輪#defineENA11#defineIN38//右輪#defineENB9#definetaskBtn28#definetaskOKBtn29#defineaddKey12//按鍵加#definesubKeyA1//按鍵減#definesetKeyA0設(shè)置以下是代碼的主要組成部分和功能:包含庫:代碼開始部分包含了DHT傳感器、DS1302時鐘芯片和I2C液晶顯示屏所需的庫。這些庫允許Arduino與這些設(shè)備進(jìn)行通信。初始化I2C液晶顯示屏:LiquidCrystal_I2Clcd(0x27,16,2);初始化了一個I2C液晶顯示屏,其I2C地址為0x27,屏幕有16個字符寬和2行高。初始化DS1302時鐘芯片:DS1302rtc(5,4,3);初始化了DS1302時鐘芯片,其CE(控制使能)、I/O(數(shù)據(jù)輸入/輸出)和SCLK(串行時鐘)引腳分別連接到Arduino的數(shù)字引腳5、4和3。定義DHT11傳感器引腳:#defineDHTPIN2定義了DHT11溫濕度傳感器連接到Arduino的數(shù)字引腳2。定義循跡傳感器和電機(jī)控制引腳:#definetrackLA2和#definetrackRA3定義了左循跡傳感器和右循跡傳感器連接到Arduino的模擬引腳A2和A3。這些引腳也被配置為數(shù)字輸入,因為它們用于讀取傳感器的狀態(tài)。#defineIN110、#defineENA11、#defineIN38和#defineENB9分別定義了電機(jī)控制引腳。這些引腳用于控制小車的左右電機(jī)。定義按鍵引腳:#definetaskBtn28、#definetaskOKBtn29、#defineaddKey12、#definesubKeyA1和#definesetKeyA0定義了用于不同功能的按鍵引腳。這些按鍵用于任務(wù)設(shè)置、確認(rèn)、增加/減少閾值等交互。這段代碼為程序的后續(xù)部分提供了必要的硬件接口和設(shè)置,接下來的代碼部分將包含具體的功能實現(xiàn),如溫濕度讀取、LCD顯示、按鍵輸入處理和電機(jī)控制邏輯。3.2變量定義定義兩個用于設(shè)置溫度和濕度閾值的變量,用于管理監(jiān)控環(huán)境條件。代碼如下:intpage=0;//頁數(shù)inttempThr=30;//閾值inthumiThr=60;//閾值定義一個名為page的變量,用于跟蹤當(dāng)前顯示的頁面,初始值為0;一個名為tempThr的變量,用于設(shè)置溫度閾值,初始值為30攝氏度;一個名為humiThr的變量,用于設(shè)置濕度閾值,初始值為60%相對濕度。3.3運(yùn)動控制函數(shù)定義了幾個用于控制機(jī)器人小車運(yùn)動的函數(shù),在Arduino程序中用于管理小車的移動。具體代碼如下:voidgoF(intspeedA=65,intspeedB=65){//前進(jìn)digitalWrite(IN1,HIGH);analogWrite(ENA,speedA);digitalWrite(IN3,HIGH);analogWrite(ENB,speedB);}voidgoB(intspeedA=50,intspeedB=50){//后退digitalWrite(IN1,LOW);analogWrite(ENA,speedA);digitalWrite(IN3,LOW);analogWrite(ENB,speedB);}voidgoL(intspeedA=70,intspeedB=0){//左轉(zhuǎn)goF(speedA,speedB);}voidgoR(intspeedA=0,intspeedB=70){//右轉(zhuǎn)goF(speedA,speedB);}voidgoS(intspeedA=0,intspeedB=0){//停止goF(speedA,speedB);}voidgoF(intspeedA=65,intspeedB=65){...}:定義了一個名為goF的函數(shù),用于控制小車前進(jìn)。speedA和speedB是左右電機(jī)的速度參數(shù),默認(rèn)值分別為65。voidgoB(intspeedA=50,intspeedB=50){...}:定義了一個名為goB的函數(shù),用于控制小車后退。speedA和speedB是左右電機(jī)的速度參數(shù),默認(rèn)值分別為50。voidgoL(intspeedA=70,intspeedB=0){...}:定義了一個名為goL的函數(shù),用于控制小車左轉(zhuǎn)。speedA設(shè)置為70,speedB設(shè)置為0,這樣可以使得左輪靜止,右輪轉(zhuǎn)動,實現(xiàn)左轉(zhuǎn)。voidgoR(intspeedA=0,intspeedB=70){...}:定義了一個名為goR的函數(shù),用于控制小車右轉(zhuǎn)。speedA設(shè)置為0,speedB設(shè)置為70,這樣可以使得右輪靜止,左輪轉(zhuǎn)動,實現(xiàn)右轉(zhuǎn)。voidgoS(intspeedA=0,intspeedB=0){...}:定義了一個名為goS的函數(shù),用于控制小車停止。speedA和speedB均設(shè)置為0,使左右電機(jī)都不轉(zhuǎn)動。這些函數(shù)通過控制電機(jī)的PWM信號來調(diào)整電機(jī)的速度,從而實現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止。在實際的Arduino程序中,這些函數(shù)通常會在主循環(huán)(loop())中根據(jù)傳感器輸入或其他條件被調(diào)用。3.4初始化使用setup()函數(shù)為Arduino程序的其余部分提供了必要的硬件初始化,確保了LCD顯示屏、串行通信、按鍵輸入、電機(jī)控制和時鐘芯片都已準(zhǔn)備好使用。代碼如下:voidsetup(){//putyoursetupcodehere,torunonce:Serial.begin(9600);lcd.init();//initializethelcdlcd.backlight();pinMode(addKey,INPUT_PULLUP);pinMode(subKey,INPUT_PULLUP);pinMode(setKey,INPUT_PULLUP);pinMode(IN1,OUTPUT);pinMode(IN3,OUTPUT);pinMode(ENA,OUTPUT);pinMode(ENB,OUTPUT);//Settheclocktorun-mode,anddisablethewriteprotectionrtc.halt(false);rtc.writeProtect(false);dht.begin();//lcd.print("task:");//ThefollowinglinescanbecommentedouttousethevaluesalreadystoredintheDS1302rtc.setDOW(FRIDAY);//SetDay-of-WeektoFRIDAYrtc.setTime(12,0,0);//Setthetimeto12:00:00(24hrformat)rtc.setDate(6,8,2010);//SetthedatetoAugust6th,2010}這段代碼是Arduino程序中的setup()函數(shù),它負(fù)責(zé)初始化硬件設(shè)備和設(shè)置程序開始運(yùn)行時的狀態(tài)。以下是代碼的詳細(xì)解釋:Serial.begin(9600);:啟動串行通信,設(shè)置波特率為9600。這允許Arduino通過串行端口與計算機(jī)或其他設(shè)備進(jìn)行通信,通常用于調(diào)試或發(fā)送數(shù)據(jù)。lcd.init();:初始化I2C連接的LCD顯示屏。這是LiquidCrystal_I2C庫的一部分,用于開始與LCD的通信。lcd.backlight();:打開LCD顯示屏的背光。這個函數(shù)會激活LCD的背光,使得顯示內(nèi)容可見。pinMode(addKey,INPUT_PULLUP);、pinMode(subKey,INPUT_PULLUP);、pinMode(setKey,INPUT_PULLUP);:配置addKey、subKey和setKey引腳為輸入模式,并啟用內(nèi)部上拉電阻。這樣,當(dāng)按鍵未被按下時,它們會讀取高電平(通常是5V),當(dāng)按鍵被按下時,它們會讀取低電平(接地)。pinMode(IN1,OUTPUT);、pinMode(IN3,OUTPUT);、pinMode(ENA,OUTPUT);、pinMode(ENB,OUTPUT);:配置IN1、IN3、ENA和ENB引腳為輸出模式。這些引腳用于控制電機(jī)的速度和方向。IN1和IN3控制電機(jī)的相位,而ENA和ENB控制電機(jī)的使能信號。rtc.halt(false);:將DS1302時鐘芯片設(shè)置為運(yùn)行模式。如果halt函數(shù)的參數(shù)為true,則時鐘芯片會被設(shè)置為停止模式,這通常用于節(jié)省電力。rtc.writeProtect(false);:關(guān)閉DS1302時鐘芯片的寫保護(hù)。這樣,你就可以對時鐘芯片進(jìn)行寫操作,比如設(shè)置時間或日期。如果寫保護(hù)被啟用(參數(shù)為true),則無法修改時鐘芯片的內(nèi)容。dht.begin();:初始化DHT11溫濕度傳感器。這個函數(shù)是DHT庫的一部分,用于開始與DHT11傳感器的通信。rtc.setDOW(FRIDAY);、rtc.setTime(12,0,0);、rtc.setDate(6,8,2010);:這些行設(shè)置DS1302時鐘芯片的星期、時間和日期。它們可以被注釋掉,以便使用時鐘芯片中已經(jīng)存儲的值。3.5監(jiān)測系統(tǒng)主邏輯的設(shè)計允許糧倉環(huán)境監(jiān)測人員通過按下setKey按鍵來切換溫濕度顯示頁面。每次按鍵按下,都會更新page變量的值,并清除LCD顯示屏,為顯示新頁面做準(zhǔn)備。以下是具體代碼:floath,t;voidloop(){//delay(100);if(digitalRead(setKey)==0){//頁面設(shè)置page++;if(page>2){page=0;}delay(50);lcd.clear();//清屏}這段代碼是Arduino程序中的loop()函數(shù)的一部分,它負(fù)責(zé)執(zhí)行程序的主要邏輯。loop()函數(shù)在setup()函數(shù)之后無限循環(huán)執(zhí)行,直到Arduino板斷電或重啟。以下是代碼的詳細(xì)解釋:1.floath,t;:定義了兩個浮點變量h和t,用于存儲從DHT11傳感器讀取的濕度和溫度值。2.voidloop(){...}:定義了loop()函數(shù),這是Arduino程序的核心部分,所有的持續(xù)運(yùn)行的代碼都放在這里。3.if(digitalRead(setKey)==0){...}:檢查setKey按鍵是否被按下。digitalRead()函數(shù)用于讀取引腳的數(shù)字狀態(tài),如果setKey引腳讀取到的是低電平(按鍵被按下),則執(zhí)行大括號內(nèi)的代碼塊。4.page++;:如果setKey被按下,page變量的值增加1。這個變量用于跟蹤當(dāng)前的顯示頁面,以便在不同的顯示模式之間切換。5.if(page>2){page=0;}:這是一個邊界檢查,確保page變量的值不會超過2。如果page大于2,它將被設(shè)置回0。這樣可以循環(huán)通過不同的頁面。6.delay(50);:在按鍵切換頁面后,等待50毫秒。這通常用于消抖,防止按鍵的快速連續(xù)觸發(fā)。7.lcd.clear();:清除LCD顯示屏上的內(nèi)容。這是為了準(zhǔn)備顯示新的頁面信息。3.6LCD頁面顯示的邏輯設(shè)計基于Arduino根據(jù)當(dāng)前的頁面狀態(tài)顯示不同的信息,并處理監(jiān)測人員輸入來設(shè)置溫度閾值和濕度閾值。具體代碼如下:if(page==0){//0頁顯示//Displaytimecenteredontheupperlinelcd.setCursor(0,0);lcd.print(rtc.getTimeStr());////DisplayabbreviatedDay-of-Weekinthelowerleftcorner//lcd.setCursor(0,1);//lcd.print(rtc.getDOWStr(FORMAT_SHORT));//Displaydateinthelowerrightcorner//lcd.setCursor(0,0);//lcd.print(rtc.getDateStr());//Readingtemperatureorhumiditytakesabout250milliseconds!//Sensorreadingsmayalsobeupto2seconds'old'(itsaveryslowsensor)h=dht.readHumidity();//ReadtemperatureasCelsius(thedefault)t=dht.readTemperature();//Checkifanyreadsfailedandexitearly(totryagain).if(isnan(h)||isnan(t)){Serial.println(F("FailedtoreadfromDHTsensor!"));return;}Serial.print(F("Humidity:"));Serial.print(h);Serial.print(F("%Temperature:"));Serial.print(t);Serial.println(F("°C"));lcd.setCursor(0,1);lcd.print("T:");lcd.print(t);lcd.print("H:");lcd.print(h);lcd.print("");}elseif(page==1){if(digitalRead(addKey)==0){//加tempThr++;if(tempThr>100){tempThr=99;}delay(50);}if(digitalRead(subKey)==0){//減tempThr--;if(tempThr<0){tempThr=0;}delay(50);}lcd.setCursor(0,0);lcd.print("T_Thr:");lcd.print(tempThr);}elseif(page==2){if(digitalRead(addKey)==0){//加humiThr++;if(humiThr>100){humiThr=99;}delay(50);}if(digitalRead(subKey)==0){//減humiThr++;if(humiThr>0){humiThr=0;}delay(50);}lcd.setCursor(0,0);lcd.print("H_Thr:");lcd.print(humiThr);}這段代碼通過使用三個不同的頁面來管理用戶界面,允許用戶查看實時數(shù)據(jù)、設(shè)置溫度閾值和設(shè)置濕度閾值。按鍵輸入通過digitalRead()函數(shù)讀取,并根據(jù)按下的按鍵來調(diào)整相應(yīng)的閾值。LCD顯示屏用于向監(jiān)測人員提供即時的反饋,顯示當(dāng)前的設(shè)置和傳感器讀數(shù)。這種設(shè)計使得用戶界面直觀易用,同時保持了程序的靈活性和可擴(kuò)展性。1.當(dāng)page變量為0時,表示當(dāng)前是顯示時間、溫度和濕度的頁面(第0頁):使用rtc.getTimeStr()獲取當(dāng)前時間的字符串表示,并顯示在LCD的第一行。讀取DHT11傳感器的濕度和溫度值,并在串行監(jiān)視器中打印出來。如果讀取失?。ǚ祷豱an),則在串行監(jiān)視器中打印錯誤信息并退出當(dāng)前循環(huán)。將讀取的溫度和濕度值顯示在LCD的第二行。2.當(dāng)page變量為1時,表示當(dāng)前是設(shè)置溫度閾值的頁面(第1頁):檢測addKey按鍵是否被按下以增加溫度閾值tempThr,并對閾值進(jìn)行限制,確保它在0到99之間。檢測subKey按鍵是否被按下以減少溫度閾值tempThr,同樣進(jìn)行限制。將當(dāng)前的溫度閾值顯示在LCD上。3.當(dāng)page變量為2時,表示當(dāng)前是設(shè)置濕度閾值的頁面(第2頁):類似于第1頁,但是這里是設(shè)置濕度閾值humiThr。將當(dāng)前的濕度閾值顯示在LCD上。3.7光報警的邏輯設(shè)計實現(xiàn)一個簡單的報警系統(tǒng),當(dāng)溫濕度傳感器讀取的值超過設(shè)定的閾值時,會通過LED燈和串行輸出來提醒用戶。這種類型的報警系統(tǒng)在環(huán)境監(jiān)控和自動化控制系統(tǒng)中非常有用,可以用于確保環(huán)境條件保持在安全或理想的范圍內(nèi)。具體代碼如下:if(humiThr<h||tempThr<t){//聲光報警digitalWrite(13,HIGH);delay(50);digitalWrite(13,LOW);Serial.println("alarm");}如果當(dāng)前濕度小于設(shè)定的濕度閾值humiThr或當(dāng)前溫度高于設(shè)定的溫度閾值tempThr,則觸發(fā)報警。報警通過點亮連接到數(shù)字引腳13的LED燈實現(xiàn),并在串行監(jiān)視器中打印“alarm”。3.8小車循跡控制的邏輯設(shè)計Arduino程序中的循跡邏輯部分,它負(fù)責(zé)讀取循跡傳感器的狀態(tài),感知黑線,并根據(jù)這些狀態(tài)控制小車的行駛方向,確保小車能夠沿著預(yù)定的線路行駛。代碼如下:Serial.print("L:");Serial.print(digitalRead(trackL));Serial.print("R:");Serial.print(digitalRead(trackR));if(digitalRead(trackL)==0&&digitalRead(trackR)==0){//前進(jìn)在線上goF();}elseif(digitalRead(trackL)==1&&digitalRead(trackR)==0){//左出線goL();}elseif(digitalRead(trackL)==0&&digitalRead(trackR)==1){//左出線goR();}讀取循跡傳感器trackL和trackR的狀態(tài),并在串行監(jiān)視器中打印。根據(jù)兩個循跡傳感器的狀態(tài)控制小車的運(yùn)動:如果兩個傳感器都檢測到黑線(返回低電平),則小車直線行駛(調(diào)用goF())。如果只有左邊的傳感器檢測到黑線,小車左轉(zhuǎn)(調(diào)用goL())。如果只有右邊的傳感器檢測到黑線,小車右轉(zhuǎn)(調(diào)用goR())。

4系統(tǒng)測試4.1系統(tǒng)組裝將環(huán)境參數(shù)采集模塊、紅外循跡模塊、時鐘模塊、LCD顯示模塊、蜂鳴器模塊和無線傳輸模塊進(jìn)行搭建,并模擬黑膠帶在糧倉各個部分進(jìn)行靜態(tài)路徑的規(guī)劃監(jiān)測。首先將電機(jī)安裝到小車底盤上,并確保電機(jī)軸與輪子相連。固定TB6612FNG模塊在底盤上。電機(jī)的正負(fù)極連接到TB6612FNG模塊的相應(yīng)輸出引腳。TB6612FNG模塊的控制引腳連接到Arduino的數(shù)字輸出引腳。再安裝紅外循跡傳感器,將TCRT5000傳感器均勻地安裝在底盤的底部,以便它們可以檢測到地面上的黑線。將傳感器的輸出引腳連接到Arduino的數(shù)字輸入引腳。同時,將DHT11傳感器固定在小車上,確保它能夠準(zhǔn)確檢測到糧倉內(nèi)的環(huán)境條件,DHT11傳感器的數(shù)據(jù)引腳連接到Arduino的數(shù)字輸入引腳,LCD1602顯示屏、蜂鳴器連接到Arduino的相應(yīng)引腳,并用于顯示數(shù)據(jù)、發(fā)出警報。Arduinouno的pcb版圖以及實物圖,如圖4.1、圖4.2所示。圖4.1Arduinouno的拓展pcb版圖圖4.2實物圖4.2各功能模塊測試4.2.1Arduino控制模塊測試測試目的:驗證Arduino開發(fā)板是否能夠正常讀取傳感器數(shù)據(jù)并發(fā)出控制指令。測試方法:1.連接Arduino開發(fā)板與電源。2.編寫并上傳測試代碼,該代碼應(yīng)包含基本的輸入輸出功能,如LED閃爍。3.檢查開發(fā)板上的LED是否按照程序設(shè)計進(jìn)行閃爍,確認(rèn)開發(fā)板正常工作。4.2.2傳感器模塊測試測試目的:確保所有傳感器能夠準(zhǔn)確讀取環(huán)境參數(shù),如溫度、濕度、氧氣含量等。測試方法:1.分別連接溫濕度傳感器、氧氣傳感器等至Arduino。2.編寫傳感器讀取代碼并上傳至Arduino。3.將傳感器置于已知環(huán)境條件下,比如在標(biāo)準(zhǔn)溫度和濕度下,檢查傳感器讀數(shù)是否與實際環(huán)境相符。4.2.3電機(jī)驅(qū)動模塊測試測試目的:驗證電機(jī)驅(qū)動模塊是否能夠根據(jù)Arduino的指令控制電機(jī)的運(yùn)行。測試方法:1.連接電機(jī)驅(qū)動模塊至Arduino,并接入電源。2.編寫電機(jī)控制代碼,包括前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等基本動作。3.上傳代碼并觀察電機(jī)是否按照預(yù)期響應(yīng)指令,調(diào)整PWM值以測試電機(jī)速度控制。4.2.3LCD顯示模塊測試測試目的:在LCD顯示模塊上顯示從傳感器讀取的環(huán)境監(jiān)測數(shù)據(jù)。測試方法:1.首先進(jìn)行基礎(chǔ)顯示功能測試,上傳一個簡單的測試程序到Arduino,該程序應(yīng)能夠控制LCD模塊顯示基本的字符和圖形。例如,可以嘗試顯示不同的字符、數(shù)字、特殊符號以及簡單的圖形,以驗證LCD模塊的基礎(chǔ)顯示功能是否正常。2.編寫代碼,將溫濕度傳感器數(shù)據(jù)實時更新到LCD屏幕上,確保數(shù)據(jù)的準(zhǔn)確性和LCD顯示的實時性。3.穩(wěn)定性和響應(yīng)時間測試,長時間運(yùn)行LCD顯示程序,檢查LCD模塊的穩(wěn)定性和響應(yīng)時間。確保在不同的工作條件下,LCD模塊都能夠穩(wěn)定運(yùn)行,并且能夠快速響應(yīng)Arduino發(fā)送的顯示指令。小車上LCD1602顯示的實況測試圖如下:圖4.2.3LCD顯示測試圖4.2.4循跡模塊測試測試目的:確保循跡模塊能夠準(zhǔn)確識別黑線路徑,并控制小車沿預(yù)定路徑行駛。測試方法:1.連接循跡模塊至Arduino。2.編寫循跡控制代碼,模擬小車在黑線上行駛。3.在黑線賽道上測試小車,確

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論