Курс arduino — датчики

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

Рассказываем как подключать различные устройства к платформе Ардуино (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 на Ардуино.

Выводы

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

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

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

Ардуино: инфракрасный датчик движения, ПИР

Тема сегодняшнего урока — датчик движения на основе пироэлектрического эффекта (PIR, passive infrared motion sensor). Такие датчики часто используются в охранных системах и в быту для обнаружения движения в помещении. Например, на принципе детектирования движения основано автоматическое включение света в подъезде или в ванной. Пироэлектрические датчики достаточно простого устроены, недороги и неприхотливы в установке и обслуживании.

Читайте также  Светодиодный светильник с драйвером на микросхеме tl494

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

Принцип действия пироэлектрических датчиков движения

Пироэлектрики — это диэлектрики, которые создают электрическое поле при изменении их температуры. На основе пироэлектриков делают датчики измерения температуры, например, LHI778 или IRA-E700. Каждый такой датчик содержит два чувствительных элемента размером 1×2 мм, подключенных с противоположной полярностью. И как мы увидим далее, наличие именно двух элементов поможет нам детектировать движение.

Вот так выглядит датчик IRA-E700 компании Murata.

На этом уроке мы будем работать с датчиком движения HC-SR501, в котором установлен один такой пироэлектрический датчик. Сверху пироэлектрик окружен полусферой, разбитой на несколько сегментов. Каждый сегмент этой сферы представляет собой линзу, которая фокусирует тепловое излучение на разные участки ПИР-датчика. Часто в качестве линзы используют линзу Френеля.

Принцип работы датчик движения следующий. Предположим, что датчик установлен в пустой комнате. Каждый чувствительный элемент получает постоянную дозу излучения, а значит и напряжение на них имеет постоянное значение (левый рисунок).

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

Человек движется, и его тепловое излучение через линзы попадает уже на второй PIR-элемент, который генерирует отрицательный импульс. Электронная схема датчика движения регистрирует эти разнонаправленные импульсы и делает выводы о том, что в поле зрения датчика попал человек. На выходе датчика генерируется положительный импульс (правый рисунок).

Настройка HC-SR501

На этом уроке мы будем использовать модуль HC-SR501. Этот модуль очень распространен и применяется во множестве DIY проектов в силу своей дешевизны.

У датчика имеется два переменных резистора и перемычка для настройки режима. Один из потенциометров регулирует чувствительность прибора. Чем она больше, тем дальше «видит» датчик. Также чувствительность влияет на размер детектируемого объекта. К примеру, можно исключить из срабатывания собаку или кошку.

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

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

В положении H датчик начинает отсчет времени T каждый раз после обнаружения движения. Другими словами, любое шевеление человека вызовет обнуление таймера отсчета Т. По-умолчанию, перемычка находится в состоянии H.

Подключение HC-SR501 к Ардуино Уно

Для соединения с микроконтроллером или напрямую с реле у HC-SR501 имеется три вывода. Подключаем их к Ардуино по следующей схеме:

HC-SR501 GND VCC OUT
Ардуино Уно GND +5V 2

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

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

Программа

Как уже было сказано, цифровой выход датчика HC-SR501 генерирует высокий уровень сигнала при срабатывании. Напишем простую программу, которая будет отправлять в последовательный порт «1» если датчик увидел движение, и «0» в противном случае.

Загружаем программу на Ардуино и проверяем работу датчика. Можно покрутить настройки датчика и посмотреть как это отразится на его работе.

Управление светом при помощи датчика движения

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

Будем использовать модуль реле с защитой на основе опторазвязки, о котором мы уже писали в одном и уроков ( урок про реле ).

Внимание! Данная схема зажигает лампу от сети 220 Вольт. Рекомендуется семь раз проверить все соединения, прежде чем соединять схему с бытовой электросетью.

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

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

Программа

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

Загружаем программу на Ардуино, аккуратно подключаем схему к бытовой сети и проверяем работу датчика.

Заключение

Датчики движения окружают нас повсюду. Благодаря охранным системам, их можно встретить практически в каждом помещении. Как мы выяснили, они очень просты в использовании и могут быть легко интегрированы в любой проект на Ардуино или Raspberry Pi.

Вот несколько ситуаций и мест, где может пригодиться датчик движения:

  • автоматическое включение света в подъезде дома, в ванной комнате и туалете, перед входной дверью в помещение;
  • сигнализация в помещении и во дворе;
  • автоматическое открывание дверей;
  • автоматическое включение охранной видеокамеры.

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

Ардуино: инфракрасный датчик движения, ПИР : 15 комментариев

В туалете не вариант, т.к. пока стоишь, он выключает свет. Чтобы не выключал свет, приходится махать руками. Когда машешь руками, точность попадания ухудшается. Так что не вариант, ребята.

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

тоже не вариант… минуту в толкане сидишь, читаешь газету и вырубается )) и не вариант увеличивать тайм-аут… т.к. вышел с комнаты и свет еще горит N-ное время. По умолчанию кстати перемычка в положении H стоит ))
Нужно комбинировать датчики, если хотите, чтобы свет сразу вырубился после ухода с комнаты и не вырубался в вашем присутствии…
Комбинировать PIR и микроволновый датчик, либо использовать еще ультразвуковой датчик, но с условием изменения постоянного расстояния (при изменении постоянного расстояния выдавать true)

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

  • Описание датчика движения
  • Базовые технические характеристики
  • Основные принципы работы
  • Общая схема подключения
  • Пример работы
  • Настройка
  • Соединение датчика с контроллером
  • Программная часть
  • Где можно применить
  • Недостатки
  • Заключение
  • Видео по теме

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

