孫敬姝,李 蕊,李志有,梁 浩,付成偉
(吉林大學(xué)物理學(xué)院,吉林長春130012)
單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),結(jié)合不同類型的傳感器,通過不同設(shè)計(jì)程序可以實(shí)現(xiàn)對各種物理量的測量及智能化控制.理科學(xué)生對單片機(jī)的智能化系統(tǒng)了解的甚少,為了培養(yǎng)學(xué)生創(chuàng)新能力和綜合素質(zhì),針對節(jié)水灌溉的現(xiàn)狀,本文設(shè)計(jì)并實(shí)現(xiàn)了基于MSP430F149單片機(jī)控制的自動微灌演示系統(tǒng).該系統(tǒng)利用MSP430單片機(jī)及其外圍電路完成對TSL230單總線數(shù)字光強(qiáng)傳感器和SHT-10溫濕度傳感器的控制和數(shù)據(jù)轉(zhuǎn)換,實(shí)現(xiàn)實(shí)時(shí)對環(huán)境相對濕度、溫度、光強(qiáng)采集與處理,并根據(jù)植物需要進(jìn)行自動灌溉.
系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示,其流程是:通過溫、濕度傳感器、光強(qiáng)傳感器采集環(huán)境數(shù)據(jù),將數(shù)據(jù)進(jìn)行校正,利用LED顯示當(dāng)前環(huán)境的光強(qiáng)、濕度和溫度,當(dāng)測得的值達(dá)到預(yù)先設(shè)定的值時(shí),由單片機(jī)控制開啟灌溉開關(guān)演示系統(tǒng)進(jìn)行自動灌溉演示.
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
選用TI公司的16位MSP430F149單片機(jī)作為自動控制電路的核心.該單片機(jī)硬件集成度高,為單片機(jī)與傳感器、固態(tài)繼電器、顯示屏連接提供了充足的I/O端口,方便數(shù)據(jù)采集與信號傳輸.MSP430提供多種晶振方案,可為不同模塊選擇不同時(shí)鐘源.超低功耗是MSP430突出特性,具有可實(shí)現(xiàn)長時(shí)間檢測而不會消耗大量的電量的功能.
如圖2所示,采用SENSIRION公司生產(chǎn)的SHT10溫濕度傳感器芯片,提供全標(biāo)定的兩線數(shù)字輸出,即采用IIC傳輸模式與單片機(jī)進(jìn)行數(shù)據(jù)傳輸,具有響應(yīng)時(shí)間短、低功耗可完全浸沒等特點(diǎn).濕度測量范圍為0~100%RH,測量精度為±4.5%,溫度測量范圍為-40~+123.8℃,測量精度在25℃時(shí)為±0.5%.圖中A3,A4,A5分別與I/O口相連,A3為數(shù)據(jù)通信,A4為時(shí)鐘通信,A5控制傳感器開啟.默認(rèn)的測量分辨率分別為14bit(溫度)、12bit(濕度).此部分采用I2C通信模式.
由于濕度傳感器的非線性,傳感器傳輸?shù)臄?shù)據(jù)與實(shí)際數(shù)據(jù)存在一定誤差,為了獲取準(zhǔn)確數(shù)據(jù),用修正公式計(jì)算得溫度濕度.T=d1+d2T,Vdd=3V時(shí)d1=-39.60,14bit時(shí)d2=0.01.RH=c1+c2RH+c3RH2,12bit時(shí)c1=-4,c2=0.040 5,c3=-2.8×10-6.由于實(shí)際溫度與測量參考溫度25℃的顯著不同,應(yīng)考慮濕度傳感器的溫度修正系數(shù):RHture=(T-25)×(t1+t2×RH)+RHlinear,12bit時(shí),t1=0.01,t2=0.000 08.RHtrue為計(jì)算得到的相對濕度,T為溫度.
圖2 傳感器電路
如圖2所示,使用的光強(qiáng)傳感器TSL230在單片電路中集成了1個(gè)可配置的硅光電二極管和1個(gè)電流/頻率轉(zhuǎn)換器,可直接輸出正比于入射光強(qiáng)度的頻率信號,該器件能直接單片機(jī)接口.TSL230還具備靈敏度和滿度輸出頻率可編程調(diào)整的特點(diǎn).傳感器的靈敏度有3種級別:1×、10×和100×,靠2個(gè)邏輯輸入端S0和S1來控制,傳感器有4個(gè)可選的分頻系數(shù),具體的分頻系數(shù)靠2個(gè)邏輯輸入端S2和S3來控制,根據(jù)系統(tǒng)需要設(shè)計(jì)的連接,S0和L S1:H靈敏度選1×;S3:H和S2:L輸出頻率分頻系數(shù)10×.
設(shè)計(jì)程序用于測量脈沖信號周期:如圖2所示通過TA1管腳輸入,即接單片機(jī)的P1.2/TA1端口,使用第二功能,工作方式是捕獲信號下降沿來觸發(fā)定時(shí)器中斷.捕獲時(shí)單片機(jī)會通過硬件自動將計(jì)數(shù)器中的值保存在捕獲模塊的寄存器中,當(dāng)捕獲信號發(fā)生下降沿時(shí),就會觸發(fā)捕獲中斷,因?yàn)閭鞲衅鬏敵龅臑橹芷谛盘枺x取多次捕獲的定時(shí)器計(jì)數(shù)器的平均值f即可算出脈沖信號周期.使用單片機(jī)32.768kHz的內(nèi)部晶振,因分頻系數(shù)為10,用fture=32 768/f×10計(jì)算信號頻率.在入射光波長為670nm,溫度為25℃時(shí),根據(jù)已知光強(qiáng)與頻率的確切線性關(guān)系可標(biāo)定出光強(qiáng).
本系統(tǒng)使用的顯示屏是由Sitronix電子公司生產(chǎn)的中文圖形LCM控制器,最多可驅(qū)動256×32個(gè)液晶點(diǎn).ST7920具有低功率電源消耗(2.7~5.5V),可以滿足本系統(tǒng)的省電需求,如圖3所示.單片機(jī)的P2.0~P2.7端口與ST7920的輸入相連接,控制數(shù)據(jù)總線,控制代碼.P3.0~P3.2端口與顯示屏的命令控制位相連,通過改變E,RW,RS各位的電平高低,實(shí)現(xiàn)選擇寄存器和對命令讀寫的操作.
圖3 顯示電路
顯示程序:顯示模塊的主要功能是通過調(diào)用顯示程序?qū)⒚看螠y量出的光強(qiáng)、溫度、濕度等數(shù)值通過調(diào)用寫數(shù)據(jù)函數(shù)顯示到屏上相應(yīng)位置.ST7920的指令集包括基本指令和擴(kuò)充指令,每條指令的長度都是8位.16×16點(diǎn)陣中文字符的代碼為16位,分2次傳送.編寫寫數(shù)據(jù)函數(shù).通過對ST7920說明書上中文字型碼表的查詢,可得到各種字符的地址編碼,編寫相應(yīng)程序.
灌溉開關(guān)控制電路如圖4所示,單片機(jī)為I/O口P6.6,輸出25W,12V.由于電壓高于單片機(jī)輸出電壓,且電流過大,電路使用固態(tài)繼電器JGX-2FA將信號放大,同時(shí)保證電流為2A.當(dāng)測得數(shù)據(jù)達(dá)到適當(dāng)條件時(shí),P6.6輸出高電平,繼電器輸出12V左右電壓,系統(tǒng)開始工作.
圖4 灌溉開關(guān)控制電路
程序流程圖如圖5所示,初始化后,調(diào)用溫度、濕度、光強(qiáng)測量程序,通過調(diào)用顯示程序,把溫度、濕度、光強(qiáng)顯示到屏上相應(yīng)位置.
判斷溫度是否低于10℃,如果低,不開啟灌溉開關(guān),否則再繼續(xù)判斷濕度,濕度大于70%,不開啟灌溉開關(guān),否則再次判斷溫度是否高于閾值35℃,如果低于閾值則開啟灌溉開關(guān),否則判斷光強(qiáng)是否高于閾值15 000lx,高于閾值關(guān)閉灌溉開關(guān),低于閾值開灌溉開關(guān).到此,單片機(jī)完成1次數(shù)據(jù)測量與判斷.
如果灌溉開關(guān)沒有打開,則返回初始化,進(jìn)行新一輪的數(shù)據(jù)測量,直到開啟灌溉開關(guān).灌溉開始后,進(jìn)入低功耗狀態(tài),定時(shí)為3s.3s后觸發(fā)中斷,返回初始化,進(jìn)行新一輪測量判斷.
圖5 程序流程圖
實(shí)驗(yàn)證明,基于MSP430單片機(jī)的自動灌溉演示裝置具有結(jié)構(gòu)簡單,操作方便,成本低廉,能實(shí)時(shí)進(jìn)行自動監(jiān)控等特點(diǎn),用于演示教學(xué),有利于提高學(xué)生的綜合素質(zhì).
[1] 張鑫,華臻.單片機(jī)原理及應(yīng)用[M].北京:電子工業(yè)出版社,2005.8:10-100.
[2] 李蕊,孫敬姝,李志有,等.太陽能自動微灌演示系統(tǒng)[J].物理實(shí)驗(yàn),2010,30(4):15-17.