用Arduino打造LED汽車油量表

三月 29, 2017
Facebook
Twitter
將車內的類比油量表換成更精確的Arduino數位油量表

Arduino油量表

幾個月前,我的1974年Dodge Dart撞進了坑洞,然後油量表馬上跑到了「E」的位置。在那一瞬間,我以為我的油都漏光了!後來我的岳父建議我倒車再撞進坑洞一次來把油表修好。但沒有用。
我找了一些非正廠零件,但沒有一個能讓我滿意。它們通常是3位數的7段式顯示,上頭從1到100的數字代表著油箱裡的油量。這種風格讓我想起90年代初期那些過度數位化的汽車儀表。
我當時已經放了一個在線上購物車中,準備按下「確認購買」,同時犧牲50美元和車子的類比魂,這時我突然想到:「我不是一位Maker嗎?」所以我登出網站,決定自己做一個比現成的更便宜、更好用的油量表。
早期的車輛通常採用可以測量電阻的簡單類比電路油量表。我們可以用Arduino來測量這個電阻!
PARTS

  • 藍色LED (1) 
  • 紅色LED (4) 
  • 各類電阻 (6) 
  • Arduino或替代機型 (1)
TOOLS

  • 1/16″鑽頭
  • 電鑽或鑽床
  • 焊鐵

步驟1

  • 確認你的油量表是類比式的!從數位時代開始(約80年代起算),多數的油量表都由車上的電腦來處理。(建議:參考使用手冊的油量表電路圖。照片中是我的。)
  • 確認訊號傳輸器運作正常!多數的油量表問題都出在訊號傳輸器(基本上就是一個安裝在油箱浮筒臂上的電位器)故障。但我的車子不是這個問題。加油時的電阻讀數顯示我的訊號傳輸器運作正常,在沒油時是70歐姆,而加滿時是10歐姆,符合使用手冊上的描述。

步驟2

  • 取下儀錶板。查閱維修手冊或網路上的資訊來找出「最適合你的車款」的拆解方法,可以省下很多時間和精力,因為不同車款西的做法差異很大。
  • 打開儀錶板。手冊裡可能不會寫這要怎麼做。只要小心打開,不要把螺絲弄丟!
  • 取出並拆解油量表。我的油量表是由兩個螺絲固定在印刷電路板上並通電。取下後把鉚釘卸下,並捨棄面板之外的其他零件。千萬別損壞面板。

步驟3

  • 在LED面板上鑽孔。鑽孔以裝LED,請務必讓它們在面板組裝後可以顯示!完成後,用錐子將記號鑿凹,讓鑽頭不會滑動,接著鑽下去。(孔的位置要精確,但不必完美。參見照片。)

步驟4

  • 組裝LED陣列:方法1用熱熔膠將LED固定在面板背面。我用了4顆紅色和一顆藍色的LED。
  • 將所有LED的接地導線焊接在一起,接著將電阻的腳焊接到每個LED的正極導線上。紅色LED我使用100歐姆電阻,而藍色歐姆使用220歐姆,因為它的亮度高得多。
  • 將電阻的另一接腳連接到長度足以到達Arduino預計安裝處的導線。接著用相同方法再連接一條LED的接地導線。
  • 用熱縮套管或膠帶包覆所有裸露的導線。
  • 跳到第6步。

步驟5

  • 組裝LED陣列:方法2我後來發現方法1對我而言太脆弱了,因為其中一條LED導線脫落。以下是更耐用的版本。我提供這兩種方法讓你斟酌使用。
  • 用熱熔膠將LED固定在面板背面。我用了4顆紅色和一顆藍色的LED。
  • 將洞洞板放在LED導線上面。我手邊沒有洞洞板,所以自己刻出這塊簡單的板子來用。如果有洞洞板會簡單很多。同時可以考慮將電阻也裝到這塊板子上,但要確定最後能裝上儀錶板!
  • 像前一步那樣將LED、電阻和電路焊接在一起。要記得,如果沒有將電阻裝到板子上(像我就忘記了),插入Arduino之前還是要先接好!
  • 大方使用熱熔膠將板子固定在面板背面,同時保護連接點。

