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

Содержание:

Схема датчика освещения на фоторезисторе и реле

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

#define PIN_RELAY 10
#define PIN_PHOTO_SENSOR A0

void setup() {
  pinMode(PIN_RELAY, OUTPUT);
  digitalWrite(PIN_RELAY, HIGH);
}

void loop() {
  int val = analogRead(PIN_PHOTO_SENSOR);
  if (val < 300) {
    // Светло, выключаем реле
    digitalWrite(PIN_RELAY, HIGH);
  } else {
    // Темновато, включаем лампочку
    digitalWrite(PIN_RELAY,  LOW);
  }
}

Как подключить ультразвуковой датчик к Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • УЗ дальномер HC-SR04;
  • 1 светодиод и резистор 220 Ом;
  • провода «папа-папа» и «папа-мама».

Схема подключения ультразвукового датчика к Arduino Uno

Схема подключения указана на рисунке выше. Отметим, что ультразвуковой дальномер HC-SR04 имеет диапазон измерения от 2 см до 400 см, работает при температурах от 0° до 60° С. Точность измерения составляет ± 1 см, рабочее напряжение датчика до 5,5 В. Для начала мы используем простой скетч, без использования библиотеки Ultrasonic. После подключения к Arduino дальномера HC-SR04 загрузите следующий скетч:

Скетч для подключения датчика hc-sr04 к Arduino

int trigPin = 8; // назначаем имя для Pin8
int echoPin = 9; // назначаем имя для Pin9
 
void setup() { 
  Serial.begin (9600); // подключаем монитор порта
  pinMode(trigPin, OUTPUT); // назначаем trigPin (Pin8), как выход
  pinMode(echoPin, INPUT); // назначаем echoPin (Pin9), как вход
} 
 
void loop() { 
  int duration, cm; // назначаем переменную "cm" и "duration" для показаний датчика
  digitalWrite(trigPin, LOW); // изначально датчик не посылает сигнал
  delayMicroseconds(2); // ставим задержку в 2 ммикросекунд

  digitalWrite(trigPin, HIGH); // посылаем сигнал
  delayMicroseconds(10); // ставим задержку в 10 микросекунд
  digitalWrite(trigPin, LOW); // выключаем сигнал

  duration = pulseIn(echoPin, HIGH); // включаем прием сигнала

  cm = duration / 58; // вычисляем расстояние в сантиметрах

  Serial.print(cm); // выводим расстояние в сантиметрах
  Serial.println(" cm");

  delay(1000); // ставим паузу в 1 секунду
}

Пояснения к коду:

  1. для подключения выходов Trig и Echo на датчике сонара Ардуино можно использовать любые цифровые входы на микроконтроллере;
  2. чтобы получить значение датчика в миллиметрах следует использовать следующую формулу для расчета: .

Достоинства и недостатки

Достоинствами ИК датчиков движения Ардуино принято считать:

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

Существуют и недостатки:

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

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

Внутренняя структура датчика газа MQ-2

Датчик фактически заключен в два слоя тонкой сетки из нержавеющей стали, которая называется «антивзрывной сеткой» (anti-explosion network). Она гарантирует, что нагревательный элемент внутри датчика не вызовет взрыва, когда мы ищем легковоспламеняющиеся газы.

Рисунок 3 – Внешние компоненты датчика газа MQ-2

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

Рисунок 4 – Внутренняя структура с чувствительным элементом и соединительными выводами

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

Остальные четыре вывода (A и B), отвечающие за выходные сигналы, подключены с использованием платиновых проводов. Эти провода соединены с корпусом чувствительного элемента и передают небольшие изменения тока, который проходит через чувствительный элемент.

Рисунок 5 – Чувствительный элемент – керамика на основе оксида алюминия с покрытием из диоксида олова

Трубчатый чувствительный элемент изготовлен из керамики на основе оксида алюминия (Al2O3) и покрыт диоксидом олова (SnO2). Диоксид олова здесь является наиболее важным материалом, будучи чувствительным к горючим газам. Керамическая подложка просто увеличивает эффективность нагрева и обеспечивает постоянное нагревание площади датчика до рабочей температуры.

