【前言】
年前趕在取消汽車購置稅優惠前提了新車,此前兢兢業業服役9年的老夏利車正式退居2線,正好我可以拿來練練手。
老夏利車沒有發動機轉速表,一直以來都是憑感覺、聽聲音估計發動機的轉速,一直想直觀的看到轉速參數,自己又剛撿起了
51單片機的編程,說干就干,百度了一下夏利車的資料,我的這輛7101電噴,采用的發動機是TJ376QE型,具備ECU(電子控制單元,又稱“行車電腦”)控制系統的。
這個就是ECU了。
ECU各端口功能說明,這下有戲了,本著先易后難的原則,此次DIY就只弄測量發電機轉速和測量車內溫度兩個功能。本來想從分電器的“轉速及旋轉角度傳感器”上取轉速信號,后來
拆下ECU后實際測量,發現此信號電平太低僅0.4~0.5V,要增加信號放大級,這樣會使電路變的復雜。后來又想到取點火信號,實際測量點火信號在
14V左右,OK,就用它了!
點火信號電路圖。
【轉速表電路圖】
為了提高開發的成功率,先對電路進行了仿真:
轉速表電路圖。
仿真時用信號發生器模擬點火脈沖信號:
電路仿真運行圖。
單片機U1采用AT89C2051,為了節約IO口方便以后添加功能,LED顯示部分使用了7段譯碼器U2
74LS47,如果只做轉速和測溫的話U2其實可以省略掉!LED采用7x4共陽數碼管。位驅動Q1~Q4用任何小功率NPN管就行,測量溫度U3用的
DS18B20,SW1是轉速/測溫切換開關,其它就是單片機的復位及時鐘電路,就不多贅述了,硬件還是比較簡單吧?
硬件說完現在說說軟件,用了定時器T0做系統5ms節拍發生器,測量轉速就簡單的用計數器T1來數脈沖,為什么不用更精確的測量脈寬的方式呢?因為測量發
動機轉速精確到個位數是沒必要的,我采用的方式是,1/2秒讀1次T1的計數值,也就是1/2秒發動機的點火次數,我的老夏利是三缸四沖程的發動機,那么
點火3次意味著曲軸旋轉了2圈,這樣就得到轉速公式“
轉速/Min=1/2秒T1的計數值×120×2÷3",化簡后就是”轉速/Min=1/2秒T1的計數值×80“。
這樣我的轉速表精度也就是每分鐘±80轉的樣子,LED的顯示內容1/2秒刷新一次,實際用下來感覺還馬馬虎虎,也算靈敏。
18B20就不多說了,我是直接在本壇單片機區copy的的代碼用的:)
用1個開關接在單片機的P3.0口作為轉速及溫度的切換選擇。
【制作過程】
我是用洞洞板焊的整個電路,又忘記給電路板拍照了,就不去拆儀表盤了。
夏利車的ECU在副駕駛座儲物箱的上方,拆開后就看見神器ECU了:
找出點火信號線,接上,(不好意思,手機拍的,都比較糊)不過就2根線
下面拆儀表臺:
正面
背面
安裝數碼管:
單片機洞洞用3M的雙面膠粘在儀表盤的底部,LED用電腦的硬盤排線引到洞洞板上。
電源就用儀表盤上的12V電,然后就組裝回車上。試試效果吧,插鑰匙-點火~~~
來了……
顯示轉速
顯示車內溫度
【總結】
在DIY的過程中,因為有了仿真的步驟,所以進行的很順利,只是在搜索資料的時候,發現TAOBAO就有這樣的東東在賣,也不貴,80元的樣子。
使我差點放棄了
還有就是拆卸汽車的ECU并加接線路有一定的風險,我本人是在淘汰下來的老車上做實驗練手的,各位想仿制的TX把自己的汽車ECU整成”磚頭“
的話,本人慨不負責喲