Last update: Jun 24 2017

Motor Temperature Gauge

The engine coolant temperature gauge is driven by a microcontroller circuit so that it displays an interesting temperature range for the electric motor.

combination meter

Liar Liar Pants on Fire

The existing coolant temperature gauge does not faithfully report temperature but instead responds to the coolant temperature sensor for three ranges - low, normal and high. The relationship between voltage and needle position is shown in the graph below. The needle remains at a fixed position (40%) for a range of normal internal combustion engine temperatures. The needle moves slowly in the low range and quickly in the high range.

2006 Impreza Coolant Temperature Gauge 2006 Impreza Coolant Temperature Gauge

Microcontroller Circuit

To make the gauge interesting for electric motor temperatures, a custom microcontroller circuit is used. The circuit reads temperature from a thermistor mounted in one of the electric motor exhaust ports. The microcontroller converts the temperature to a voltage, compensating for the shape of the curve in the graph above so that the needle moves linearly with temperature. The motor manufacturer specifies that potential overheating begins at 110°C (230°F), but the motor never gets anywhere near that hot. The gauge scale is calibrated to 15°C (59°F) at the C position to 75°C (167°F) at the H position. This range was selected so that on a hot summer day the needle reaches the 2/3 tick mark, and on a cold winter day it moves enough to verify it is working.

Arduino Temperature Gauge Driver Arduino Temperature Gauge Driver NTCALUG02A103FL Thermistor Thermistor

A ten turn 2 watt 500 ohm potentiometer takes the place of the coolant temperature sensor in the wiring to the gauge. The circuit rotates the potentiometer with a small gear motor to set the desired voltage at the gauge input.

Potentiometer and Stepper Motor

Source code is here.