Описание датчика движения

Создаваемые на базе Ардуино сенсоры перемещения устроены довольно просто. Они работают на принципе регистрации инфракрасных излучений. Помимо контроллера, основной компонент устройства — высокочувствительный пассивный пироэлектрический (PIR) элемент, регистрирующий присутствие определенного уровня инфракрасного спектра. Чем теплее появившийся в радиусе действия сенсора объект, тем сильнее излучение.

Типичный PIR-датчик снабжается полусферой с фокусирующими поступающую на сегменты сенсора тепловую энергию линзами. Обычно применяется линза Френеля: она хорошо концентрирует тепло и существенно увеличивает чувствительность. В качестве платформы нередко берут Arduino Uno, но возможно создание датчика и на других версиях контроллера.

Конструктивно PIR-сенсор делится на две части. Поскольку для устройства принципиально важно улавливание движения в зоне покрытия, а не уровень тепловой эмиссии, части устанавливаются так, чтобы при появлении на одной из них большего уровня излучения на выход гаджета подавался сигнал low или high. Далее он обрабатывается микроконтроллером.

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

Базовые технические характеристики

Большинство PIR-датчиков соответствуют следующим параметрам:

  • зона уверенной детекции движения — до 7 м;
  • угол слежения — до 110 градусов;
  • рабочее напряжение — от 4.5 до 6 В;
  • диапазон температур — от -20 до +50 градусов;
  • время задержки 0.3–18 сек.
Читайте также  Измеритель ёмкости аккумуляторов (li-ion/nimh/nicd/pb)

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

Основные принципы работы

Пироэлектрик представляет собою материал, при изменении своей температуры генерирующий электрическое поле. В простом PIR-сенсоре два таких элемента, подключенных с разными полярностями.

Предположим, что гаджет смонтирован в помещении.

  1. Если комната пуста, все элементы получают одинаковую порцию теплового излучения, напряжение на них также постоянно (на левой части рисунка ниже).
  2. Когда в комнате появляется человек, он оказывается в зоне действия элемента 1. Тот генерирует положительный электроимпульс (на центральной части картинки).
  3. Перемещение человека приводит и к движению его «теплового пятна», улавливаемого элементом 2. Второй элемент создает отрицательный импульс (правая часть).
  4. Схема датчика регистрирует оба импульса, делая вывод о наличии человека в «поле зрения». А логика контроллера по этому сигналу выполняет заложенное пользователем действие — включает свет, активирует сигнализацию и так далее.

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

Общая схема подключения

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

Обычно выходов три: GND — заземление, второй — +5 В, он выдает сигнал с ИК-сенсоров. Третий — цифровой, для снятия данных

Принцип соединения с контроллером следующий:

  • GND — на любой доступный пин «земли» платы Arduino;
  • «цифра» — на любой свободный цифровой вход/выход;
  • коннектор питания следует подключить к выходу +5 В.

Пример работы

Рассмотрим ситуацию использования датчика на примере микроконтроллера Ардуино Уно и сенсора HC-SR501. Его характеристики:

  • рабочее напряжение постоянного тока — 4.5–20 В;
  • ток покоя — ≈ 50 мкА;
  • выходное напряжение — 3.3 В;
  • диапазон температур — от −15 до +70 градусов Цельсия;
  • габариты — 32×24 мм;
  • угол детектирования — 110 градусов;
  • дистанция срабатывания — до 7 метров.

Важно: при температурах от +30 градусов эффективное расстояние детекции может снизиться.

В указанном сенсоре установлены два пироэлектрических датчика IRA-E700.

Сверху они прикрыты сегментированной полусферой. Каждый сегмент — фокусирующая тепло на определенный участок ПИР-датчика линза.

