Апр
10

Самые популярные датчики для Arduino

Author Remontnik    Category Советы     Tags

   

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


          
          Самые популярные датчики для Arduino

Какими бывают датчики?

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

По роду сигнала разделяют на:

Аналоговые;

Цифровые.

А по назначению датчики бывают для измерения:

Температуры;

Давления;

Влажности;

Кислотности;

Освещенности;

Уровня воды или других веществ;

Вибраций;

И другие специализированные компоненты.

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

По устройству они бывают

Резистивные;

Индуктивные;

Емкостные;

Пьезоэлектрические;

Фотоэлементы и другие типы.

Датчик света или освещенности

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


          
          Самые популярные датчики для Arduino

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


          
          Самые популярные датчики для Arduino

На алиэкспресс или в других интернет магазинах его можно найти по запросу «PHOTOSENSITIVE-SENSOR» или просто «датчик света».

У этого модуля есть три вывода:

Питание;

Земля;

Цифровой выход с компаратора.

Или версия с четырьмя выводами:

Питание;

Земля;

Цифровой выход с компаратора;

Аналоговый.

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

Примеры использования:

Датчик освещенности для фотореле;

Сигнализация (в паре с излучателем);

Счетчик объектов которые пересекают световой луч и т.д.

Точных значений добиться сложно, так как для корректной отстройки по освещенности понадобится полноценный люксметр. Фоторезисторы подходят скорее для определения абстрактных величин типа «темно или светло».

Кроме такой платы в продаже можно встретить довольно интересный модуль GY-302. Это датчик освещенности на базе интегральной микросхемы BH-1750. Его особенностью является то, что это цифровой модуль, у него разрядность в 16 бит, общается с микроконтроллерами по шине i2c. 16 бит позволяют измерять освещенность от 1 до 65356 Люкс (Лк).


          
          Самые популярные датчики для Arduino

Ниже изображена схема его подключения. Вы можете обратить внимание на то, что SDA и SCL подключены к аналоговым пинам микроконтроллера.


          
          Самые популярные датчики для Arduino

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


          
          Самые популярные датчики для Arduino

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

Пример скетча для GY-302 (BH-1750):


          
          Самые популярные датчики для Arduino

Как работает скетч?

В начале мы говорим программе о том, что нужно подключить библиотеку Wire.h, которая отвечает за связь по линии I2C, и BH1750. Остальные действия хорошо описаны в комментариях, а в итоге каждые 100мс мы считываем значение с сенсора в Люксах.

Характеристики GY-302 BH1750:

Связь с микроконтроллером по I2C

Спектральная характеристика подобна чувствительности глаза

Минимизированы погрешности вызванные ИК-излучением

Диапазон измерения 0-65535 Lux

Напряжение питания: 3-5 В

Малый потребляемый ток и функция спящего режима

Фильтрация световых шумов 50/60 Гц

Максимальное число сенсоров на 1 шине I2C – 2 штуки.

Не требует калибровки

Ток потребления – 120 мкА

В спящем режиме – 0,01 мкА

Измеряемая длина волны – 560 нм

В режиме высокого разрешения – 1 Лк

В режиме низкого разрешения – 4 Лк

АЦП – 16 бит

Время, за которое выполняются измерения:

В режиме высокого разрешения – 120 мс

В режиме низкого разрешения – 16 мс

Датчик препятствия

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


          
          Самые популярные датчики для Arduino