Рисунок 6 – Внутренняя структура чувствительного элемента датчика газа MQ-2

Итак, никель-хромовая катушка и керамика на основе оксида алюминия образуют систему подогрева; в то время как платиновые проволоки и покрытие из диоксида олова образуют сенсорную систему.

Подключение датчика уровня воды с Arduino

Давайте подключим датчик уровня воды к Arduino.

Сначала вам нужно подать питание на датчик. Для этого вы можете подключить вывод +(VCC) на модуле к выводу 5V на Arduino, а вывод -(GND) модуля к выводу GND Arduino.

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

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

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

Наконец, подключите вывод S (Signal) к выводу A0 аналого-цифрового преобразователя Arduino.

Схема соединений показана на следующем рисунке.

Рисунок 4 – Схема подключения датчика уровня воды к Arduino

Калибровка датчика звука

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

Для калибровки цифрового выхода (OUT) модуль содержит встроенный потенциометр.

Поворачивая движок потенциометра, вы можете установить пороговое значение. Таким образом, когда уровень звука превышает пороговое значение, светодиод статуса загорается, а на цифровой выход (OUT) выдается низкий логический уровень.

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

Теперь ваш датчик откалиброван и готов к использованию.

Недостатки

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

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

Вторая модель

Датчик Steinel

Датчики присутствия Steinel (наиболее популярная модель — ir quattro com1) на сегодняшний день разрабатываются немцами.

Эти устройства могут считывать сигнал следующих видов:

  • инфракрасный или тепловой параметр;
  • высокочастотный параметр;
  • ультразвук.

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

  • туалет;
  • ванная комната;
  • санитарный узел;
  • коридор;
  • кабинет.

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

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

Накладной тип

  • потолочный;
  • внутренний;
  • накладной.

Модели Steinel между собой могут различаться по следующим показателям:

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

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

Подключение DS18B20 к Arduino

DS18B20 является цифровым датчиком. Цифровые датчики передают значение измеряемой температуры в виде определенного двоичного кода, который поступает на цифровые или аналоговые пины ардуино и затем декодируется. Коды могут быть самыми разными, ds18b20 работает по протоколу данных 1-Wire. Мы не будем вдаваться в подробности этого цифрового протокола, укажем лишь необходимый минимум для понимания принципов взаимодействия.

Обмен информацией в 1-Wire происходит благодаря следующим операциям:

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

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

  • Arduino IDE;
  • Библиотека OneWire, если используется несколько датчиков на шине, можно использовать библиотеку DallasTemperature. Она будет работать поверх OneWire.

Из оборудования понадобятся:

  • Один или несколько датчиков DS18B20;
  • Микроконтроллер Ардуино;
  • Коннекторы;
  • Резистор на 4,7 кОм (в случае подключения одного датчика пойдет резистор номиналом от 4 до 10K);
  • Монтажная плата;
  • USB-кабель для подключения к компьютеру.

К плате Ардуино UNO датчик подключается просто: GND с термодатчика присоединяется к GND Ардуино, Vdd подключается к 5V, Data – к любому цифровому пину.

Простейшая схема подключения цифрового датчика DS18B20 представлена на рисунке.

В режиме паразитного питания контакт Vdd с датчика подключается к GND на Ардуино – в этом случае пригодятся только два провода. Работу в паразитном режиме лучше не использовать без необходимости, так как могут ухудшиться быстродействие и стабильность.

Пример для Espruino

В качестве мозга для считывания показаний с датчика рассмотрим платформы из серии Espruino, например, Iskra JS.

Схема устройства

Подключите IMU-сенсор к пинам питания и шины I²C — SDA и SCL платформы Iskra JS. Для коммуникации используйте
соединительные провода «мама-папа».

Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Iskra JS методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.

С Troyka Slot Shield провода не понадобятся вовсе.