步驟6

  • 編寫程式/工作臺測試1
  • 如圖所示,將電路組裝於麵包板上。(建議:LED面板完成後,把它加入成為一部分。)
  • 接上歐姆值接近的電位器做為車輛訊號傳輸器的替身(例如我的是100歐姆)。只要用中間腳位和一個外側腳位即可。
  • 在+5和0腳位之間接上一個數值和電位器接近的電阻(例如我的是100歐姆)。

步驟7

圖片

  • http://bit.ly/vqEvq9下載程式碼,並載入Arduino。如果你的車在空油箱時是70歐姆,加滿是10歐姆,就可以跳過這個步驟剩下的部份!
  • 將電位器設定在油箱滿的時候訊號傳輸器的電阻值(例如我的是10歐姆)。
  • 用USB接上Arduino後,在電腦上打開序列顯示器,接著寫下讀數。(會介於1和1028之間。)
  • 將電位器設定在油箱空的時候訊號傳輸器的電阻值(例如我的是70歐姆)。
  • 從空油箱讀數減去滿油箱讀數,就會得到要處理的範圍。接著把這個範圍除以油量表上的LED數量,然後在紙上算出每個LED腳位的號碼。我在計算時電路接錯了,但後來使用以下數字來更正。我的計算:106滿 – 385空 = 範圍279 / LED數量 = 55 | 385 – 354 = LED1 | 353 – 292 = LED2 | 291 – 230 = LED3 | 229 – 168 = LED4 | 167 = 0 LED5
  • 你的數字插入程式碼中,讓它看起來像這樣:if ((analogValue>0) && (analogValue<354) ) { // digitalWrite(led1, HIGH); 接著再次載入程式碼。

步驟8

  • 來回轉動電位器的旋鈕,確認LED陣列會隨著電阻的變化來回開關。
  • 成功的話,就可以安裝了!

步驟9

  • 接上訊號傳輸器。
  • 從使用手冊上找出油量訊號傳輸器的接線。以歐姆計確認。
  • 依照第6步的電路圖焊接電阻和+5及0腳位。請確認線路長度足夠連接到Arduino的安裝位置。

步驟10

  • 安裝Arduino
  • 找個安全的地方,用雙面膠將它固定好。
  • 在車上的主動電路(只在轉動鑰匙後通電的電路)焊接一條線,連到Arduino上標為V或9V的腳位。
  • 在車上良好的接地點焊接一條線,連到Arduino上標為GND的腳位,就在前述的腳位旁邊。
  • 將第9步接上的2條線分別連到5V和0號類比腳位。
  • 將LED陣列的線連接到2至6號數位腳位和GND。電路連接方式有一個好記的方法,就是Arduino還在工作臺上時用熱熔膠將正極導線做成臨時插頭。(如照片所示。)

步驟11

  • 實際測試。
  • 轉動車鑰匙後,就可以看到新的油量表開始運作了!
  • 建議你將車子開出去兜一圈,確定油量表運作正常後,再永久固定。
  • 我自己也做了測試,發現運作正常,除了車子在跑的時候。怎麼回事?我不知道為什麼會這樣,但發現了解決方法,也就是為Arduino裝上第二組接地(見下一步,第3張照片)

步驟12

  • 重組儀表板。
  • 將油量表面板放在從正面可以清楚看到的地方,然後用熱熔膠固定。
  • 在背面找一個孔,或自己鑽一個,來連接電路。我使用的是一個閒置的燈泡座。
  • 重新將儀表板組裝起來。
  • 將儀表板裝回車上。
  • 為Arduino找一個更永久的位置,並再次將所有電路接到正確的腳位。
  • 將USB插頭的金屬部位接地。我使用一個螺絲和2個螺帽(如第三張照片)

步驟13

  • 完成。
  • ……這個專題的難度可能要改成「困難」,但我不想低估大家。但這對我而言真的算困難。
  • 專題用的程式碼很基礎。我對軟體的重視遠低於硬體。如果有人想幫忙改進,我會很感激。但目前的程式碼是堪用的。
  • 另外,我最後會用這臺Arduino的Atmega晶片和蝕刻板來取代Arduino。到時候這個專題就算真正完成了。
  • 加油!記得要在最左邊的LED開始閃爍「之前」去加油。
(譯:屠建明)
原文
Social media & sharing icons powered by UltimatelySocial