Last update: Nov 20 2016

Motor Temperature Gauge

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

combination meter

Liar Liar Pants on Fire

The exisiting 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 useful 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 program code 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 scale is 10°C (50°F) at the C position to 110°C (230°F) at the H position.

Arduino Temperature Gauge Driver Arduino Temperature Gauge Driver 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 send the desired voltage to the gauge.

Potentiometer and Stepper Motor

Source code is here.