Вывод показателей сенсоров

В качестве примера выведем в консоль следующие данные:

  • гироскопа: угловую скорость вокруг собственных осей X, Y, Z;
  • акселерометра: направление и величину ускорения свободного падения по осям X, Y, Z;
  • компаса: значения азимута;
  • барометра: абсолютное давление и температуру окружающей среды.
imu-read-data.js

Тестирование работы проекта

В нашем проекте мы подключили датчик расхода воды к водопроводной трубе. Если по трубе не течет воды, то на выход датчика расхода воды не поступает никаких импульсов, следовательно, не регистрируется прерываний на контакте 2 платы Arduino и значение переменной flow_frequency будет равно нулю. В этом случае выполняется код основной программы, идущий после оператора else.

Если по трубе протекает вода, то турбина (колесо, крыльчатка) внутри датчика расхода воды начинает вращаться, поэтому на выходе датчика расхода воды появляются электрические импульсы, генерируемые датчиком Холла. Каждый из этих импульсов вызывает срабатывание прерывания на контакте 2 платы Arduino. С каждым поступившим сигналом прерывания (rising edge – передний фронт импульса) значение переменной flow_frequency увеличивается на 1. Затем переменные current time и cloopTIme гарантируют, что значение переменной flow_frequency будет учитываться в расчетах каждую секунду. После проведения вычислений значение переменной flow_frequency устанавливается равным 0 и процесс начинается сначала.

Более подробно работу проекта вы можете посмотреть в видео, приведенном в конце статьи.

Понятие фотодиода

Фотодиод, ФД — это полупроводниковая деталь, тот же диод, как и он пропускает ток в одну сторону, с p-n (p-i-n) переходом, но из материала, который меняет свои качества при влиянии оптического излучения, инициируя процессы, создающие электроток.

Если свет полностью отсутствует, не падает на такую радиодеталь, то она в спокойном состоянии, в равновесии, имеет качества аналогичные простому диоду.

Если же на чувствительный участок попадает УФ или ИК-излучение, то элемент начинает реагировать, преобразовывать этот поток в электричество.

Надо отличать разные радиодетали с приставкой «фото»:

  • рассматриваемый нами фотодиод. Кратко выразить суть «фото» или «опто», «гальванического» (такие названия применяют реже) диода, которая сразу же отличит его, можно одним предложением: деталь преобразует свет в ток;
  • фототранзисторы. «Два в одном», это объединенные одним корпусом фотоэлемент и транзистор, который открывается от количества подаваемого света. То есть, если на рассмотренных ниже нами схемах эти элементы разнесены, то в данном случае они в одной опрессовке. Вместо связки отдельных указанных деталей можно применить такую цельную запчасть, если она подходит по параметрам;
  • фоторезисторы. Меняют сопротивление (тут это ключевой параметр) в зависимости от уровня освещенности.

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

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

Светодиод часто сотрудничает в схемах с фотодиодом. Первый инициирует сработку второго: его ставят напротив, и когда включают, поток света падает на первый элемент, активизирует его, а тот подает сигнал исполнительному узлу. Такой принцип применен для пультов ДУ, разнообразных приемников ИК-сигналов, а также для оптических (лазерных) сигнализаций, активируемых, если злоумышленником пересекается световой поток.

Итак, фотоэлемент преобразует свет, попадающий на его чувствительный сегмент, в электрозаряд. Такой процесс происходит, из-за возникновения особых процессов при движении частичек-транспортировщиков заряда на атомном уровне при облучении p-n зоны. Данное явление обуславливается изменениями свойств применяемых материалов (полупроводников).

Если на фоторезисторах меняется именно проводимость при движении транспортировщиков заряда, то на фотодиодах появляется ток на сегментах смыкания p-n переходов — в этом их отличие.

Структура

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

Фотодиод схема структуры:

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

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

Наиболее популярен датчик 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.

Инструкция по изготовлению лодки с пультом

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

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

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

