8x8 Matrix Thermometer (high/low)

It takes the temperature from the DS18B20 chip (using the built-in READTEMP command) and scrolls that over the face of the 8x8 LED matrix (see the Scrolly Text project), along with high and low temperatures (which are stored in EEPROM).

What you need

PICAXE 28X1*
8x8 LED Matrix (I use these from http://earthshinedesign.co.uk)
2x 74HC595 shift chips
DS18B20 thermometer IC
4k7 ohm resistor

* The code takes up only 806 bytes of available program space and the character data only 80 bytes of EEPROM space but it does use the "scratchpad" which is only available on 20X2, 28X1, 28X2, 40X1 and 40X2 chips. It also requires a running speed of at least 8MHz, 4MHz is too slow.

What it does

It does the same as the Thermometer display project PLUS it also keeps track of the high and low temperature values which are scrolled with the current temperature; HIGH CURRENT LOW.

The high and low values are stored in locations 254 and 255 of the EEPROM and are loaded whenever the device is power-cycled.

Notes

The 8x8 matrix I've used here, like many others, doesn't allow all of the columns to be accessed at the same time. If you look at the code you'll see that we're actually only ever lighting up one column at a time. However, the columns are being lit up so fast that the eye percieves them all to be on at the same time!

The first of the shift registers sets the column to activate, the second shift register sets the data.

Future improvements

The 8x8 LED matrix I'm using is bicolour (red and yellowy-green) so I'd like to make use of that in the future.

The READTEMP command can take up to 750ms (3/4 of a second) to process which results in the matrix going blank. I'd like to improve this somehow, maybe by having the text scroll off the screen, get the temperature and then scroll the text back on...