This is a very simple digital thermometer with an Atmel AVR microprocessor, measuring the temperature in range of 2 to 99 °C (degree Celsius) with a resolution of 1 °C.
The circuit is controlled by a microprocessor IO1 - Atmel AVR ATmega8, ATmega8L or ATmega8A. As the temperature sensor an integrated circuit LM35 is used. It provides
the output voltage linearly proportional to the temperature with coefficient of 10mV / °C.
The temperature is displayed on a two digit seven-segment LED display. The display is multiplex controlled. Cathodes of display are connected to port D,
anodes to the lowest 2 bits of port B. Using the superbright display allows to omit the
current amplifying transistor. Multiplex frequency is about 100Hz.
The resistors R1 to R7 determine current into display and thus its brightness. They are chosen
not to exceeded the maximum output current of IO1 individual pin (40 mA) even when all 8 LEDs are lit at once.
The thermometer uses single-ended 10-bit AD converter, which is part of the ATmega8 AVR.
Only the upper 8 bits are processed. At a higher value than 99 °C the symbol "- -" appears.
Refresh rate of displayed data is about 2 Hz. IO1 ATmega8 is using internal oscillator that is set to 1MHz.
Crystal is not needed because the clock frequency is not critical for the analog to digital converter (ADC).
The converter uses internal voltage reference with a nominal (typical) voltage of 2.56 V.
Fot the temperature measurement with a resolution of 1 °C it is sufficient.
Thermometer is powered from a supply of about 5V.
Current consumption is about 25 mA (most of which is the consumption of the LED display).
This thermometer can be useful as a room thermometer or temperature indicator of different devices (PC box, power transistor or CPU heatsikn, motor, fridge, ...).
5V voltage can be obtained using a simple supply with an integrated circuit 7805 (use suitable fuse at the input).
The thermometer AVR program for free download:
supply code in assembler (ASM)
compiled HEX file (246 Bytes)
How to write the program into the AVR is described here.