工程師吳畏 發表於 2018-09-21 10:12:00
現在,很多人都把騎自行車作為一項鍛鍊身體的運動項目,如果在自行車上加裝一個裡程速度表,就可以知道自己騎車的速度和行程,從而很好地控制運動量。本文介紹一種用單片機製作的自行車裡程速度表。裡程和速度顯示可進行切換,採用三位數碼管顯示,最大可顯示裡程為99.9km。顯示最高速度可為99.9km/h。該裡程速度表也可以用在電動自行車和速度不超過100km/h的摩託車上。
一、電路原理
電路如圖1所示。由檢測傳感器、單片機電路和數碼顯示電路等組成。
檢測傳感器由永久磁鐵和開關型霍爾集成電路UGN3020.組成。
UGN3020由霍爾元件、放大器、整形電路及集電極開路輸出電路等組成。
其功能是把磁信號轉換成電信號。圖2a是其內部框圖。霍爾元件H為磁敏元件,當垂直於霍爾元件的磁場強度隨之變化時,其兩端的電壓就會發生變化,經放大和整形後,即可在③腳輸出脈衝電信號。其工作特性如圖2b所示。由於有一定的磁滯效應。可保證開關無抖動。Bop為工作點「開」的磁場強度,Brp為釋放點「關」的磁場強度。永久磁鐵固定在車輪的輻條上,UGN3020固定在車輪的叉架上。
檢測傳感器的工作原理如下:車輪每轉一周,磁鐵經過UGN3020一次,其③腳就輸出一個脈衝信號。UGN3020輸出的脈衝信號作為單片機AT89C2051的外中斷信號。從P3.2口輸入。單片機測量脈衝信號的個數和脈衝周期。根據脈衝信號的個數計算出裡程,根據脈衝信號的周期計算出速度並送數碼管顯示。Sl用來進行裡程和速度顯示的切換,在初始狀態下顯示的是速度。數碼管DS1~DS3、VT1~VT3、R4~R13等組成顯示電路。使用共陽數碼管。P3.3~P3.5為數碼管的動態掃描位驅動。P1.0~P1.6作數碼段碼輸出。
二、程序設計
程序用C語言編寫,由主程序、外中斷O服務程序、11D中斷服務程序、延時子程序等模塊組成。主程序主要完成程序初始化和鍵盤處理。
外部中斷0服務程序由測量、計算、讀數等部分組成,TO中斷服務程序由計時、動態掃描顯示、自行車停車判斷等部分組成。
從P3.2口輸入的脈衝信號作為外中斷O的中斷請求信號。採用沿觸發方式。在測量速度時,由於車輪轉動脈衝信號的頻率很低,不適宜使用計數的方式進行測量,所以採用測脈衝周期的方法進行測量。用脈衝信號系統來控制計時信號,通過計時數計算出脈衝周期,用車輪的周長除以周期便可得到自行車的行駛速度。在測量裡程時,用脈衝信號個數乘以車輪的周長便可獲得行駛裡程。需要說明的是:脈衝信號周期和個數是同時測量的。要做的只是用按鈕開關Sl切換顯示。
本文的程序是針對車輪直徑為26英寸的自行車編寫的。
對於其他規格的自行車。
只要改寫程序spm=14904(常量1),n和sPIN=207(常量2)×c即可。為了避免使用浮點數。運算結果長度是以百米為單位的,數據讀出時,在第三位數加小數點就換算成千米了。為方便讀者製作,現列出各種規格的輪徑和輪周長、程序常量的對應值見附表,供參考。
打開APP閱讀更多精彩內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