Arduino датчик: Датчики Arduino: описание возможностей / Амперка

Содержание

Датчики Arduino: описание возможностей / Амперка

Любая автоматизация начинается с подбора датчиков — именно на основе их показаний строится вся логика управления. Сенсоры помогают решить различные инженерные задачи, чтобы сделать ваш проект ещё точнее и «умнее». Сегодня мы расскажем, какие виды датчиков наиболее часто используются в связке с Arduino-совместимыми контроллерами и одноплатными компьютерами наподобие Raspberry Pi.

Датчики положения

Если вы строите робота, способного самостоятельно перемещаться в пространстве, ему понадобится некая система ориентации, иначе он будет неуклюже упираться в препятствия и требовать вашей помощи. Конечно, на лавры Boston Dynamics мы не претендуем, но дадим пару советов.

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

Датчики пространства

Машинное зрение с распознаванием объектов — это, конечно, хорошо, но мы привыкли искать решения попроще. Задачу ориентирования можно элегантно решить, если свести «зрение» робота к простейшей функции обнаружения препятствий. Для этого ему понадобится сенсор пространства, который определяет дистанцию до объектов, или хотя бы их наличие поблизости. Тогда он перестанет врезаться и научится строить маршрут в обход препятствий — не без вашей программной помощи.

Тактильные сенсоры

Кнопки, потенциометры и тому подобные штучки — это тактильные сенсоры, которые превращают наши манипуляции в электрический сигнал. Хотите сделать собственный геймпад или микшерный пульт? Вам понадобится целая куча кнопок и других органов управления.

Климатические сенсоры

Климатические сенсоры температуры, влажности и других параметров нужны, например, чтобы построить систему управления климатом умного дома, автоматизированную теплицу или любительский метеозонд. В конце концов, кто не любит наблюдать за красивыми графиками?

Сенсоры света и цвета

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

Датчики звука

Звуковые волны — полезный источник информации, если знать, что с ними делать.

Чуть выше мы уже рассказывали про ультразвуковой дальномер, который использует эхолокацию. С датчиками звука вы можете придумать не менее интересные применения своему проекту.

Датчики механического воздействия

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

Датчики газа

Собрать газоанализатор на Arduino — вполне реально, если подобрать подходящий датчик газа. Полученная система сможет измерять концентрацию газов и летучих веществ, кроме того, она поможет обнаруживать утечки газа в помещении и создать сигнализацию с детектором дыма. Среди измеряемых субстанций есть как природный газ, угарный / углекислый газ, пропан, бутан, метан, так и более специфичные: водород, аммиак и пары спирта.

Датчики воды

Спасти жилище от затопления, создать систему автоматического полива в теплице или автопоилку для животных невозможно без датчиков воды. Они помогут оценить уровень и расход воды, чтобы вовремя подать управляющие сигналы насосу и другим модулям. А ещё с ними вы точно не забудете закрыть кран дома!

В заключение

Теперь вы познакомились с основными видами датчиков, их возможностями и предназначением. Как видите, с помощью сенсоров контроллер можно научить управлять практически любым процессом, если грамотно учесть специфику проекта и подключить немного фантазии!

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

Датчик температуры Arduino DS18B20: описание, применение, схема подключения

Приборы для измерения – это самый необходимый компонент для плат Arduino. Для замеров температуры используется компоненты с отличающимися друг от друга характеристиками. Датчик DS18B20 используют для замеров температур воды, потому как одна из популярных его модификаций обрамлена герметичным корпусом.

Что представляет собой DS18B20?

Dallas DS18B20 – это цифровой датчик измерения температуры, оснащенный микроконтроллером, способный запоминать изменения в памяти, оповещать о нарушении температурных рамок(которые можно регулировать), изменять точность замеров, взаимодействовать с основным контроллером Arduino. DS18B20 выполнен в миниатюрном корпусе, в трех различных модификациях, одна из которых позволяет измерять температуры в жидкостях.

Датчик подключается через 3 выхода:

  1. Первый – питание VDD (красный).
  2. Второй – данные DQ (желтый или другой цвет).
  3. Третий – земля GND (черный).

Из-за возможности реализации схемы с фантомным питанием, можно подключить датчик через два провода: DQ и VDD. Но по-хорошему, лучше подобного подключения избегать. Также, к основной плате Arduino можно подключить на один пин выходы DQ с двух сенсоров.

Виды датчика:

  1. 8-Pin SO (150 mils) — DS18B20Z+
  2. 8-Pin µSOP — DS18B20U+
  3. 3-Pin TO-92 — DS18B20+

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

На рисунке изображен даллас DS18B20+ в герметичном корпусе

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

  1. Диапазон измерения температур -55 °С до +125 °С.
  2. Погрешность максимум 0,5 °C, без дополнительной калибровки при t от -10 °С до +85° С).
  3. Питание 3,3-5 В.
  4. Для соединения с Arduino UNO необходимо 3 контакта.
  5. К одной линии связи доступно подключение вплоть до ста двадцати семи датчиков, потому как датчик содержит собственный 64-битный код в постоянной памяти.
  6. Каждый датчик имеет персонализированный серийный номер.
  7. Протокол 1-Wire используется для передачи информации.
  8. Доступно подключение через два провода напрямую к линии связи по схеме фантомного питания. Но такой режим не рекомендуется использовать при температурах от 100° С, так как нет гарантий правильных замеров в таких условиях.
  9. Два вида памяти — статическая память с произвольным доступом или полупроводниковая оперативная память (SRAM) и энергонезависимая память EEPROM.
  10. В EEPROM записываются два однобайтовых регистра контроля TH, TL, по которым можно верхний и нижний предел диапазона температур.