Размеры и форма лодки могут быть абсолютно разными — все зависит лишь от фантазии. Что касается прорезей, то они должны соответствовать размерам деталей. На трафарете (слева-направо) размечены прорези для: платы Ардуино UNO, сервомотора, привода киля и микромоторчика. Учтите, что привод от сервомотора к килю должен свободно ходить в прорези, для этого надо точно рассчитать радиус.

2. Изготовление деталей для привода и управления

Изготовление деталей для привода и управления лодкой

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

Сборка деталей для привода радиоуправляемой лодки

3. Сборка лодки на Ардуино с управлением

Для начала следует установить плату, сервопривод и двигатель

В этом проекте мы обошлись без использования макетной платы. Если вспомнить схему подключения ИК приемника к Ардуино, то она очень проста (слева-направо): A0 — GND — 5V  и не требует расходов на приобретение макетной платы. Транзистор мы использовали в этой схеме для включения советского электромоторчика от 3,3 V.

Сборка электрической схемы лодки на ИК управлении

Транзистор размещен на пинах 12, 11 и 10. На Pin11 (средняя ножка транзистора — это база) мы подаем напряжение для включения электродвигателя. Pin12 и Pin10 в скетче не используются, поэтому служат нам эмиттером и коллектором. К Pin12 подключен выход 3,3 V, а к Pin10 подключен электромоторчик (красный плюсовой провод).

4. Крепление привода винта на валу двигателя

Разогрейте стержень от ручки над паяльником и он зайдет на вал двигателя

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

Скетч для лодки на Ардуино с ИК пультом

#include <IRremote.h> // библиотека для IR-приемника
#include <Servo.h>      // библиотека для сервомотора

// Замените коды команд от пульта ДУ на свои значения
#define forward 16736925
#define left 16769565
#define right 16754775
#define turm_left 16712445
#define turm_right 16711935
#define stope 16755285

Servo servo; // присваиваем имя сервомотору

int RECV_PIN = A0;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600); // подключаем монитор, чтобы узнать коды кнопок пульта
  irrecv.enableIRIn();
  pinMode(11, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(A0, INPUT);
  servo.attach (7);
}

void loop() {
  
    if (irrecv.decode(&results)) {
    
    Serial.println(results.value); // выводим на монитор порта коды с пульта ДУ

    if (results.value == left) {
    servo.write(60);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == right) {
    servo.write(120);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == turm_left) {
    servo.write(10);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == turm_right) {
    servo.write(170);
    digitalWrite(11, HIGH);  
   }
   
    if (results.value == forward) {
    servo.write(90);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == stope) {
    servo.write(90);
    digitalWrite(11, LOW);
   }
   
    irrecv.resume(); // Ждем следующий сигнал от пульта
  }  
}

В случае успешного тестирования ИК-управления сервомотором, можно приступать к испытанию проекта на Ардуино для начинающих в реальных условиях. Но перед этим обязательно позаботьтесь о защите электрических схем и микроконтроллера от возможных брызг воды и влаги. Для этого можно использовать пищевую пленку (пленка свободно пропустит ИК сигнал от пульта дистанционного управления).

Ниши применения

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

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

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

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

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

PIR-sensor конструктивно разделен на две половины

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

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

  • Зона обнаружения движущихся объектов составляет от 0 до 7 метров;
  • Диапазон угла слежения – 110°;
  • Напряжение питания – 4.5-6 В;
  • Рабочий ток – до 0.05 мА;
  • Температурный режим – от -20° до +50°С;
  • Регулируемое время задержки от 0.3 до 18 с.

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

Принцип работы датчика движения на Arduino следующий:

  • Когда устройство установлено в пустой комнате, доза излучения, получаемая каждым элементом постоянна, как и напряжение;
  • При появлении в комнате человека, он первым делом попадает в зону обозрения первого элемента, на котором появляется положительный электрический импульс;
  • Когда человек перемещается по комнате, вместе с ним перемещается и тепловое излучение, которое попадает уже на второй сенсор. Этот PIR-элемент генерирует уже отрицательный импульс;
  • Разнонаправленные импульсы регистрируются электронной схемой датчика, которая делает вывод, что в поле зрения Pir-sensor Arduino находится человек.

