- Arduino Duemilanove Board, a USB cable and of course a PC/Mac
- A 10kOhm thermistor
- A 10kOhm resistor
- A breadboard wires
It’g getting hotter and hotter. Is it due to global warming? Who knows, but in the meanwhile we can measure the temperature with our Arduino board and a thermistor. A thermistor is simply a type of resistor whose resistance varies with temperature. If we knew how it varies, we could extract the temperature from the measurement of the resistance (or, better, the voltage across its ends).
The Steinhart-Hart equation
In first approximation, the resistance is proportional to the temperature:
R = k(T-T0)
This can work for a narrow temperature range, but we can figure out something more accurate, up to the third order:
1/T = A + B logR + C ( logR )^3
The temperature T is expressed in Kelvin, the resistance R in Ohm and the parameters A, B and C must be determined experimentally, or taken from the datasheet.
If you want to be even more rigorous, you have to include a self-heating effect in the picture. I’ll give it as a black-box formula:
T = T(steinhart-hart) – V^2 / k*R
Where k is the dissipation constant, usually given in units of mW/degree C.
Setting things up
In this case the setup is really simple. First of all, connect the Arduino board to the computer (in my case, it’s a Mac) via the USB cable. Now, connect the GND terminal to the B line of the breadbord (use a black wire), and Arduino’s +5V output to the A line (use a red wire). Now, put the 10kOhm resistance between the (+) bus and a horizontal line. Now, connect the thermistor between the horizontal line you chose and the (-) bus, the common ground. Last but not least, connect Arduino’s Analog Input #0 to the horizontal line (X).
(+5V) —- R —- X —- Th — GND
Now, the geek part. We have to teach Arduino how to calculate the temperature and give us the answer.
Compile it and send it to Arduino. Open up the Serial Terminal, and enjoy the output stream.
Now it’s up to you
Probably, the temperature you’re measuring is quite unconvincing. You have to set up the coefficient according to you thermistor. This will be covered in a following post…