I recently acquired an Arduino Uno and was looking for a cool "getting started" project. I decided to make a thermometer, as the kit I have had all the necessary parts (thermistor, wires, resistors, LEDs). Through a couple iterations, I finally arrived at this project: building an Arduino-Powered Binary Thermometer that displays the temperature (in C) in binary on six LEDs. Here is what you'll need to build this:

Arduino x1

Breadboard x1

1000 ohm resistor x1

Thermistor x1

330 ohm resistor x 6

LED x 6

Assorted Wires x? (depends on you circuitry)

Arduino x1

Breadboard x1

1000 ohm resistor x1

Thermistor x1

330 ohm resistor x 6

LED x 6

Assorted Wires x? (depends on you circuitry)

Thermistors are a type of variable resistor that change resistance with changes in temperature. In order to get an accurate reading from your thermistor, you first have to calibrate it. You can make use of the Steinhart-Hart Equation to make sense of voltage input data from your thermistor. Using this equation, *temperature = 1/(A+B*ln(R)+C*(ln(R))^3)*, where A, B, and C are coefficients you must solve for and R is resistance. The easiest way to get the coefficient values for your particular thermistor is to look up its datasheet. On the datasheet, there should be Resistance-Temperature Curve plots. You can pick points from these plots and plog them into a calculator (like this one) to get the coefficient values for A, B, and C. The points I used are marked by the red circles on the plot. Ideally, you want to pick values at the top, middle, and bottom of the range you expect to use the thermistor in to get the most accurate curve. Once you have these values, you can plug them into the "Thermistor" function in the code.

A good project to start with Arduino

cool, what kind of accuracy does this have?

I'm not 100% sure because I didn't have a thermometer to test it against. If I had to guess, I'd say it's probably accurate to within 2 degrees C. That could be adjusted if the temp-resistance reference points were gathered using real world data (i.e. using an accurate thermometer and a multimeter.)