No Image

Lm35 подключение к ардуино

СОДЕРЖАНИЕ
153 просмотров
12 декабря 2019

В этом уроке мы покажем вам, как можно сделать простой термометр на Arduino, используя обычный ЖК-дисплей 16×2 и датчик температуры LM35.

Значения будут преобразованы в градусы Цельсия и Фаренгейта. Все комплектующие для проекта можно найти на АлиЭкспресс или, например, на Амперке.

Шаг 1. Необходимые детали

Для сборки нашего Ардуино термометра нам понадобится ряд деталей, которые мы можем найти на любых интернет-магазинах:

  • 1 x Arduino UNO (может быть любая плата Arduino)
  • 1 х макет
  • 1 x USB-кабель
  • 1 x 16×2 ЖК-дисплей
  • 1 датчик температуры LM35
  • 1 x 10k Потенциометр
  • 1 x 220 Ом резистор
  • 1 x 9 В Батарея и зажим (опционально для большей мобильности)
  • 18 проводов перемычек

Шаг 2. Подключение компонентов к макету

Вставьте ЖК-дисплей, потенциометр и LM35 в макет. Их расположение не имеет значения, поместите их так, как вам нравится.

Шаг 3. Подключение ЖК-дисплея

Это самая сложная часть — теперь вам нужно сделать большую часть соединений. Они заключаются в следующем:

  • LCD Pin → Arduino Pin
  • 4 → 12
  • 6 → 11
  • 11 → 5
  • 12 → 4
  • 13 → 3
  • 14 → 2
  • LCD Pin → Контакт макетной платы
  • 1,5,16 → GND (Земля)
  • 2 → 5 В
  • 15 → 5 В (используя резистор на 220 Ом!)

Шаг 4. Подключение потенциометра и LM35

Здесь соединения следующие:

Потенциометр

Одна из сторон идет к GND (Земля), противоположная — к питанию 5 В. Средний контакт подключается к контакту 3 ЖК-дисплея

LM35

См. Рисунок выше.

Шаг 5. Загрузка кода

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

Шаг 6. Заключение

Наслаждайтесь термометром который вы сделали своими руками. Не стесняйтесь изменять код по своему вкусу и улучшать проект, добавляя больше датчиков и прочее.

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 не требуются, просто загружаем код ниже.

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

Видео:

Еще один полезный прибор, который часто используется в современных устройствах — это датчик температуры. Даже в вашем компьютере есть сразу несколько датчиков температуры, с помощью которых система следит за перегревом ключевых компонентов — процессора, видеокарты, блока питания, и прочих узлов. Самый же популярный пример использования датчика температуры дома — термостат. Это устройство, которое постоянно следит за температурой воздуха, и регулирует подачу энергии в систему отопления. Смежный пример — котел для нагрева воды.

Читайте также:  Бантовые складки на шторах мастер класс

В нашем уроке мы используем датчик TMP35. Вместо него можно использовать любой другой похожий датчик: TMP35, TMP37, LM35, LM335 и подобные. Выглядит датчик как обычный транзистор:

Можно легко спутать, так что рекомендую всегда внимательно читать маркировку на таких устройствах (да и вообще сначала всегда читайте, потом подключайте :). Конкретно этот датчик имеет следующие характеристики:

  • напряжение питания: от 2,7 до 5,5 В;
  • погрешность: 2 градуса;
  • измеряемая температура: от 10°C до 125°C
  • потребляемый ток: 50 мкА.

Подключение

Датчик TMP35 имеет три вывода (три ноги). Если посмотреть на датчик со стороны этих выводов и срезом вверх, как показано на рисунке,

то слева будет — положительный контакт питания (+2.7 — 5.5В),
по центру — выход на контроллер,
и справа — отрицательный контакт питания (земля).

Датчик аналоговый, а значит на его выходе мы имеем не 0 или 1, а напряжение в диапазоне от 0 до 5 вольт. Следовательно, мы должны вспомнить раздел про аналого-цифровое преобразование (АЦП) сигналов в Arduino. Держа в уме, что у Ардуино Уно есть шесть аналоговых входов (A0-A5), подключаем наш датчик по следующей схеме:

Внешний вид макета

Принципиальная схема

Вот так должна выглядеть собранная схема.

Программа

Подключив датчик температуры к Ардуино, начинаем писать программу. Первое что мы сделаем, это выведем необработанный сигнал с аналогового входа в последовательный порт, для того чтобы просто понять, как меняется значение на входе A0. Нам понадобится простая программа:

Внимание, математика! В программе можно заметить выражение:

Оно необходимо для того, чтобы преобразовать аналоговый сигнал датчика в градусы Цельсия. Дело тут вот в чем. Все аналоговые датчики имеют важную характеристику — отношение количества вольт к единице измеряемой величины. Например, в спецификации к нашему датчику tmp35 написано, что каждый градус измеряемой температуры, соответствует 10 милливольтам напряжения на выходе. Исходя из этих рассуждений, прочитанное с помощью analogRead значение мы сначала преобразуем к количеству Вольт:

Читайте также:  Георгина леди дарлинг фото

Такая процедура называется нормировкой. Здесь 1023 — максимальное значение, которое может вернуть нам 10-битный АЦП, встроенный в Ардуино Уно.
5 — рабочее напряжение АЦП.

Затем преобразуем эти вольты в градусы Цельсия:

Превращаем вольты в милливольты (*1000), и делим на 10 ( то самое число из спецификации! ).

В общем, даже если ничего не понятно, загружаем программу на Ардуино и наблюдаем за температурой окружающего воздуха. Например, у нас в лаборатории датчик оценил температуру следующим образом:

Вполне себе правдивое значение. А теперь поднесем прибор к открытому окну (на улице зима -10°C):

Работает! Датчик незамедлительно регистрирует снижение температуры.

Делаем термостат

Теперь добавим в программу некое действие, которое будет совершаться если температура упадет ниже заданного нами порога. Пусть этот порог будет равен 15°C. Самое простое, что мы можем сделать — это зажигать на Ардуино штатный светодиод #13. Получается такая вот программа:

Кто-то забыл закрыть окно — температура резко опустилась ниже 15 — светодиод зажигается. Закрываем окно, активно дышим — светодиод гаснет. А теперь представьте, что вы зажигаете не светодиод, а подаете сигнал на реле, которое включает обогреватель в комнате. Получается готовый термостат!

Немного изменив программу можно отслеживать не понижение, а превышение заданного уровня. Например, удобно будет следить за температурой внутри, скажем, серверной, и при увеличении температуры до 40 градусов, включать вытяжку!

Комментировать
153 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector