Go Down

Topic: Atmega328p internal temperature sensor (Read 1 time) previous topic - next topic


I came across a few sources that claim the atmega has a not-so-accurate temperature sensor.


I tried both of these approaches, but both give me 110-112 no matter if I go stand outside or put my finger on the package. Room temperature is around 18C while outside is more like 6C.

The only consistent difference I get is changing between the 3.3v serial cable and 3.6v battery pack. The latter gives readings of 97-99.


That sensor was meant to provide changes in temperature, not temperature itself.


I'd be happy with that, but it doesn't change. It keeps at 97 if I attach the battery and walk from room temperature to a fair number of degrees colder outside temperature and stand there for a minute.


it doesn't change.

You probably want to provision for the possibility that it does change but your code cannot read the changes.


It's called an internal temp sensor because it's measuring the temperature of the internal chip die not the temperature of the air outside the chip. If you want to see it increase, wire a few leds to output pins and turn them on and see the temp reading increase. It's usefulness and accuracy is very limited for practical applications. In fact in 3 years I've never seen it used in any useful published project other then to show that it is indeed there and functions to some degree. Some have proposed that is could be used to seed a random number generator but that doesn't sound like a good source for a decent seed to me.


Go Up