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

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

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

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

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

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

  • Аналоговые;

  • Цифровые.

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

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

  • Давления;

  • Влажности;

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

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

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

  • Вибраций;

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

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

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

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

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

  • Емкостные;

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

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

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

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

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

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

Датчик света

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

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

  • Питание;

  • Земля;

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

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

  • Питание;

  • Земля;

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

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

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

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

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

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

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

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

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

Датчик освещенности на базе интегральной микросхемы BH-1750

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

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

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

Схема модуля GY-302

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

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

Пример скетча для GY-302

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

В начале мы говорим программе о том, что нужно подключить библиотеку 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 мс

Научитесь разрабатывать устройства на базе микроконтроллеров и станьте инженером умных устройств с нуля: Инженер умных устройств

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

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

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

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

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

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

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

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

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

Использование датчиков

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • VCC – питание;

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

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

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

Выводы датчика HC SR04

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

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

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

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

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

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

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

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

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

Датчик температуры

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

Модуль для измерения температуры

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

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

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

Монитор последовательного порта

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

Цифровой датчик температуры DS12B20

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

Внутреннее устройство микросхемы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Полезные статьи про Ардуино:

Как не спалить Ардуино — советы для начинающих

19 шилдов для Arduino на все случаи жизни

Какие бывают дисплеи для Ардуино и как их подключить

10 интересных проектов для Ардуино

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

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

  • BMP180;

  • BMP280;

  • BME280.

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

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

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

  • Давления;

  • Влажности.

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

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

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

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

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

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

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

Пример датчика в разрезе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кран для защиты от протечки

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

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

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

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

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

Схема подключения датчика влажности к Ардуино

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

Пример программного кода для обработки цифрового сигнала с датчика влажности
Цифровой датчик температуры и влажности AM2302

Заключение

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

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

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

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

10 причин, почему вы должны изучать электронику

7 учебных курсов по работе с Ардуино, онлайн обучение проектированию и конструированию электронной аппаратуры

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

EnglishRussianUkrainian