Применение

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

  • 9 бит – 0,5С;
  • 10 бит — 0,25С;
  • 11 бит — 0,125С;
  • 12 бит — 0,0625С.

Порядок работы датчика:

  1. При подключении источника питания, DS18B20 будет находится в начальном состоянии.
  2. Затем, подается команда «преобразование температуры» на Arduino UNO для замера t.
  3. Результат, полученный от датчика, сохранит свое значение в двух байтах регистра t, а сам элемент схемы вернется с начальное состояние.
  4. При работе схемы через внешнее питание, микроконтроллер регулирует состояние конвертации.
  5. При выполнении команды линия находится в низком состоянии, а закончив – переходит в высокое.

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

В оперативную память сохраняются:

  • 1-2 байты – данные измеряемой температуры;
  • 3-4 байты – пределы изменения t;
  • 5-6 байты – резерв;
  • 7-8 байты – нужны для точных замеров t;
  • 9 байт — циклический избыточный код, устойчивый к помехам;

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

Для подключения в схеме обязательно должен присутствовать резистор «Подтяжки», сопротивлением 4,7 кОм. Соединение происходит по интерфейсу 1-Wire по шине данных.

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

Для соединения нужно:

  1. DS18B20 – 1 штука.
  2. Ардуино УНО – 1 штука.
  3. Резистор 4,7 кОм.
  4. Макетная плата под пайку.
  5. Коннекторы.
  6. USB-кабель для соединения с ПК.

Нормальная схема включения одного датчика.

Подключайте по представленной выше схеме. Учитывайте, что DQ можно подключить к аналоговому пину ввода / вывода A1 (еще называют цифровой A15). Резистором притяните линию данных к питанию, как показано на схеме макетной платы.

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

Фантомная схема включения одного датчика

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

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

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

Программная часть

Скачать библиотеку для работы с датчиком и другими устройствами на 1-Wire, можно на Github по ссылке. Для установки, загрузите архив с сервера и разархивируйте по адресу «Мои документы» – «Ардуино» – «libraries» или другое место, где вы ее разместите.

Виды скетчей и библиотек

Для написания программы можно использовать несколько библиотек:

  1. OneWare – основная, с помощью которой можно использовать самые простые скетчи для работы одного или нескольких датчиков, подключённых по нормальной и фантомной схеме питания.
  2. DallasTemperature — Рекомендуется использовать библиотеку для комфортного взаимодействия с устройствами, особенно если их подключается к плате несколько. Некоторые моменты в логике с помощью библиотеки можно упростить.

В скетчах применяется только первая или две библиотеки в паре. Чтобы запустить работу измерителя температуры, запустите Ardiuino IDE, скопируйте в него код и загрузите в контроллер.

Три варианта скетчей для обработки и считывания данных с датчика можете скачать по ссылке.

Использование и применение

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

  1. Определение t воды в аквариуме для рыб. Особенно актуальный способ в летнюю жару. Сенсор среагирует на показатель, который оказался за пределами нормы и оповестит вас об этом по каналам связи. Естественно, можно подвязать дополнительное действие при нагревании воды, например, запускать Аэрацию.
  2. Оповещение о нагретой воды в бойлере. При достижении определенной t в бойлере, на компьютер, или подключенный LCD-дисплей вам поступит уведомление. Можно с схему добавить реле, которое будет отключать бойлер. Конечно, современные водонагревающие устройства могут оснащаться автоматикой и термостатом, но часто с помощью дополнительных датчиков реализуются более сложные системы управления умным домом, чем автономная автоматика водонагревателя.
  3. Замер температуры в холодильной витрине. Комплект из нескольких датчиков на достаточно простой схеме может замерять и выдавать температуру в каждой секции витрины. Выставленный диапазон значений может указывать, когда температура вышла за пределы нормы и уведомлять о нарушениях стационарного режима.
  4. Замер точного градуса воды в чайнике. Выпитый натощак стакан теплой воды помогает запустить желудок. При этом нужно выпить подогретую до температуры тела воду. Самодельный термодатчик способен решить подобную задачу, определив градус с точностью до 0,5 °С.
  5. Определение температуры воды в ванной, джакузи, бассейне. Набирая воду для водных процедур, нужно, чтобы она была комфортной. С помощью терморегулятора Arduino можно определить комфортный уровень и подобрать нужный градус для себя. Дополнительно, пороговыми значениями температуры можно реагировать на снижение или увеличения t воды и держать все время воду подогретой.
Естественно, датчик можно использовать и в системах для промышленности: водонагревательные станции, морозильные комнаты, замеры t вязких веществ на предприятиях.

Заключение

Цифровой датчик DS18B20 работающий в паре с Arduino UNO (или платами NANO и MEGA) по своим характеристикам может использоваться для решения серьезных задач, где нужны точность замеров, измерение температуры жидкости и мониторинг нужного градуса жидкости в температурном диапазоне.

Особенностью данного датчика является собственная память и содержание в ней 64-битного кода, позволяющего подключать вплоть до 127 датчиков на одну линию. Еще одной фишкой есть возможность подключения по схеме фантомного питания, когда вместо трех, используется два провода (питание и данные). Земля не подключается.

Как работает датчик пламени Ардуино (Arduino), его преимущества