Внешний вид устройства:

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

Настройка

ИК-модуль HC-SR501 весьма прост в настройке и дешев. У него есть перемычка для конфигурирования режима и пара подстроечных резисторов. Общая чувствительность настраивается первым потенциометром: чем она выше, тем шире зона «видимости» гаджета».

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

Другой потенциометр управляет временем срабатывания устройства: если обнаружено перемещение, на выходе создается положительный электрический импульс определенной длины (от 5 до 300 секунд).

Следующий управляющий элемент — перемычка. От нее зависит режим работы.

  • в позиции L время отсчитывается от первого срабатывания. То есть, к примеру, если человек зайдет в помещение, система среагирует и включит свет на указанное настройкой потенциометра время. Когда оно истечет, выходной сигнал возвращается к начальному показателю, и комплекс перейдет в режим ожидания следующей активации;
  • в позиции H обратный отсчет будет начинаться после каждого детектирования события движения, а любое перемещение станет обнулять таймер. В этом положении перемычка стоит по умолчанию.

Соединение датчика с контроллером

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

Пин OUT соединяется с пином 2 Уно, а VCC подсоединено к контакту +5 В. Принципиальная схема конструкции:

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

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

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

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

Программа для реализации данного функционала:

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

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

Где можно применить

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

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

Недостатки

В силу отработанности аппаратной платформы, хорошо документированных схем, простоты разработки ПО и дешевизны PIR-датчики на Ардуино не обладают особыми недостатками в рамках возлагаемых на них задач. Возможности их применения ограничиваются естественными пределами ИК-технологии, периферийным оборудованием и заложенными в прошивку контроллера функциями.

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

Заключение

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

Находят они применение и в системах сигнализации и видеонаблюдения: по сигналу включается оповещение или запись события. Гибкость Arduino позволяет реализовать даже очень сложные проекты, например, включения сенсора в экосистему «умного дома». Хотя существуют и более продвинутые лазерные, ультразвуковые и тепловизионные варианты, ИК-детекторы в данной сфере остаются самым доступным и простым решением.

Видео по теме

Считывание показаний датчиков с помощью Arduino

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

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

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

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

Эксперимент 1: датчик расстояния

В этом эксперименте мы будем использовать датчик расстояния Sharp GP2Y0A21YK для управления яркостью светодиода.

Инфракрасный (IR) датчик SHARP

Необходимые комплектующие

  • 1 x Arduino Mega2560;
  • 1 x макетная плата;
  • 1 x светодиод;
  • 5 x перемычка;
  • 1 x резистор 470 Ом;
  • 1 X датчик расстояния Sharp GP2Y0A21YK.

Схема соединений

Датчик расстояния Sharp может обнаруживать объекты на расстояниях от 10 до 80 см. Он излучает импульс инфракрасного света, а затем определяет угол, на котором отражается этот свет. Чем дальше объект, тем ниже выходное напряжение. Если датчик не принимает отраженный свет, то напряжение на его выходе составит 0 В. Если объект находится на расстоянии 10 см или ближе, выходное напряжение будет равно 5 В (в этом эксперименте мы подаем на датчик напряжение питания 5 В).

Выход датчика подключается к аналоговому входу Arduino. Аналого-цифровой преобразователь (ADC) Arduino затем преобразует это напряжение в значение от 0 до 1023. Затем это значение преобразуется в значение от 0 до 255, и это число используется для установки коэффициента заполнения сигнала на широтно-модулированном (ШИМ) выходе, который управляет яркостью светодиода. В результате, чем ближе объект к датчику расстояния, тем ярче светит светодиод.

Видео

Эксперимент 2: датчик температуры

В этом эксперименте Arduino будет измерять температуру с помощью микросхемы датчика LM35. LM35 – это низковольтная микросхема, которая требует питания постоянным напряжением от +4 до +20 вольт. Это идеально, потому что мы можем подключить датчик к выводу +5V на плате Arduino. LM35 имеет всего 3 вывода: два для питания и один для аналогового выхода. Выходной вывод представляет собой аналоговый выход, напряжение на котором линейно пропорционально температуре в градусах Цельсия. Выходной сигнал находится в диапазоне от 0 до 1,5 вольта. Выходное напряжение 9 В соответствует температуре 0°C, и при каждом повышении температуры на один градус оно увеличивается на 10 мВ. Чтобы преобразовать выходное напряжение в температуру, вам необходимо просто разделить выходное напряжение в мВ на 10. Например, если выходное напряжение равно 315 мВ (0,315 В), температура равна 31,5°C.

Назначение выводов микросхемы LM35

