洪騰騰 靳軒軒 武雪崢 李雪穎
(黃河交通學(xué)院,河南 武陟 454950)
為加快實(shí)現(xiàn)“碳達(dá)峰,碳中和”目標(biāo),以綠色低碳,節(jié)能環(huán)保為發(fā)展理念的交通工具,更符合時(shí)代的主題。電動(dòng)自行車(chē)、電動(dòng)汽車(chē)等綠色交通工具具有重要的環(huán)保意義。在電動(dòng)自行車(chē)生產(chǎn)過(guò)程中,須設(shè)置一個(gè)車(chē)速報(bào)警裝置,這樣可以讓人們?nèi)粘3鲂懈影踩?,?dāng)電動(dòng)自行車(chē)速度過(guò)高時(shí),通過(guò)可靠的速度檢測(cè)系統(tǒng),把危險(xiǎn)的信號(hào)及時(shí)傳遞給駕駛?cè)?,警示駕駛?cè)水?dāng)前行駛車(chē)速過(guò)高,應(yīng)當(dāng)減速慢行,注意行車(chē)安全,從而可以避免因車(chē)速過(guò)高而給人們帶來(lái)的財(cái)產(chǎn)損失和人身安全危害。
本文設(shè)計(jì)的是一款基于單片機(jī)控制的電動(dòng)自行車(chē)車(chē)速報(bào)警系統(tǒng)。該車(chē)速報(bào)警系統(tǒng)能夠設(shè)定行駛的最大速度;能夠?qū)崟r(shí)顯示電動(dòng)車(chē)的行駛速度和里程,且具有超速報(bào)警的功能。該報(bào)警系統(tǒng)采用LCD1602 顯示平均速度、瞬時(shí)速度、行駛里程以及通過(guò)鍵盤(pán)設(shè)置的最大速度(設(shè)定速度)。該報(bào)警系統(tǒng)工作時(shí),通過(guò)單片機(jī)收集霍爾傳感器采集到的脈沖信號(hào),利用計(jì)數(shù)器記數(shù)、定時(shí)器記錄時(shí)長(zhǎng),經(jīng)單片機(jī)的分析計(jì)算,將行駛里程、平均速度、瞬時(shí)速度送給LCD 顯示,如果當(dāng)前速度超過(guò)設(shè)定速度,報(bào)警指示燈會(huì)亮起,蜂鳴器發(fā)出警報(bào)[1]。同時(shí)該系統(tǒng)能夠根據(jù)4*4 矩陣鍵盤(pán)設(shè)定行駛的最大速度,當(dāng)電動(dòng)自行車(chē)行駛的瞬時(shí)速度大于或者等于預(yù)先設(shè)定的最大速度時(shí),蜂鳴器會(huì)發(fā)出報(bào)警聲音,報(bào)警指示燈亮起,以此來(lái)提示駕駛?cè)水?dāng)前速度過(guò)高,應(yīng)當(dāng)減速慢行,通過(guò)報(bào)警電路把速度過(guò)高的危險(xiǎn)信號(hào)傳遞給駕駛?cè)耍抉{駛?cè)俗⒁庑熊?chē)安全。
該系統(tǒng)框圖如圖1 所示。
圖1 系統(tǒng)框圖
系統(tǒng)設(shè)計(jì)以STC89C52 單片機(jī)作為電動(dòng)自行車(chē)車(chē)速報(bào)警系統(tǒng)的控制核心,采用霍爾傳感器來(lái)檢測(cè)外部輸入信號(hào)[2],采集一定時(shí)間間隔內(nèi)的脈沖信號(hào),根據(jù)電動(dòng)自行車(chē)自身車(chē)輪尺寸,經(jīng)過(guò)STC89C52 單片機(jī)對(duì)采集的脈沖信號(hào)進(jìn)行分析處理,最終在LCD1602 上面顯示電動(dòng)自行車(chē)的平均速度、瞬時(shí)速度、設(shè)定速度以及行駛里程,如果當(dāng)電動(dòng)自行車(chē)行駛的速度大于或者等于設(shè)定速度,該報(bào)警系統(tǒng)會(huì)發(fā)出報(bào)警警示(報(bào)警指示燈LED 亮起,蜂鳴器發(fā)出警示聲音)。
測(cè)速模塊主要是由LM393 和3144 霍爾傳感器高度集成的。它具有電源和信號(hào)指示燈,能夠用來(lái)檢查是否通電和是否有信號(hào)輸入。該模塊無(wú)觸發(fā)時(shí),輸出高電平,有觸發(fā)時(shí),輸出低電平。該模塊穩(wěn)定性強(qiáng),準(zhǔn)確度高,能夠快速響應(yīng)。LM393(電壓比較器)能將霍爾傳感器輸出的波形直接轉(zhuǎn)化成TTL 高低電平,單片機(jī)的外中斷可直接對(duì)它進(jìn)行計(jì)數(shù)。
2.1.1 測(cè)速原理
當(dāng)電動(dòng)自行車(chē)車(chē)輪中的磁鐵經(jīng)過(guò)霍爾傳感器時(shí),就會(huì)產(chǎn)生一個(gè)脈沖信號(hào)。單片機(jī)通過(guò)記錄一定時(shí)間內(nèi)的脈沖數(shù)量,根據(jù)電動(dòng)自行車(chē)的車(chē)輪大小,可以計(jì)算出該段時(shí)間內(nèi)的瞬時(shí)速度、行駛里程。通過(guò)對(duì)行駛里程的累加,時(shí)間基數(shù)的累加,可以計(jì)算出平均速度?;魻杺鞲衅鳒y(cè)量速度的示意圖如圖2 所示。
圖2 測(cè)速示意圖
2.1.2 速度和里程的計(jì)算方法
t 時(shí)間基數(shù)內(nèi)記錄脈沖數(shù)量如圖3 所示。
圖3 t 時(shí)間基數(shù)內(nèi)記錄脈沖數(shù)量
當(dāng)兩個(gè)霍爾傳感器同時(shí)檢測(cè)到第一個(gè)脈沖信號(hào)時(shí),定時(shí)器開(kāi)始定時(shí),兩個(gè)計(jì)數(shù)器重零開(kāi)始計(jì)數(shù),當(dāng)定時(shí)到0.5s 之后,根據(jù)記錄脈沖數(shù)量,計(jì)算出電動(dòng)自行車(chē)轉(zhuǎn)動(dòng)的圈數(shù),進(jìn)而可以得到該段時(shí)間內(nèi)行駛的速度以及里程。
該報(bào)警裝置是由蜂鳴器、電阻、PNP 以及發(fā)光二極管組成的[3]。當(dāng)車(chē)速超過(guò)設(shè)定值時(shí),單片機(jī)P2.7 為低電平,三極管導(dǎo)通,使蜂鳴器接通,發(fā)出滴滴長(zhǎng)鳴聲;LED 接通亮起。具體接線(xiàn)圖如圖4 所示。
圖4 報(bào)警電路圖
軟件(程序)是硬件執(zhí)行的“動(dòng)力”,一個(gè)完整的設(shè)計(jì)系統(tǒng)軟件和硬件必不可少的。本設(shè)計(jì)共有脈沖信號(hào)采集、鍵盤(pán)、報(bào)警、顯示、控制器五大模塊組成。并對(duì)這些模塊進(jìn)行編程,分別將編寫(xiě)好的程序輸入到控制器模塊(STC89C52 單片機(jī))中,只有控制器模塊有條不紊的執(zhí)行程序,才能滿(mǎn)足本次設(shè)計(jì)的需求。
本設(shè)計(jì)軟件編程用的是Keil 軟件,該軟件廣泛應(yīng)用于學(xué)習(xí)和工作中。這個(gè)軟件系統(tǒng)包括了C 編譯器、宏匯編、連接器、庫(kù)管理和仿真調(diào)試器等,功能非常齊全,該軟件能夠把高級(jí)的C語(yǔ)言轉(zhuǎn)化成單片機(jī)能夠是識(shí)別的低級(jí)語(yǔ)言,轉(zhuǎn)化效率高,能幫助開(kāi)發(fā)者理解相關(guān)程序的執(zhí)行過(guò)程[4]。
本次設(shè)計(jì)主程序的順序是:首先對(duì)單片機(jī)的各個(gè)引腳進(jìn)行初始化,從鍵盤(pán)獲取數(shù)據(jù)后,判斷按鍵是否按下,如果按下,則判斷按下的是否是數(shù)字,如果是數(shù)字并記錄數(shù)字,如果不是數(shù)字,繼續(xù)判斷按下的是“確定”或者“取消”,如果是“確定”則獲得設(shè)定速度,如果是“取消”則清除數(shù)字。然后定時(shí)器開(kāi)始定時(shí),外中斷進(jìn)行計(jì)數(shù),定時(shí)時(shí)間到,計(jì)算出速度和里程,并比較速度大小,如果超速則報(bào)警,反之則不報(bào)警。最后將速度和里程信息送到LCD 顯示,判斷車(chē)輪是否轉(zhuǎn)動(dòng),如果車(chē)輪轉(zhuǎn)動(dòng)則重新定時(shí)計(jì)數(shù),如車(chē)輪停止轉(zhuǎn)動(dòng)則結(jié)束。系統(tǒng)主流程圖如圖5 所示。
圖5 系統(tǒng)主程序流程圖
3.2.1 定時(shí)器中斷服務(wù)程序流程圖
本設(shè)計(jì)通過(guò)定時(shí)器T0,定時(shí)0.5 秒后,對(duì)INT0 和INT1 記錄脈沖的數(shù)量進(jìn)行處理,分別計(jì)算出瞬時(shí)速度、0.5 秒內(nèi)的行駛里程,累加里程,累加時(shí)間基數(shù),接著對(duì)t 時(shí)刻和t-1 時(shí)刻的速度進(jìn)行濾波得到傳感器的速度。如圖6 所示。
圖6 定時(shí)器中斷流程圖
3.2.2 脈沖信號(hào)輸入模塊流程圖
電動(dòng)自行車(chē)啟動(dòng)后,車(chē)輪開(kāi)始轉(zhuǎn)動(dòng),霍爾傳感器產(chǎn)生的脈沖信號(hào)經(jīng)過(guò)濾波電路輸入到單片機(jī)。單片機(jī)的INT0 和INT1 記錄脈沖信號(hào)的數(shù)量,定時(shí)器定時(shí)時(shí)間到,計(jì)算出瞬時(shí)速度、累加里程以及累加時(shí)間基數(shù)。如果電動(dòng)自行車(chē)沒(méi)有停止,重新定時(shí)計(jì)數(shù)。當(dāng)電動(dòng)自行車(chē)停止轉(zhuǎn)動(dòng),脈沖信號(hào)采集結(jié)束。其流程圖如圖7 所示。
圖7 脈沖信號(hào)采集流程圖
3.2.3 報(bào)警模塊流程圖
當(dāng)電動(dòng)自行車(chē)的行駛速度大于或者等于預(yù)先設(shè)定的最大速度時(shí),通過(guò)判斷Bi 的電平對(duì)信號(hào)進(jìn)行控制,當(dāng)Bi 為低電平時(shí),蜂鳴器會(huì)發(fā)出滴滴長(zhǎng)鳴聲,LED 會(huì)亮起;當(dāng)Bi 為高電平時(shí),則進(jìn)入初始化狀態(tài)。具體如圖8 所示。
圖8 報(bào)警電路流程圖
針對(duì)電動(dòng)自行車(chē)車(chē)速問(wèn)題,設(shè)計(jì)了一款利用霍爾傳感來(lái)檢測(cè)脈沖信號(hào)對(duì)電動(dòng)自行車(chē)行駛過(guò)程中速度實(shí)時(shí)監(jiān)測(cè)系統(tǒng)。該系統(tǒng)通過(guò)STC89C52 對(duì)脈沖信號(hào)進(jìn)行分析和計(jì)算,最終在LCD 液晶顯示屏上顯示出平均速度、瞬時(shí)速度以及行駛里程。本設(shè)計(jì)系統(tǒng)性能穩(wěn)定、成本低,能夠滿(mǎn)足人們?nèi)粘?duì)電動(dòng)自行車(chē)超速報(bào)警的基本需求,而且此測(cè)速報(bào)警系統(tǒng)可以在很多速度監(jiān)控的場(chǎng)合使用,具有非常廣泛的應(yīng)用前景。