Arduino analogue temp guage
Aduino thermometer using LCD sheild, an LM335 and servo.
A project trying out a few things for the first time.
1) An LCD shield that only uses 2 pins from the Arduino to control (using i2C). This was rwally easy to get going with a couple of lines of code.
2) An LM335 temperature sensor IC used as shown in the disgram with a 2.2K current limiting resistor and 10k trim pot for ajustment.
3) Controlling a servo using the Servo.h library included with Arduino. The trickiest thing here was figuring out the wiring on the servo as it was manufactures in the early 80s (Graupner). I found this helpful link with all the diffrent colour schemes used by the various manufacturers.
http://www.helifreak.com/showthread.php?t=263175
The code I wrote (attached) is very rough and could be tidies up a lot on error handling etc but seems to work a treat.
the interesting bits.
Converting from a 10mv per Centigrade ourput from the LM335 to an absolute tempterature:
float value = analogRead(0); float millivolts = ( value / 1024.0)*5000; float centigradeTemperature =(millivolts/10)-273.15;
Converting from a tempterature to an angle in the 180 degrees (ish) rotation of the servo:
map(centigradeTemperature,minTemp,maxTemp,minDegrees,maxDegrees)