The Colour Temperature Display shows the temperature by mapping it temperature to position on a colour wheel. Multiple discrete red, green and blue LEDs combine to create a vivid colour display over the temperature range of 15°C (blue) to 25°C (red).
Temperature is read from an internal sensor and its 15- 25°C temperature range is converted to a corresponding hue (using HSI colour model) that spans from 0° (red) to 240° (blue) of the colour wheel. The unit is housed in a custom enclosure made from copper-clad fibre board and translucent plexiglass.
The electronics consist of an Arduino Nano on a circuit board with discrete transisitor drivers controlling three sets of three red, green and blue LEDs. A DS18B20 one-wire temperature sensor provides accurate temperature readings that are converted into RGB intensities, using an HSI algorithm (see below).
Temperature values are mapped to hue such that at 15°C, the corresponding hue is at 0 (red, 0°) and at 25°C hue is at 4 (blue, 240°). The RGB intensities use PWM outputs to drive the sets of LEDs. The units is powered by a 9V DC power supply.
A note about HSI, HSV algorithms:
While I tried various algorithms for converting hue values to RGB intensities, compared to the HSV model, I found the HSI model provided ‘truer’ colour conversions when varying overall light intensity. Although this project does not involve adjusting the overall light intensity, I have used this model in other projects, including my Wall Clock. In this project, the intensity of light for each of the hours, minutes and seconds indicators can be adjusted by the user. The HSI algorithm proved to be most effective in maintaining hue, especially at low light levels.