Высокоточный аналоговый датчик температуры LM35, Подключение к Arduino

LM35 — Претензионный аналоговый датчик температуры, на выходе которого формируется напряжение пропорционально температуре по шкале Цельсия.

Характеристики датчика:

  • Диапазон температур: − 55°C  …  150°C ±0.5 при 25°C, доступный 0°C … 110°C
  • Разрешение: 10.0 mV/°C
  • Напряжение питания: от 4.0 В до 30 В.

Особенности работы с датчиком:

На выходе датчика формируется напряжение пропорционально температуре по шкале Цельсия, величина напряжения 10.0 mV на 1°C, то есть, если температура датчика 25°C на выходе датчика будет 250mV. С этим связаны сложности при работе с Arduino.

  • Не возможно измерение отрицательных температур, 0°C это 0 вольт на выходе датчика, чтобы измерять весь диапазон нужно подавать отрицательное напряжение, но даже если оно будет подано, встроенный аналого-цифровой преобразователь в Arduino не может измерять отрицательное напряжение.
  • Низкое разрешение встроенного АЦП Arduino и нестабильность опорного напряжения в случаи использования в качестве опорного напряжение питания 5 вольт. Решается использованием встроенного в Arduino UNO источника опорного напряжения 1.1 вольт, в этом случаи верхний придел температур, которые могут быть измерены, 110°C

При использовании датчика с Arduino UNO, доступный диапазон температур 0°C … 110°C.

 

Схема подключения датчика:

Датчик аналоговый и соответственно подключать его нужно на аналоговый вход Arduino, в данном случаи подключен на вход А0. Дополнительные библиотеки для Arduino не требуются, просто загружаем код ниже.

//http://playground.arduino.cc/Main/LM35HigherResolution

float tempC;
int reading;
 
void setup()
{
  analogReference(INTERNAL);        // включаем внутрений источник опорного 1,1 вольт
  Serial.begin(9600);
}

void loop()
{
  reading = analogRead(A0);        // получаем значение с аналогового входа A0
  tempC = reading / 9.31;          // переводим в цельсии 
  Serial.print(tempC);            // отправляем в монитор порта
  Serial.println(" C");
  delay(1000);                     // ждем секунду
}

Открываем «монитор порта» и видим точные показания температуры с высоким разрешением.


Видео:

 


Пример с использованием текстового экрана

код