Необходимые комплектующие

  • 1 x датчик температуры LM35;
  • 2 x светодиод;
  • 1 x коробок спичек;
  • 2 X резистор 470 Ом;
  • 1 x Arduino Mega2560;
  • 1 x макетная плата;
  • 10 x перемычка.

Схема соединений

Выходной вывод LM35 (вывод 2) подключен к выводу A0 Arduino. Код использует функцию analogRead() для преобразования выходного напряжения в число между 0 и 1023. Умножение этого числа на 0.48828125 преобразует его в градусы Цельсия, которые и отображаются в мониторе последовательного порта.

Видео

Измерение скорости и объема потока воды с помощью Arduino

Если вы посещали когда-нибудь промышленные предприятия, на которых используется вода в том или ином виде, вы могли заметить что ее потребление на этих предприятиях автоматизировано. К примеру, предприятия по изготовлению каких-нибудь напитков или предприятия химической промышленности непрерывно измеряют расход (объем) воды, который они потребляют. Для этой цели чаще всего используются так называемые датчики расхода воды (Flow Sensor). Используя подобный датчик и любой микроконтроллер, например, Arduino, мы можем определять скорость потока воды и, следовательно, можем рассчитать объем воды, который прошел через трубу. Также подобные датчики расхода воды широко применяются в сельском хозяйстве, приготовлении еды, горнодобывающей промышленности, системах очистки воды, кофе-машинах и т.д. Рассмотренный в этой статье датчик расхода воды будет хорошим дополнением к таким проектам на основе платы Arduino на нашем сайте как автоматический дозатор воды и автоматическая система полива растений.

В этой статье мы рассмотрим подключение датчика расходы воды (water flow sensor) к плате Arduino. Измеренный объем (расход) воды мы будем отображать на экране ЖК дисплея, подключенного к плате Arduino. Для нашего проекта мы использовали датчик расхода воды YF-S201, который использует эффект Холла для измерения скорости потока жидкости.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Датчик расхода воды (water flow sensor) YF-S201 (купить на AliExpress).
  3. ЖК дисплей 16х2 (купить на AliExpress).
  4. Потенциометр 10 кОм (купить на AliExpress).
  5. Соединительные провода.
  6. Водопроводная труба.

Датчик расхода воды YF-S201

Как показано на рисунке, датчик YF-S201 имеет три провода: красный, желтый и черный. Красный провод используется для подачи питающего напряжения, которое может составлять от 5V до 18V, а черный провод подключается к земле (GND). Через желтый провод осуществляется передача выходных импульсов датчика, которые могут быть считаны микроконтроллером. Измеряющим элементом датчика является вихревое колесо (pinwheel), которое измеряет количество жидкости, прошедшее через него.

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

Для соединения датчика YF-S201 с водопроводной трубой мы использовали два коннектора с внутренней резьбой, показанные на следующем рисунке.

В соответствии со спецификацией на датчик YFS201 максимальный потребляемый ток при питающем напряжении 5V составляет 15mA. При этом измеряемая им скорость потока воды составляет от 1 до 30 литров в минуту. Когда через датчик протекает поток воды, он контактирует с лопатками турбины (колеса), расположенного на пути потока воды. Ось турбины соединена с датчиком Холла, поэтому всегда, когда через датчик протекает поток воды, датчик Холла генерирует электрические импульсы. Все что нам нужно сделать для измерения скорости потока воды – это измерять время между этими импульсами или подсчитывать количество этих импульсов за 1 секунду. С помощью этих данных затем мы можем рассчитать скорость потока воды в литрах в минуту (L/Hr — liter per hour) и далее с помощью простой формулы найти объем воды, который прошел (протек) через трубу. Для подсчета количества импульсов от датчика расходы воды мы будем использовать плату Arduino Uno.

Схема проекта

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

Соединения между платой Arduino, ЖК дисплеем 16×2 и датчиком расхода воды представлены в следующих таблицах ниже. Потенциометр подключен к контактам 5V и GND, а его средний контакт подключен к контакту V0 ЖК дисплея.

Датчик расхода воды Плата Arduino
красный провод 5V
черный провод GND
желтый провод 2
ЖК дисплей Плата Arduino
Vss GND (ground rail of breadboard)
VDD 5V (Positive rail of the breadboard)
V0 к потенциометру
RS 12
RW GND
E 11
D7 9
D6 to D3 3 to 5

После сборки проекта на макетной плате у нас получилась конструкция следующего вида:

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В начале программы необходимо подключить библиотеку для работы с ЖК дисплеем, а также указать плате Arduino, к каким ее контактам подключен ЖК дисплей, в нашем случае это контакты 12, 11, 5, 4, 3, 9. Выходной контакт датчика расходы воды подключен к контакту 2 платы Arduino UNO.