KY-009, модуль RGB SMD светодиода

Модуль RGB SMD светодиода

 Заменяется на модуль 2020 или 5050 RGB SMD. Стоимость начинается от 1 р за штуку, высылается правда большими партиями, но если поискать то можно найти и поштучно, сам же модуль от 50 р.
 Довольно привлекательный модуль для начинающих. Позволяет работать с RGB матрицей и получать буквально все цвета светового спектра используя ШИМ выходы контроллера. Поставляется БЕЗ токоограничивающих резисторов, поэтому при установке не забудьте их установить. Возможно заменить на обычный RGB светодиод, все зависит от предназначения и места установки. Недостаток- занимает сразу 3 ШИМ выхода микроконтроллера для полноценной работы. Достоинства- можно визуализировать процесс переключением цветов светодиода. Например: зеленый- работа, красный- остановка или аварийный стоп, синий- настройка и т.д. Кроме того в устройствах с температурными датчиками можно визуализировать степень нагрева термоэлемента. Т.е. чем большую температуру имеет датчик тем «краснее» светодиод и наоборот, чем холоднее- тем «синее».

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

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

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

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

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

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

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

Настройка

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

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

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

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

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

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

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

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

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

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

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

Макет:

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

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

Подключение сенсорной кнопки к Ардуино

Для использования сенсорной кнопки, как, впрочем, и всех остальных модулей и датчиков, её необходимо подключить к какой-либо плате arduino. В большинстве случаев используются стандартные модули с тремя контактами: питание, сигнал и земля. Их расположения от модели к модели меняются,  на схеме они отображены согласно недавнему перечислению (сенсорная кнопка заменена переключателем по причине её отсутствии в Tincercad):

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

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

KY-002, датчик вибрации SW-18015P

KY-002 внешний вид

KY-002 схема датчика

 Датчик вибрации стоит около 7 р, сама плата датчика от 60 р за шт.
 Применяется в схемах где необходимо слежение за вибрацией, т.е., например, в схемах автосигнализации на вибрацию корпуса или в производственных схемах за слежением вибрации. У меня такого датчика нет но вероятно устройство следующее: представляет собой трубку в трубке, причем внутренняя трубка имеет некоторые свободный ход. Вероятно подвешена на пружине (в принципе изготовление «на коленке» займет от силы 10 минут). При вибрации внутренняя трубка начинает колебаться и, таким образом, касается стенок наружной трубки. Эти касания подают на выход датчика логический ноль, в то время как в состоянии отсутствия вибрации на выходе логическая единица. Пример обработки сигналов дачтчика вибрации можете посмотреть ЗДЕСЬ.

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

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

  1. Дважды проверьте, что источник питания обеспечивает чистое напряжение питания. Поскольку звуковой датчик – это аналоговая схема, он более чувствителен к шуму, создаваемому блоком питания.
  2. Электретный микрофон в звуковом датчике также чувствителен к механическим вибрациям и шуму ветра. Установка с помощью эластичных/упругих материалов может помочь поглотить вибрацию.
  3. Диапазон чувствительности этого звукового датчика очень мал, возможно, всего 10 дюймов (примерно 25 см), поэтому, чтобы получить хорошую реакцию, вам нужно создавать шум намного ближе.

Модуль инфракрасного светодиода KY-005 [4-5]

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

Модуль имеет габариты 35 х 15 мм и масса 1,3 г. Как понимает автор, подключение данного светодиода ничем не отличается от подключения обычного светодиода видимого диапазона. Центральный контакт модуля ни к чему не подключен, контакт «-» — общий, контакт «S» — информационный. Последовательно со светодиодом автор включал резистор сопротивлением 200 Ом, при этом ток, потребляемый светодиодом, составил 17 мА. Излучение данного светодиода глазом заметить невозможно.

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

Заключение

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector