I have done a few project based on AVR microcontrollers. Recently, I have given myself a chance to try out Arduino. After my home thermometer broke down I decided to make a new one. Also it had a few drawback which required fixing. After some time I decided to use Arduino and design a shield for it which would enable this board to measure the temperature and display it. So here it is:
A few nice features about Simple Dual Thermometer:
- two 1-Wire temperature sensors, DS18B20,
- MAX7221, it is an input/output common-
cathode display drivers with a SPI interface,
The microcontroller is using the MAX7221 to handle a time consuming multiplexing. This way the Atmel chip can easily carry out different tasks. The MAX7221 also has a few nice features about itself. Firstly, it can decode numbers into a 7-segment code. It means that while you wan to write into display an one ‘1’ you do not have to code it like this 00000110 which means to light up segment b and c. You can simply send an one ‘1’ and it will know what to do with this. Second neat feature is a brightness control. Using a photoresitor a piece of software converts an analogue value into the brightness level. This may seem a bit excessive, however. I find it very useful especially in the night. Normally, you do not need to have a super brightness to read the temperature but it comes really handy when you want to sleep next to it and it is just too bright.
This is just a prototype. It has a drawback which is really annoying. The readings from the internal temperature sensor are a bit of. Because of the MAX7221 and its poor heat dissipation. The DS18B20 is measuring the temperature around 3-4 Celsius degrees above the real temperature.
As for the external thermometer it is connected to the board slightly different. Firstly, you need to solder a resistor between the +5V and DQ of the DS18B20. Secondly, you need to solder a length of three wires to the previously prepared DS18B20 and arrange the lines in this order: +5V, GND and DQ (signal). This way if you connect it to the board wrongly nothing will break.
Schematic for those who wish to have a fast glimpse:
Here you can find PCB project in Eagle, both sch and brd. This includes improved version of the PCB.
And here you can find Arduino project for the Simple Dual Thermometer.