Подключаем датчики давления, движения и температуры к Ардуино

Содержание

Рассказываем как подключать различные устройства к платформе Ардуино (Arduino) — самому продвинутому микроконтроллеру настоящего времени.

Никогда ещё увлечение электротехникой, роботизацией, автоматическими системами реагирования и управления не было так просто реализовать.

Вводная информация

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

Один из них и наиболее популярный, что естественно, — Ардуино. Конструктор моментальной сборки электронных автоматических устройств любой степени сложности: высокой, средней и низкой. Эту платформу называют иначе «physical computing» за плотное взаимодействие с окружающей средой. Печатная плата с микропроцессором, открытый программный код, стандартные интерфейсы и подключение датчиков к Ардуино — слагаемые его популярности.

Система Ардуино — плата, которая объединяет все нужные компоненты, обеспечивающие полный цикл разработки. Сердце этой платы — микроконтроллер. Он обеспечивает управление всей периферией. Датчики, подключаемые к системе, позволяют системе «общаться» и взаимодействовать с окружением: анализировать, отмечать изменять.

Подключение цифрового датчика влажности, температуры

Подключение цифрового датчика влажности

Два популярных датчика — DHT11, DHT22 — предназначены для замера влажности и температуры (про подключение датчика температуру мы еще поговорим ниже отдельно); недорогое решение, отлично подходят для простых схем и обучения. Термистор, ёмкостной датчик — основа DHT11 и DHT22. Внутренний чип выполняет АЦП, давая на выходе «цифру», которую поймёт любой микроконтроллер.

DHT11 отличается от DHT22 диапазоном измерения и частотностью опроса:

  • влажность — 20-80% для DHT11 и 0-100% для DHT22;
  • температура — 0°C до +50°C для DHT11 и -40°C до +125°C для DHT22;
  • опрос — ежесекундный для DHT11 и раз в две секунды для DHT22.

Оба датчика DHT имеют стандартных 4 вывода:

  1. Питание датчиков.
  2. Шина данных.
  3. Не задействован.
  4. Земля.

Вывод данных и питания требует подключения между ними резистора 10 кОм.

Для DHT-датчиков разработана библиотека DHT.h. При загрузке скетча в контроллер монитор порта должен отобразить текущие значения влажности, температуры. Проверить работоспособность просто — достаточно подышать на датчик и взять его в руки: температура и влажность должны поменяться.

Возможен вывод значений на экран LCD 1602 I2C, если включить его в систему.

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

Также некоторые акватеррариумы требуют особых условий влажности, которые легко контролировать при помощи DHT1 и DHT22.

Подключение датчика давления

Подключение датчика давления

Часто в деле предсказания погоды или определения высоты подъёма над уровнем моря требуется решить задачу измерения давления. Здесь на помощь приходят электронные барометры на технологии МЭМС: тензорометрический или пьезорезизстивный метод, связанный с переменностью сопротивления прибора при приложении деформирующих материал сил.

Наиболее популярен датчик BMP085; помимо барометрического давления он регистрирует и температуру. Ему на смену выпустили BMP180, он обладает теми же характеристиками:

  • Чувствительность в диапазоне: 300-1100 гПа (если в метрах — 9000 — 500 м над уровнем моря );
  • Разрешение : 0,03 гПа или 0,25 м;
  • Рабочая температура датчика -40 +85°C, точность измерения в указанном диапазоне — ±2°C;
  • Подключение по стандарту i2c;
  • V1 использует 3.3 В для питания и логики;
  • V2 использует 3.3-5 В для питания и логики.

Подключение датчиков к Ардуино в этом случае стандартно. Понадобится Unified Sensor Driver — его обновлённая версия обеспечивает более высокую точность показаний; кроме того, позволяет работать с несколькими разными подключёнными датчиками давления одновременно. Необходимо также установить Adafrut_Sensor library.

Подключение датчика движения

Подключение датчика движения

Без данного датчика не обходится ни одна серьёзная охранная система. Инфракрасный датчик — базовый элемент обнаружения присутствия теплокровных.

Также при помощи PIR-датчиков чрезвычайно удобно управлять освещением в зависимости от нахождения рядом человека. Инфракрасные или пироэлектрические датчики просты по внутреннему устройству и недороги. Они крайне надёжны и редко выходят из строя.

Пироэлектрик или диэлектрик

Основа датчика — пироэлектрик или диэлектрик, способный создавать поле при изменении температуры. Они устанавливаются попарно, а сверху закрываются куполом с сегментами в виде обычных линз или линзой Френеля. Это позволяет сфокусировать лучи от разных точек проникновения.

При отсутствии излучающих тепло тел в помещении у каждого элемента одинаковая попадающая доза излучения, соответственно, одинаковое напряжение на выходах. При попадании в зону «обзора» датчиков живого теплокровного нарушается равновесие и появляются импульсы, которые и регистрируются.

HC-SR501 — наиболее распространённый и популярный датчик. Он имеет два подстроечных переменных резистора:

  • один — для регулировки чувствительности и размера обнаруживаемого объекта,
  • второй — для регулировки времени срабатывания (времени генерации импульса после обнаружения).

Схема подключения стандартна и не вызовет затруднений.

Подключение датчика температуры

Несмотря на то, что функция измерения температуры входит во многие датчики, лучше использовать отдельный специализированный датчик. Например, DS18B20. Это интегральный датчик, имеющий цифровой последовательный интерфейс.

Подключение датчика температуры

Его сильные стороны:

  • предварительная заводская калибровка;
  • погрешность менее 0,5°С;
  • программно задаваемая разрешающая способность в 0,0625°С при 12-и битном разрешении;
  • чрезвычайно большой диапазон измеряемых температур: от -55°С до +125°С;
  • в датчике имеется встроенный АЦП;
  • в одну линию связи могут быть включены несколько датчиков.

Корпус ТО-92 — самый распространённый для этих датчиков. Приняты две основные схемы подключения температурного датчика DS18B20 к микропроцессору или контроллеру:

  1. Схема питания извне. Или при помощи внешнего источника.
  2. Схема так называемого «паразитного питания». Датчик подключается только двумя проводами. Это имеет значение при размещении датчика на больших расстояниях.

При работе с температурой выше 100°С, схему с паразитным питанием использовать нельзя ввиду большой погрешности измерений.

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

Эти три операции демонстрируют работу с датчиком и библиотека OneWire прекрасно их поддерживает. Устанавливаем библиотеку OneWire Library. После этого грузим скетч — и программная среда готова.

Возможно подключение нескольких датчиков DS18B20 — в этом случае их требуется подключать параллельно. Библиотека OneWire позволит считывать показания сразу со всех одновременно. При одновременном большом количеством подключений датчиков необходимо добавлять дополнительно резисторы на 100 или 120 Ом между ножкой data датчика DS18B20 и шиной data на Ардуино.

Выводы

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

  • освоить системы алгоритмизации начинающим инженерам;
  • освоить базовые навыки конструирования;
  • научиться программировать.

Вне зависимости от вашего уровня подготовки, ваших знаний, всегда можно подобрать для себя задачи по силам. Можно собрать простенькое решение автоматизации какой-либо несложной задачи без пайки вместе со школьником; а можно поставить глобальную задачу, где требуются помимо знаний и логики ещё и умение качественно паять и верно чертить и читать чертежи. А активные сообщества, форумы и базы знаний по системе Ардуино помогут решить практически любой вопрос.


Источник: arduinoplus.ru