*** UPDATE: v3.6 includes fixes to time and RTC time to display before GPS signal lock ***
*** NEXT: hook up and calibrate the outside temp sensor ***
This Arduino project uses a 20x4 LCD I installed in place of my stock speedometer to display useful information similar to this:
▀▀█ ▀▀█ 12:34am
█▀▀ ▀▀█ 12.3v NNE
█▄▄ ▄▄█ 200°F 86°F
- The speed, time, and heading are all updated by the GPS module.
- The battery voltage is taken directly from the car battery using a voltage divider to convert 0-15VDC in to 0-5VDC out.
- The engine temperature is calculated from a 0-5VDC input from the stock ECT (engine coolant temperature) sensor. This information is also used to cycle the electric cooling fan on at 200 deg F and off at 190 deg F using a 5V coil relay controlling a heavy-duty solenoid under the hood.
- The outside temperature is taken from a DS18B20 serial temp probe mounted at the front of the vehicle behind the bumper cover.
- The odometer and tripmeter values are stored in the (NV)RAM of an RTC module. A momentary pushbutton reset switch is mounted in the stock location to reset the trip meter.
Portions of this program were copied from or inspired by the following:
Big LCD number font:
Overall program structure and odometer/tripmeter coding:
Kurt Schulz' Scooterputer
Tom Torfs' 8 bit converter macro:
Arduino UNO R3
SainSmart GPS Module
Antenna GPS 3V Magnetic Mount SMA
Seeed STR104B2P Protoshield
SainSmart 4-Channel 5V Relay Module
Real-time Clock (RTC)