Урок 12: Датчик Температуры LM35
1. Цель эксперимента
В этом уроке вы познакомитесь с LM35 — популярным аналоговым датчиком температуры, который не требует калибровки и выдаёт напряжение, пропорциональное температуре: 10 мВ на каждый °C. Вы научитесь:
правильно подключать датчик к Arduino;
преобразовывать показания АЦП в градусы Цельсия;
выводить температуру в Serial-монитор и наносить улучшения в код.
2. Компоненты
Кол-во |
Деталь |
---|---|
1 |
Плата Arduino UNO |
1 |
Аналоговый датчик температуры LM35 |
1 |
Макетная плата (breadboard) |
5 |
Перемычки «папа–папа» |
1 |
USB-кабель A-B |
3. Немного знаний

LM35 выдаёт 0 мВ при 0 °C и +1000 мВ при 100 °C.
Чувствительность фиксирована: 10 мВ / °C.
Напряжение питания — 4–30 В, поэтому 5 В от Arduino достаточно.
Формула для пересчёта АЦП (0–1023) в °C при опорных 5 В:
Temp = ADC * 5.0 * 100 / 1023
4. Схема подключения

VCC (1-я ножка, слева) → 5 V
OUT (средняя ножка) → A0 (аналоговый вход)
GND (3-я ножка) → GND
5. Пример кода
// ────────────────────────────────────────────────
// Урок 12 — Чтение температуры с датчика LM35
// ────────────────────────────────────────────────
const byte sensorPin = A0; // аналоговый вход A0 ← вывод «OUT» LM35
void setup() {
Serial.begin(9600); // открываем Serial-монитор на 9600 бод
}
void loop() {
int raw = analogRead(sensorPin); // сырые данные 0-1023
// Переводим в напряжение (0-5 В) и затем в °C.
float voltage = raw * (5.0 / 1023.0); // шаг ≈4.88 мВ
float temperatureC = voltage * 100.0; // 10 мВ ⇒ 1 °C ⇒ ×100
// Выводим красиво отформатированную строку
Serial.print("Temp: ");
Serial.print(temperatureC, 1); // 1 знак после запятой
Serial.println(" °C");
delay(500); // обновляем каждые 0.5 с
}
6. Результат теста
После прошивки скетча откройте Serial Monitor (скорость 9600 бод).
Каждые пол-секунды появится строка вида Temp: 30.0 °C
— это текущая
температура, рассчитанная по напряжению с LM35. Попробуйте нагреть датчик
пальцами или охладить его — значения начнут изменяться в реальном времени.

7. Как работает код
analogRead() преобразует аналоговый сигнал 0–5 В в число 0–1023.
Шаг АЦП при 5 В опорного напряжения: 5 В / 1023 ≈ 4.88 мВ.
Умножая результат на 5/1023 получаем напряжение, а умножив на 100 — итоговую температуру в °C (10 мВ → 1 °C).
Функция Serial.print(value, 1) выводит число с одним знаком после запятой, что более чем достаточно для LM35.
8. Пошаговый запуск
Соберите схему как на рисунке выше, обращая внимание на ориентацию корпуса TO-92 (плоская сторона спереди).
Подключите Arduino к ПК, выберите плату UNO и нужный COM-порт.
Скопируйте скетч и нажмите Upload.
Откройте Serial Monitor (9600 baud) — увидите текущую температуру.
Нагрейте датчик пальцами или охлаждайте сжатым воздухом и наблюдайте изменения показаний.
9. Что может пойти не так
Симптом |
Причина |
Решение |
---|---|---|
Показывает 0 °C или «мусор» |
Неправильное подключение выводов |
Проверьте распиновку LM35 и направление корпуса |
Температура «скачет» |
Длинные провода, наводки |
Используйте экранированные провода или усредняйте несколько замеров |
Значение выше/ниже реального |
Опорное напряжение не 5 В |
Уточните реальное Vcc мультиметром и корректируйте формулу |
10. Эксперименты
Измените опорное напряжение на 1.1 В (
analogReference(INTERNAL)
) — получите шаг 1 мВ и более точное измерение в диапазоне 0–110 °C.Отправляйте температуру в Serial Plotter и наблюдайте график.
Управляйте вентилятором через транзистор: включайте, если температура превышает заданный порог.