基于單片機與光電傳感器的電動(dòng)自行車(chē)速度/里程表設計
從保護環(huán)境和經(jīng)濟條件許可等因素綜合來(lái)看,電動(dòng)自行車(chē)目前乃至今后都有著(zhù)廣闊的發(fā)展空間。目前市面上電動(dòng)自行車(chē)的速度表和里程表都是機械的,看起來(lái)不夠直觀(guān)與方便。如果能用led直接顯示出來(lái)里程數或速度值,就可節省用戶(hù)的時(shí)間及精力處理自行車(chē)行進(jìn)過(guò)程中的突發(fā)事件。
本文引用地址:http://dyxdggzs.com/article/170673.htm本文介紹的速度與里程表設計以單片機和光電傳感器為核心。傳感器將不同車(chē)速轉變成的不同頻率的脈沖信號輸入到單片機進(jìn)行控制與計算,再采用led模塊進(jìn)行顯示,使得電動(dòng)自行車(chē)的速度與里程數據能直觀(guān)的顯示給使用者。
系統概述
本系統由信號預處理電路、單片機at89c2051、系統化led顯示模塊、串口數據存儲電路和系統軟件組成。其中信號預處理電路包含信號放大、波形變換和波形整形。對待測信號進(jìn)行放大的目的是降低對待測信號的幅度要求;波形變換和波形整形電路則用來(lái)將放大的信號轉換成可與單片機相連的ttl信號;通過(guò)單片機的設置可使內部定時(shí)器t1對脈沖輸入引腳t0進(jìn)行控制,這樣能精確地算出加到t0引腳的單位時(shí)間內檢測到的脈沖數;設計中速度顯示采用led模塊,通過(guò)速度換算得來(lái)的里程數采用i2c總線(xiàn)并通過(guò)e2prom來(lái)存儲,既節省了所需單片機的口線(xiàn)和外圍器件,同時(shí)也簡(jiǎn)化了顯示部分的軟件編程。
系統的原理框圖如圖1所示。

圖1 系統的原理框圖
工作原理
該設計能實(shí)時(shí)地將所測的速度與累計里程數顯示出來(lái),主要是將傳感器輸入到單片機的脈沖信號的頻率(傳感器將不同車(chē)速轉變成不同頻率的脈沖信號)實(shí)時(shí)地測量出來(lái),考慮到信號的衰減、干擾等影響,在信號送入單片機前應對其進(jìn)行放大整形,然后通過(guò)單片機計算出速度和里程,再將所得的數據存儲到串口數據存儲器,并由led顯示模塊交替顯示所測速度與里程。本設計的里程數的算法是一種大概的算法(假設在一定時(shí)間內自行車(chē)是勻速行進(jìn),平均速度與時(shí)間的乘積即為里程數)。
設計時(shí),應綜合考慮測速精度和系統反應時(shí)間。本設計用測量脈沖頻率來(lái)計算速度,因而具有較高的測速精度。在計算里程時(shí)取了自行車(chē)的理想狀態(tài)。實(shí)際中,誤差控制在幾米之內,相對于整個(gè)里程來(lái)說(shuō)不是很大。為了保證系統的實(shí)時(shí)性,系統的速度轉換模塊和顯示數據轉bcd碼模塊都采用快速算法。另外,還應盡量保證其他子模塊在編程時(shí)的通用性和高效性。本設計的速度和里程值采用6位顯示,并包含兩個(gè)小數位。
系統的硬件設計
脈沖發(fā)生源
本設計采用了st1101紅外光電傳感器,進(jìn)行非接觸式檢測。當有物體擋在紅外光電發(fā)光二極管和高靈敏度的光電晶體管之間時(shí),傳感器將會(huì )輸出一個(gè)低電平,而當沒(méi)有物體擋在中間時(shí)則輸出為高電平,從而形成一個(gè)脈沖。
該系統在自行車(chē)后輪的軸處保持著(zhù)與輪子旋轉切面平行的方向延伸附加一個(gè)鋁盤(pán),在這個(gè)鋁盤(pán)的邊沿處挖出若干個(gè)圓形過(guò)孔,把傳感器的檢測部分放在圓孔的圓心位置。每當鋁盤(pán)隨著(zhù)后輪旋轉的時(shí)候,傳感器將向外輸出若干個(gè)脈沖。把這些脈沖通過(guò)一系列的波形整形成單片機可以識別的ttl電平,即可算出輪子即時(shí)的轉速。
鋁盤(pán)的圓孔的個(gè)數決定了測量的精度,個(gè)數越多,精度越高。這樣就可以在單位時(shí)間內盡可能多地得到脈沖數,從而避免了因為兩個(gè)過(guò)孔之間的距離過(guò)大,而車(chē)子正好在過(guò)孔之間或者是在下個(gè)過(guò)孔之前停止了,造成較大的誤差。
本設計在鋁盤(pán)過(guò)孔的設計上采用11個(gè)過(guò)孔,從而留下了10個(gè)同等的間距。這樣在以后的軟件設計中能夠較為方便的計算出速度里程。脈沖發(fā)生源的硬件結構圖如圖2所示。

圖2 脈沖發(fā)生源硬件結構圖(左為正視圖,右為側視圖)
評論