LM35 — Прецизионный аналоговый датчик температуры, на выходе которого формируется напряжение пропорционально температуре по шкале Цельсия.
Характеристики датчика:
- Диапазон температур: − 55°C … 150°C ±0.5 при 25°C, доступный 0°C … 110°C
- Разрешение: 10.0 mV/°C
- Напряжение на выходе при 25°C: 250мВ.
- Напряжение питания: от 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); // ждем секунду }
Открываем «монитор порта» и видим точные показания температуры с высоким разрешением.