基于STC89C52單片機(jī)的客車安全系統(tǒng)設(shè)計與實現(xiàn)
摘要 為增加客車的安全性,提出了一種基于STC89C52單片機(jī)同時具有防超載和防撞功能的客車安全系統(tǒng)。通過研究超聲波測距原理和脈沖寬度調(diào)制原理,并對車身重量和障礙物的距離進(jìn)行實時監(jiān)測以實現(xiàn)其功能。對該系統(tǒng)的安全性能和測量精度進(jìn)行了測試,結(jié)果表明,系統(tǒng)達(dá)到了設(shè)計要求。
本文引用地址:http://butianyuan.cn/article/201610/307117.htm統(tǒng)計表明,在關(guān)于客車的交通事故中,超速和超載是事故發(fā)生的主要原因。本設(shè)計針對如何預(yù)防因超速而產(chǎn)生的車輛撞擊和防超載的發(fā)生進(jìn)行了一次探索。當(dāng)乘客全部上車后,車門關(guān)閉,智能車通過稱重傳感器進(jìn)行稱重,并將重量顯示在液晶屏上,若重量超過額定數(shù)值,蜂鳴器報警、小車無法開動,以實現(xiàn)防超載的功能。小車開動后,超聲波模塊開始測距,當(dāng)小車與前方障礙物的距離低于規(guī)定距離30 cm時,電機(jī)減速;當(dāng)距離減小到安全距離以內(nèi)15 cm時,小車停駛,直到前方車輛遠(yuǎn)離小車才繼續(xù)行駛,起到了防撞的作用。本設(shè)計具有成本低、操作簡便、體積小等特點。
1 總體設(shè)計方案和工作原理
1.1 總體設(shè)計方案
系統(tǒng)組成框圖如圖1所示,智能車以STC89C52作為主控芯片,使用電阻應(yīng)變式傳感器進(jìn)行稱重,并將采集到的數(shù)據(jù)通過模數(shù)轉(zhuǎn)換后發(fā)送至單片機(jī)同時將結(jié)果顯示在液晶屏上。文中使用HC-SR04模塊實現(xiàn)超聲波的收發(fā),并將測得的數(shù)據(jù)傳輸給單片機(jī),根據(jù)小車與障礙物的距離遠(yuǎn)近,產(chǎn)生不同的脈沖寬度調(diào)制信號以達(dá)到實時調(diào)節(jié)電機(jī)轉(zhuǎn)速的目的,同時由1602液晶顯示距離。
1.2 電機(jī)調(diào)速原理
電機(jī)轉(zhuǎn)速的快慢與輸入電壓的大小和通斷有關(guān),因此脈沖寬度調(diào)制(PWM)便成為了調(diào)節(jié)小車行駛速度的最佳方案。脈沖寬度調(diào)制,就是按照一定的頻率接通和斷開電源,并根據(jù)不同的情況來改變通斷電源的時間。而電機(jī)轉(zhuǎn)速快慢是通過改變電機(jī)上的平均電壓實現(xiàn)的,平均電壓值可通過電壓的占空比來改變。如圖2所示,當(dāng)電源接通時,電機(jī)運(yùn)轉(zhuǎn);斷開時,電機(jī)停止;通電時間越長,電機(jī)轉(zhuǎn)速越快。所以,根據(jù)PWM原理對電機(jī)按頻率進(jìn)行通電和斷電,便可實現(xiàn)對電機(jī)速度的精確控制。電機(jī)在接通+6 V電壓下能以最快速度運(yùn)轉(zhuǎn),假設(shè)在電機(jī)持續(xù)接通電源,電機(jī)的轉(zhuǎn)速能達(dá)到最大,設(shè)電機(jī)兩端電壓為Umax,而當(dāng)電源按頻率通斷時,占空比
,T(s)為信號周期,平均電壓為
Uav=Umax×P (1)
故平均速度為
v=kUav (2)
其中,k為系數(shù)。在T不變的情況下,改變接通電源的時間t就可改變平均速度。在本設(shè)計中,將占空比與電壓看成是近似的線性關(guān)系。
經(jīng)測試和計算,平均速度和平均電壓的關(guān)系式為
v=2.78Uav (3)
式中,v的單位為cm/s。
1.3 超聲波測距原理
設(shè)計采用超聲波往返時間檢測法,其原理為:在傳播介質(zhì)為氣體的條件下,從超聲波發(fā)射器發(fā)出的超聲波經(jīng)氣體介質(zhì)的傳播到接收器的時間即往返時間,往返時間與氣體介質(zhì)中的聲速相乘則是聲波傳輸距離,而所測距離是聲波傳輸距離的1/2,即
式(4)中,L為待測距離;v聲為聲速(約340 m/s);t聲為脈沖波往返的時間。
2 硬件設(shè)計
2.1 主控芯片設(shè)計
設(shè)計中,主控芯片選擇的是STC89C52,因其操作簡便、功能強(qiáng)大、加密性強(qiáng),同時還具有超強(qiáng)抗干擾性能,工作溫度范圍大,且支持在線系統(tǒng)編程(ISP)。
2.2 測距模塊設(shè)計
超聲波選用頻率為40 kHz的矩形脈沖波,因這一頻率的聲波在空氣中的傳播效率最佳。HC-SR04是收發(fā)一體式超聲波傳感器,可提供0~200 cm的非接觸式距離遙測功能,其中心頻率為40.0±1.0 kHz。單片機(jī)IO口發(fā)送一個超過10 mV的高電平信號,模塊則會發(fā)送8個連續(xù)的40 kHz脈沖波,接收端開始檢測有無返回信號,同時單片機(jī)的定時器T1開始計時。當(dāng)有信號返回時,單片機(jī)外中斷INT0被觸發(fā)進(jìn)入公式計算程序,最終得出結(jié)果。
2.3 稱重模塊設(shè)計
2.3.1 模數(shù)轉(zhuǎn)換模塊
HX711是一款專為高精度稱重傳感器而設(shè)計的24位雙通道模數(shù)轉(zhuǎn)換器芯片,具有體積小、操作簡便、抗干擾性強(qiáng)的特點。其含有A、B雙通道供使用者選擇,通道內(nèi)部與其低噪聲可編程放大器相連。通道A的可編程增益為128或64,通道B增益為32。HX711與51單片機(jī)的接口與編程簡單,只需對串口通訊PD_SCK和DOUT進(jìn)行編程。
PD_SCK應(yīng)輸入25~27個不等的時鐘脈沖,根據(jù)脈沖數(shù)的不同選擇不同的通道和增益,本系統(tǒng)軟件選擇A通道128倍增益對數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
2.3.2 電阻應(yīng)變式稱重傳感器
電阻應(yīng)變式稱重傳感器的工作原理是將其內(nèi)部應(yīng)變片兩端的電壓變化與物體的重量建立線性關(guān)系。應(yīng)變片粘貼在力敏型彈性元件上,當(dāng)彈性元件受力時,應(yīng)變片產(chǎn)生相應(yīng)的形變,應(yīng)變片自身的電阻也發(fā)生變化,由此將機(jī)械信號轉(zhuǎn)換為電信號,而由于受力引起的應(yīng)變片電阻的變化與電路的電壓變化成正比,只需測出輸出電壓的數(shù)值,再經(jīng)過公式換算即可得到所測量物體的重量。
2.4 電路驅(qū)動模塊的設(shè)計
L298N是雙H橋直流電機(jī)驅(qū)動芯片,其可通過單片機(jī)的IO口直接提供信號,且輸入輸出的電壓范圍大,支持5~35 V的直流電壓輸入,能經(jīng)IN1、IN2、IN3、IN4和ENA、ENB輸出3~15 V的電壓,保證了直流電機(jī)的穩(wěn)定運(yùn)轉(zhuǎn)。在控制方面,單片機(jī)IO口對INX輸入不同的高低電平可實現(xiàn)電機(jī)的正反轉(zhuǎn)和停止的功能,IO口輸入電平與電機(jī)運(yùn)行狀態(tài)如表1所示;利用單片機(jī)IO口產(chǎn)生的不同占空比PWM信號輸入ENA、ENB兩個端口則可實現(xiàn)電機(jī)加速、減速的功能。
2.5 供電單元
電源部分如圖3所示,采用7.4 V鋰電池供電,通過L298N電機(jī)與PWM信號的輸入端口給電機(jī)提供穩(wěn)定的6 V電壓,但系統(tǒng)的大部分芯片均工作在5 V電壓下,因此需要電源模塊為系統(tǒng)提供5 V電壓。因此選用LM7805電源模塊,其能將7.4 V轉(zhuǎn)換為5 V電壓。如圖3所示,為提高輸出電壓的穩(wěn)定性,將穩(wěn)壓二極管VD2串接在LM7805的2腳與地之間,VD1作為輸出保護(hù)二極管,當(dāng)輸出電壓低于VD2的穩(wěn)壓值時,VD1導(dǎo)通,并將輸出電流旁路,以確保LM7805的輸出端不受損壞。
3 軟件設(shè)計
程序的總流程如圖4所示。軟件主要由3部分構(gòu)成,分別為:驅(qū)動程序、稱重程序和測距程序。首先,初始化定時器T0和T1的工作方式分別賦初值,T0的初值設(shè)為1 mV,T1的初值設(shè)為0。
驅(qū)動程序產(chǎn)生PWM信號以控制電機(jī)轉(zhuǎn)速,通過給定時器T0設(shè)定初值和計數(shù)器最大值100來確定PWM信號的周期。定時器T0每產(chǎn)生1次中斷計數(shù)器加1,當(dāng)計數(shù)器的數(shù)值小于給定數(shù)值時輸出高電平,反之則輸出低電平。
稱重程序根據(jù)HX711自身芯片的特點對DOUT和PD_SCK兩管腳進(jìn)行編程,先給PD_SCK串口25個時鐘脈沖,當(dāng)?shù)?5個時鐘脈沖下降沿到來時,由DOUT向單片機(jī)IO口按位寫入數(shù)據(jù),第25個脈沖寫入已讀出數(shù)據(jù)的最高位(MSB)。單片機(jī)將數(shù)據(jù)由高位到低位讀入后,再經(jīng)公式轉(zhuǎn)換得出重量。
測距程序用定時器T1計算超聲波來回的時間,當(dāng)接收端收到反射回的40 kHz脈沖波時,觸發(fā)INT0外中斷,同時T1停止計時,TH1和TL1中的數(shù)據(jù)便是測得的時間。另外,當(dāng)定時器T1溢出時觸發(fā)定時器中斷,將定時器清零以防止超聲波進(jìn)入測量盲區(qū)時造成的結(jié)果錯誤。稱重程序和測距程序處于兩個獨立的死循環(huán)之中,當(dāng)按鍵按下時,完成兩功能的轉(zhuǎn)換。
4 測試結(jié)果
4.1 稱重模塊的測試
測試選取1 kg和2 kg砝碼等不同重量物品。首先將待測物品放置在已調(diào)好的零點電子稱上進(jìn)行測量,并以該數(shù)據(jù)作為參照值。然后開機(jī),等待液晶屏上的讀數(shù)穩(wěn)定顯示0,再將被測物體放置在稱臺上,等讀數(shù)穩(wěn)定后進(jìn)行記錄,同時采用稱3次取平均值的方法進(jìn)行記錄并計算測量誤差。
誤差公式為
4.2 超聲波測距模塊測試
將一把米尺固定在水平地面作為參照值,小車放在0 cm處。將一塊擋板放在米尺的10 cm、30 cm、50 cm等測試點并讀取液晶屏顯示的讀數(shù),并采用測3次取平均值的方法進(jìn)行記錄,同時計算誤差。
4.3 車輛防撞性能測試
當(dāng)車與障礙物距離為30 cm時,車速減速為8.3 cm/s;當(dāng)兩者距離為15 cm時,車輛停止,而當(dāng)兩者距離>30 cm時,車輛正常行駛。測試通過設(shè)定不同的初始速度如:測量車遇到障礙物后的制動距離、停下時與障礙物的距離以及液晶屏顯示的距離和誤差。
結(jié)果表明,當(dāng)小車以最大速度行駛,面對前方障礙物的情況下,小車仍可安全制動,且未與障礙物發(fā)生碰撞,從而驗證了本設(shè)計的安全性。結(jié)果如表4所示。
5 結(jié)束語
設(shè)計的創(chuàng)新點是將稱重和測距功能相結(jié)合,同時通過單片機(jī)完成了對小車的驅(qū)動控制并通過稱重模塊準(zhǔn)確稱出小車載重的總重量。同時利用通過超聲波模塊測量小車與前方障礙物的距離,并使用液晶屏顯示各種運(yùn)行狀態(tài)和測量結(jié)果。從運(yùn)行情況上看,本設(shè)計運(yùn)行穩(wěn)定,可靠性高,達(dá)到了設(shè)計要求。
評論