Его название «оптический датчик препятствия». Основным функциональным элементом является фотодиод и светодиод излучающие и принимающие в ИК спектре (поэтому не виден человеческому глазу, а также пороговый узел, собранный, например, на компараторе с регулятором чувствительности. С его помощью регулируется расстояние, на котором срабатывает датчик, кстати он цифровой.

Пример схемы подключения:


          
          Самые популярные датчики для Arduino

Пример программы обработки сигнала с датчика.


          
          Самые популярные датчики для Arduino

Здесь, если на выходе с датчика «1», что значит «есть препятствие», – зажжется светодиод, встроенный в плату Ардуино, либо подключенный к 13 пину (одно и то же). Наиболее часто используется в робототехнике и сигнализациях.


          
          Самые популярные датчики для Arduino

Датчик расстояния

Предыдущий экземпляр состоят из приемника, — фотодиода, и излучателя, — светодиода. Ультразвуковой датчик расстояния также состоит из приемника и излучателя УЗ волн. Его название – HC SR04.


          
          Самые популярные датчики для Arduino

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

Питающее напряжение 5В

Рабочий параметр силы т ока – 15 мА

Сила тока в пассивном состоянии < 2 мА

Обзорный угол — 15°

Сенсорное разрешение – 0,3 см

Измерительный угол — 30°

Ширина импульса – 10-6 с

Дальность измерения: 2-400 см.

Погрешность появляется из-за:

температуры и влажности воздуха – можно снизить, измеряя температуру с помощью DHT-11 или DHT-22, например, и вводя коэффициенты для коррекции измерений.

расстояния до объекта;

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

качества исполнения элементов модуля датчика.

Диаграмма направленности:


          
          Самые популярные датчики для Arduino

У платы есть четыре вывода:

VCC – питание;

Trig – входной сигнал;

Echo – выходной сигнал;

GND – общий провод.


          
          Самые популярные датчики для Arduino

Как обрабатывать показания?

1. На вход TRIG посылаем импульс длительностью в 10 мкс;

2. Внутри модуля импульс преобразуется в пачку из 8 импульсов, которые следуют друг за другом с частотой в 40 кГц и посланы через излучатель;

3. Отраженные от препятствия импульсы приходят на приёмник и выводятся на вывод ECHO;

4. Длительность импульса, полученного с вывода ECHO нужно разделить на 58.2, чтобы получить расстояние в сантиметрах и на 148, если нужно перевести в дюймы.

Пример программного кода:


          
          Самые популярные датчики для Arduino

Измеряем температуру

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


          
          Самые популярные датчики для Arduino

Для каждого вида термопар свой подход для работы с микроконтроллером. Например, есть термопара К-типа, или как её еще называют – хромель-алюмелевая, с диапазоном измеряемых температур от -200 до +1400 градусов Цельсия с чувствительностью 41 мВ/градус Цельсия. А для неё есть специальный преобразователь на базе ИМС max6675, в нем есть функция компенсации температуры холодного спая и прочее.


          
          Самые популярные датчики для Arduino

Работать с этим модулем можно с помощью одноименной библиотеки для Ардуино. На рисунке ниже вы видите пример программного кода для этого случая.


          
          Самые популярные датчики для Arduino

Тогда на монитор последовательного порта выводится следующее.


          
          Самые популярные датчики для Arduino

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


          
          Самые популярные датчики для Arduino

Это цифровая интегральная микросхема её внутреннее устройство изображено на рисунке ниже:


          
          Самые популярные датчики для Arduino

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


          
          Самые популярные датчики для Arduino

Основные характеристики и сведения о DS18b20:

Погрешность – меньше 0,5 С (в диапазоне температур от -10С до +85С).

Калибровка не требуется

Диапазон измерений – от -55 С до +125С

VCC, напряжение питания 3,3-5В.

разрешающая способность до 0,0625С, задается программно;

Разрядность – 12 бит

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

Интерфейс для связи – 1-Wire

Обвязка не требуется

Максимальное число датчиков на одной линии — 127 штук

Режим паразитного питания – в этом случае датчик питается напрямую от линии связи. При этом не гарантируется измерение температуры выше, чем 100С

Ниже вы видите таблицу перевода двоичного кода с DS18b20 в значения температуры в градусах Цельсия.


          
          Самые популярные датчики для Arduino

Пример программы для считывания значений температуры.


          
          Самые популярные датчики для Arduino

Датчики атмосферного давления

Электронные барометры собираются на базе датчиков атмосферного давления. Широкое распространение получили следующие варианты:

BMP180;

BMP280;

BME280.


          
          Самые популярные датчики для Arduino

Если два предыдущих экземпляры были подобны друг другу, то датчик BME280 – это миниатюрная метеостанция. В ней встроено 3 датчика:

Температуры;

Давления;

Влажности.

Его технические характеристики:

Размеры 2,5 х 2,5 х 0,93 мм;

Металлический LGA-корпус, оснащенный 8-ю выходами;

Напряжение питания 1,7 – 3,6В;

Наличие интерфейсов I2C и SPI;

Потребляемый ток в режиме ожидания 0,1 мкА.

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


          
          Самые популярные датчики для Arduino

Пример схемы подключения:


          
          Самые популярные датчики для Arduino

И пример программного кода:


          
          Самые популярные датчики для Arduino

Логика программы несложная:

1. Вызов подпрограммы (функции) считывания с датчика.

2. Запрос показаний встроенного в барометр датчика температуры.

3. Ждем время для оценки датчиком температуры;

4. Считываем результат измерений температуры;

5. Запрос значения давления;

6. Ждем время измерения давления;

7. Считываем значение давления;

8. Возвращаем значение давления из функции.

Интересен тот факт, что возможно четыре варианта считывания значений, они задаются в качестве аргумента в функции startPressure, вторым знаком от 0 до 3, где 0 – грубая оценка, а 3 – точная.

Датчик движения

Самым распространенным датчиком движения для Ардуино является модуль HC SR501 на базе ИК—сенсора. Особенностью этого модуля является то, что у него есть регулировка расстояния срабатывания и времени задержки выходного сигнала после срабатывания.


          
          Самые популярные датчики для Arduino

Характеристики модуля:

1. Напряжение питания 4,5 – 20 В.

2. Ток покоя ≈ 50 мкА;

3. Напряжение выходного сигнала (логический уровень): 3.3 В;

4. Диапазон рабочих температура – от -15° C до 70° C;

5. Размеры: 32*24 мм;

6. Поле зрения – 110°;

7. Максимальная дистанция срабатывания – от 3 до 7 м (регулируется); При температуре более 30° C это расстояние может уменьшаться.

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


          
          Самые популярные датчики для Arduino

Как с ним работать мы рассматривали в статье, опубликованной ранее: Схемы датчиков движения, принцип их работы и схемы подключения

Датчик уровня воды

Предназначен для индикации уровня жидкости.


          
          Самые популярные датчики для Arduino

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

1. Напряжение питания 3-5В

2. Ток потребления >20 ма

3. Аналоговый

4. Размеры измерительной зоны 40×16 мм

5. Допустимая влажность 10%- 90%

Пример программного кода:


          
          Самые популярные датчики для Arduino

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

Датчик протечки

Модуль состоит из двух частей – сам датчик и компаратор, может быть построен на LM393, LM293 или LM193.


          
          Самые популярные датчики для Arduino

Благодаря компаратору происходит преобразование аналогового сигнала в цифровой.

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


          
          Самые популярные датчики для Arduino

Цоколевка платы:

VCC – питание, должно соответствовать питания платы Апдуино, в большинстве случаев это 5В;

GND – общий провод;

АO – аналоговый сигнал;

DO — цифровой сигнал.

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


          
          Самые популярные датчики для Arduino

На видео показано как он работает: 

Датчик влажности

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


          
          Самые популярные датчики для Arduino

Может работать как в аналоговом, так и цифровом режимах. Пример схемы подключения для системы автоматического полива с краном на базе двигателя:


          
          Самые популярные датчики для Arduino

И пример программного кода для обработки цифрового сигнала с датчика влажности:


          
          Самые популярные датчики для Arduino


          
          Самые популярные датчики для Arduino

Заключение

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

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

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

Цены взяты из интернет-магазинов РФ или Украины. В Китае они стоят в 2 и более раз дешевле.

Алексей Бартош

Прокомментировать

Рубрики

Это вы еще не читали

Биржа ссылок Gogetlinks
Биржа статей Webartex