本文介紹的速度與裡程表設計以單片機和光電傳感器為核心。傳感器將不同車速轉變成的不同頻率的脈衝信號輸入到單片機進行控制與計算,再採用LED模塊進行顯示,使得電動自行車的速度與裡程數據能直觀的顯示給使用者。
本文引用地址:http://www.eepw.com.cn/article/161531.htm系統概述
本系統由信號預處理電路、單片機AT89C2051、系統化LED顯示模塊、串口數據存儲電路和系統軟體組成。其中信號預處理電路包含信號放大、波形變換和波形整形。對待測信號進行放大的目的是降低對待測信號的幅度要求;波形變換和波形整形電路則用來將放大的信號轉換成可與單片機相連的TTL信號;通過單片機的設置可使內部定時器T1對脈衝輸入引腳T0進行控制,這樣能精確地算出加到T0引腳的單位時間內檢測到的脈衝數;設計中速度顯示採用LED模塊,通過速度換算得來的裡程數採用I2C總線並通過E2PROM來存儲,既節省了所需單片機的口線和外圍器件,同時也簡化了顯示部分的軟體編程。
系統的原理框圖如圖1所示。
圖1 系統的原理框圖
工作原理
該設計能實時地將所測的速度與累計裡程數顯示出來,主要是將傳感器輸入到單片機的脈衝信號的頻率(傳感器將不同車速轉變成不同頻率的脈衝信號)實時地測量出來,考慮到信號的衰減、幹擾等影響,在信號送入單片機前應對其進行放大整形,然後通過單片機計算出速度和裡程,再將所得的數據存儲到串口數據存儲器,並由LED顯示模塊交替顯示所測速度與裡程。本設計的裡程數的算法是一種大概的算法(假設在一定時間內自行車是勻速行進,平均速度與時間的乘積即為裡程數)。
設計時,應綜合考慮測速精度和系統反應時間。本設計用測量脈衝頻率來計算速度,因而具有較高的測速精度。在計算裡程時取了自行車的理想狀態。實際中,誤差控制在幾米之內,相對於整個裡程來說不是很大。為了保證系統的實時性,系統的速度轉換模塊和顯示數據轉BCD碼模塊都採用快速算法。另外,還應儘量保證其他子模塊在編程時的通用性和高效性。本設計的速度和裡程值採用6位顯示,並包含兩個小數位。
系統的硬體設計
脈衝發生源
本設計採用了ST1101紅外光電傳感器,進行非接觸式檢測。當有物體擋在紅外光電發光二極體和高靈敏度的光電電晶體之間時,傳感器將會輸出一個低電平,而當沒有物體擋在中間時則輸出為高電平,從而形成一個脈衝。
該系統在自行車後輪的軸處保持著與輪子旋轉切面平行的方向延伸附加一個鋁盤,在這個鋁盤的邊沿處挖出若干個圓形過孔,把傳感器的檢測部分放在圓孔的圓心位置。每當鋁盤隨著後輪旋轉的時候,傳感器將向外輸出若干個脈衝。把這些脈衝通過一系列的波形整形成單片機可以識別的TTL電平,即可算出輪子即時的轉速。
鋁盤的圓孔的個數決定了測量的精度,個數越多,精度越高。這樣就可以在單位時間內儘可能多地得到脈衝數,從而避免了因為兩個過孔之間的距離過大,而車子正好在過孔之間或者是在下個過孔之前停止了,造成較大的誤差。
本設計在鋁盤過孔的設計上採用11個過孔,從而留下了10個同等的間距。這樣在以後的軟體設計中能夠較為方便的計算出速度裡程。脈衝發生源的硬體結構圖如圖2所示。
圖2 脈衝發生源硬體結構圖(左為正視圖,右為側視圖)