2805Views6Replies

Author Options:

LM35 Sensor? Answered

I wanted to know how to convert the readings from a LM35 sensor to Celsius and Fahrenheit.I need them for a thermometer application. I would also like to have the arduino code to serial print the values 

6 Replies

user
steveastroukBest Answer (author)2012-02-13

The LM35 gives a fixed voltage change per deg change. The scale factor you apply to turn it into F or C is something you can work out easily.

The thing gives 10mV/deg C - very small input volts for an arduino too. Not allowing for noise, you can only read about 0.5C with it.

So deg F = 9(Deg C) /5 +32

Steve

Select as Best AnswerUndo Best Answer

user
frollard (author)steveastrouk2012-02-13
+1

2nd half of question:

*completely untested, ripped from this link

\/*LM35 Thermometer
*
*LM35 simply connected to:      5+
*         0V
*         Analog Pin 0
*/

int potPin = 0;         //input read pin for LM35 is Analog Pin 0
float temperature = 0;       //variable which will be calculated in process

void setup()
{
  Serial.begin(9600);
  Serial.println("LM35 Thermometer    ");  //Print "LM35 Thermometer" once at start
}

void  printTenths( int value){
   // prints a value of  123 as 12.3
Serial.print(value / 10);
Serial.print(".");
Serial.println( value % 10);
}

void loop ()
{
  int span = 20;
  int aRead = 0;
  for (int i = 0; i < span; i++) {   //loop to get average of 20 readings
    aRead = aRead + analogRead(potPin);
}
  aRead = aRead / span;

  temperature = (5.220*aRead*100/1024);      //convert voltage to temperature
  Serial.print ("Analog in reading: ");
  Serial.print (long(aRead));  //print temperature value on serial screen
    Serial.print (" - Calculated Temp: ");
    printTenths(long(temperature));

  delay(500);
}

Be careful if you copy/paste to look for wrapped lines.

Select as Best AnswerUndo Best Answer

user
steveastrouk (author)frollard2012-02-13

The Arduno's resolution is pretty crappy though - the sensivity will be horrible.

Select as Best AnswerUndo Best Answer

user
frollard (author)steveastrouk2012-02-13

decent if it's what you have and don't need uber precision...

Would you not be able to trade precision for range? By altering the aRef from 5 down to 2.5 your readings would go from 0-100 to 0-50, with twice the voltage steps detected/degree.

Still agree, not a great sensor. I'd prefer something with an internal adc and i2c

Select as Best AnswerUndo Best Answer

user
steveastrouk (author)frollard2012-02-13

Yes, tweaking the Vref to something lower would be a good plan - though these on-board ADCs are very noisy.

The LM35 is pretty accurate though, certainly compared to the +/- 2 deg "precision" sensors with digital interfaces, like Maxim make.. I ask you , how the heck can 2 deg C be "precision" ????

All you need is a cheap opamp to boost the signal, with a gain of 10 and practically no AC gain, and you're there.

Select as Best AnswerUndo Best Answer

user
seandogue (author)steveastrouk2012-02-13

repeatability answers that question. if repeatable, then it can be calibrated. It doesn't output discrete steps.

Select as Best AnswerUndo Best Answer