Датчик движения arduino: Arduino и HC-SR501 (датчик движения)

Содержание

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

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

Особенности конструкции инфракрасного PIR датчика

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

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

Конструкция

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

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

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

Особенности фокусирующей линзы

Конструкция пироэлектрического элемента не позволяет ему принимать инфракрасное излучение с достаточной эффективностью. Для концентрации потока тепловых лучей используется специальная линза. Существует два варианта конструкции:

  • Линза ФренеляОт обычных линз она отличается более плоской, компактной формой. Поверхность такой линзы разделена на участки, обеспечивающие фокусировку лучей в заданной точке. Эффективность линзы Френеля не уступает традиционным видам, но габариты значительно меньше. Это важно для датчиков, использующихся в технологических линиях, или предназначенных для скрытого монтажа.
  • Сферическая выпуклая линза.Вся поверхность этой линзы разделена на отдельные сегменты, являющиеся самостоятельными линзами. Такая конструкция увеличивает угол охвата датчика, позволяя с одинаковой эффективностью принимать ИК поток с разных направлений.

Большей популярностью пользуются ПИР-датчики со сферическими линзами, например, модуль HC-SR501. Они способны охватить наибольшее пространство, обеспечить максимальный сектор обзора. Однако, модели с плоскими линзами также пользуются спросом.

Где используется

Инфракрасные ПИР-датчики активно используются в разных сферах деятельности:

  • технологические линии или установки;
  • охранные системы;
  • бытовые комплексы, системы умного дома и тому подобное.

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

Что такое Ардуино

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

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

Где используются

Микропроцессоры Ардуино уже успели стать незаменимыми во множестве систем и комплексов:

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

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

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

  • игрушки;
  • оснащение предметов или аттракционов в квест-румах;
  • интерактивные арт-инсталляции и так далее.

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

 

Пример программы

Простейший скетч для датчика движения Ардуино выглядит следующим образом:

Текст скетча можно скачать здесь: здесь

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

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

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

Подключение датчика движения к Ардуино не представляет особой сложности. На датчик надо подать питание (обычно 5 В, но могут быть и другие варианты), а также присоединить выход сенсора к цифровому входу Ардуино. Схема подключения проста, ее можно наглядно рассмотреть на рисунке:

Контактная группа датчика состоит из трех электродов. Два из них подают питание с Ардуино на датчик, а третий передает сигнал с его выхода на управляющее устройство. Земля (на рисунке это черный провод) подключается к контакту GND группы «power» микрокомпьютера. Рядом с ним находится контакт питания +5 V, к которому надо подключить соответствующий контакт датчика (красный провод на рисунке). Выход, или сигнальный (желтый) провод присоединяют к контакту 2 группы «digital» (так показано на рисунке, но фактически можно подключиться к любому цифровому контакту на плате Ардуино).

Способ подключения ИК датчиков к Ардуино один и тот же, он не меняется при введении другого скетча. Есть разные модели микропроцессоров, отличающиеся от Arduino Uno некоторыми параметрами (количество слотов, размер памяти и тому подобное). Выбор модели зависит от сложности будущих задач и от степени подготовки пользователя.

Инфракрасный датчик расстояния Ардуино

Датчик расстояния (или препятствий) используется в электронных игрушках или бытовых приборах. Он несколько отличается от детекторов движения, так как использует для определения расстояний луч света, испускаемый инфракрасным светодиодом. Отражаясь от препятствий, луч попадает на сенсоры, отчего на выходном электроде появляется сигнал. Его величина зависит от расстояния до препятствия. Рабочая область сравнительно мала, от 10 до 80 см (самые мощные модели способны регистрировать отражения от препятствий на расстоянии 1.5 м). Однако, этого вполне хватает для оснащения бытовых роботов-пылесосов, игрушек и прочих устройств.

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

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

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

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

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

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

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

Видео по теме

Как сделать датчик движения Arduino своими руками, подключение к Ардуино

У меня есть одна территория, насчёт которой я хотел бы знать, если там кто-нибудь будет проходить. Самый простой способ отслеживания – создать устройство с инфракрасным датчиком движения на Ардуино.

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

Таким образом, моя цель: сделать датчик движения Arduino, который отправляет данные с ИК-датчика движения через PHP в базу SQL посредством WiFI модуля ESP8266.

Шаг 1: Список материалов

  • Аналог Ардуино Уно
  • ИК-датчик движения
  • Самый дешевый модуль WiFi ESP8266
  • Провода с джамперами
  • Макетная плата

Шаг 2: соединяем компоненты

Заметка: в документации к модулю вайфай я обнаружил, что ему нужно больше мощности, чем может обеспечить Ардуино 3.3V, но так как у меня не было вариантов, то я постарался запитать его от порта 3. 3V и всё заработало.

Я использовал версию V090 модуля ESP8266 (посмотрите прикреплённое изображение). Так как этот модуль не очень дружит с макетными платами, то её использование необходимо только для того, чтобы запитать два пина чипа ESP8266 при помощи 3.3V.

ИК-датчик соединяется обычным образом, как это делается по умолчанию в образце программы для ИК в библиотеке Ардуино.

Схема соединения:
Arduino | ESP8266
RX (D0) | TX
TX (D1) | RX
3v3 | VCC and CH_PD
GND | GND

Arduino | PIR
D3 | OUT
5v | VCC
GND | GND

Заметьте, что ИК-датчик запитан от 5V, в то время как ESP8266 нужно всего 3.3V. Не соединяйте ESP8266 с 5V, иначе вы поджарите плату.

Шаг 3: PHP

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

В моём примере, я использую 3 страницы: dbconnect.php, add_data.php и review_data.php и у меня есть база данных ‘motion’, в которой есть одноименная таблица, в которой есть столбцы ‘id’, ‘event’ и ‘motion’,, где id и event (временной штамп) создаются автоматически при каждой записи в таблицу.

Github: dbconnect.php —> В этом файле мы создаём соединение с БД, код для этой страницы вы найдёте здесь.
Github: add_data.php —> в этом файле значения на самом деле добавляются в БД. По факту, если просто запустить add_data.php, то ничего не произойдёт и вместо этого нужно ввести add_data.php?motionornot=1 в случае движения, или 0, если движения нет. Этот параметр определяется Ардуино. Код можно найти здесь.
Github: data_review.php —> Эта страница, в зависимости от того, было движение, или нет, показывает таблицу с нулями и единицами. Эта таблица – наш финальный результат. Код для этой страницы вы найдёте здесь.

Шаг 4: Код Ардуино

Теперь, чтобы определить движение и записать 1 (или 0, если движения нет) в БД, на нужно запрограммировать Ардуино. Я написал код таким образом, что если движение было, то Ардуино не будет делать повторную проверку в течение следующих 5 минут. Затем Ардуино проверит движение на следующий 5-минутный интервал, но пока без записи 0 в БД.

Затем, если движения не будет, он отправит 0 в БД. Для более подробного изучения этой части, пройдите по этой ссылке.

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

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

  1. В строках 6 и 7 введите настройки WiFi
  2. В строке 8 введите адрест хоста, где вы разместили файлы .php (например: example.com). Не нужно писать http, не ставьте никаких слэшей и т.д.
  3. В строке 22 вы определяете количество секунд, через которые будут производится измерения.
  4. В строке 98 вы определяете путь к файлу add_data.php file. Если он располагается в «example.com/arduino/add_data.php», то вы пишете: «/arduino/add_data.php»

Шаг 5: Результат

Теперь, если вы посетите страницу example.com/arduino/data_review.php, у вас появится таблица с графиком замеченного движения.

Motion Detectors & Linear Actuators

Детекторы движения

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

Когда вы думаете о детекторах движения, вы обычно думаете о двух типах:

  • Пассивный инфракрасный — Измеряет изменения температуры тела (инфракрасная энергия) для обнаружения движения
  • СВЧ — Измеряет отражение от объектов с помощью микроволн для обнаружения движения

Эти два типа детекторов движения являются наиболее распространенными, поскольку они часто используются в таких приложениях, как системы безопасности. Хотя существует множество других типов датчиков движения, включая зональные отражающие датчики, использующие предполагаемый свет, датчики вибрации и ультразвуковые датчики [1]. Для использования с любителями и проектами DIY наиболее широко доступным и используемым типом датчика движения является пассивный инфракрасный (PIR) датчик движения. По этой причине остальная часть этого блога будет посвящена тому, как использовать датчик движения PIR с вашим линейным приводом. Хотя каждый тип датчика будет иметь разные реализации, многое из того, что описано ниже о том, как управлять линейным исполнительным механизмом с помощью датчика движения, будет одинаково для всех типов датчиков движения.

А как насчет датчиков приближения?

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

Настройка детектора движения PIR

Если вы хотите создать своего собственного робота для отпугивания прыжков на Хэллоуин или у вас есть другой проект, чувствительный к движению, вы захотите использовать свой детектор движения PIR в качестве входного переключателя, чтобы определить, когда ваш линейный привод должен двигаться. Для этого вам понадобится микроконтроллер, например Ардуино, чтобы считывать выходной сигнал вашего детектора движения PIR и управлять линейным приводом. Выход датчика движения PIR аналогичен простой кнопке, когда есть движение, датчик будет отправлять высокий сигнал или напряжение на микроконтроллер, а когда нет движения, он будет отправлять низкий сигнал или напряжение. Вы также можете протестировать датчик PIR перед его установкой в ​​свою конструкцию, поскольку некоторые датчики PIR позволяют регулировать чувствительность датчика для повышения производительности.

 

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

Линейный привод с управлением движением

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

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

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

Другой метод — переключаться между выдвинутым и втянутым положениями линейного привода каждый раз при обнаружении движения, что может быть полезно в приложениях домашней автоматизации. Реализация этого подхода показана выше. В программе обслуживания прерывания флаг MotionDetected переключается каждый раз, когда датчик PIR обнаруживает движение. Когда флаг установлен на высокий уровень, линейный привод выдвигается, а когда флаг установлен на низкий уровень, привод втягивается. Мы также добавили еще один флаг timerFlag, который используется для добавления временной задержки после срабатывания датчика движения PIR. Этот флаг устанавливается в HIGH, когда прерывание запускается впервые, и отправляется в низкий уровень только после расчетной задержки, которая в этом примере составляет одну минуту. Он также используется для обеспечения того, чтобы значение флага motionDetected не переключалось до истечения этой временной задержки.

Справка:

  1. Тросс, К. (октябрь 2019 г.). Руководство по датчикам движения для новичков. Полученное из: https://www.safewise.com/resources/motion-sensor-guide/

Рукожопим датчик освещения базе Arduino Uno R3 MEGA328P и первая ошибка

Проектирую элемент «умного дома». На данный момент из элементов: датчика освещения, который возвращает лишь логический «0» или «1» и датчика движения HC-SR501 базе Arduino Uno R3 MEGA328P. В предыдущем посте я разбирался с датчиком движения, сегодня мы составим алгоритм обработки данных с датчика освещенности.

Что такое Arduino

Прежде хочу рассказать что такое Arduino UNO, да и вообще что такое Arduino.

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

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

Программы легки пишутся на «урезанном» C++ и довольно легки в освоении даже если вы с программированием не слишком знакомы.

Введение

Задача:
  • научиться работать с датчиком 
  • построить оптимальный алгоритм для анализа данных с датчика.
Исходные материалы:
Безусловно вначале необходимо приобрести данные девайсы (ссылки выше) и конечно же проверить:

Начало работы

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

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


Алгоритм

Решение об уровне освещенности принимается на интервале 1 минута.
Минутный интервал разбит на 6 подинтервалов по 10 секунд.
На каждом подинтервале принимается решение об уровне освещенности, если уровень освещенности выше порога и по времени более 10%, то считается что «светло».
На 1 минутном интервале принимается решение только если 100% «темно» или «светло». Это сделано во избежание случайных засветок (мимо проезжающая машина, облака, засветка от термоядерного взрыва…).
Библиотека приложена.


Далее совмещаем работу с датчиком движения.
Логика работы следующая: если в помещении «светло», то выключаем датчик движения и доп. освещение. Если в помещении «темно» и отсутствует движение, то доп. освещение выключено и если движение есть, то включаем доп. освещение.

Есть минусы данного алгоритма и датчиков:

  1. Датчики возвращают лишь логические «0» или «1», а значит количественно оценить данные с датчиков мы не можем
  2. В случае ручного включения основного освещения, система не отличит увеличения уровня освещения от основного источника света или естественного от дополнительного.
Если во втором случае мы можем дополнительно ввести датчик тока в цепь основного освещения или организовать разовую команду от выключателя до Arduino, то в первом случае мне необходимо менять датчики: датчик движения дополню ультразвуковым, а датчик освещения заменю на цифровой, т.е. я буду получать данные в люксах и получать количественную характеристику.

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

Скетч приложен, может кому пригодится

Итог

Библиотека для датчика освещенности
Обновленная библиотека для датчика движения (немного оптимизирован)
Скетч, где задействован и датчик освещенности и датчик движения

Инфракрасный датчик движения HC-SR501 Arduino Pic

Описание

Инфракрасный датчик движения HC-SR501 используется для обнаружения в контролируемой зоне движения объектов, которые излучают инфракрасное излучение (тепло). Принцип работы датчика основан на пироэлектричестве.

 

Пироэлектричество — это свойство генерировать определенное электрическое поле при облучении материала инфракрасными (тепловыми) лучами. Над чувствительным элементом установлена линза Френеля, которая используется для увеличения радиуса обзора и усиления входящего инфракрасного сигнала.

 

Для использования датчика движения HC-SR501 нужно подключить питание, подключить к контроллеру, поместить датчик в среде измерения. Потом нужно записать на контроллер специальную программу, которая позволяет работать с датчиком. После этого можно начинать работу. Не располагаqnt датчик в местах, где быстро меняется температура! Это приведет к тому, что датчик не сможет обнаруживать появление объекта в контролируемой зоне и будет много ложных срабатываний.

 

Модуль имеет два режима работы:

 

1. Режим H. При срабатывании датчика несколько раз подряд на его выходе (на OUT) остается высокий логический уровень.

2. Режим L. На выходе при каждом срабатывании датчика появляется отдельный импульс.

На датчике движения HC-SR501 установлено несколько органов управления и настройки:

 

клеммы для переключения режимов работы, обозначение клемм: L, MD, H.

два подстроечных резистора: Sx — для регулировки чувствительности (от 3 до 7 м). Tx — для установки времени (от 5 до 300 сек), в течении которого при обнаружении движения на OUT будет логическая единица.

Инфракрасный датчик движения HC-SR501 имеет один интерфейс для подключения к микроконтроллеру. Это 3-х контактный штыревой интерфейс.

 

Контакты инфракрасного датчика движения HC-SR501:

 

OUT (выходной сигнал) – контакт для обмена данными между датчиком и микроконтроллером

VCC – напряжение питания

GND – общий контакт

Питание датчика движения HC-SR501 осуществляется от контроллера Arduino, или от другого управляющего микропроцессорного устройства, или от внешнего источника питания (блока питания, батареи). Напряжение питания датчика движения HC-SR501 4,5 – 20 В.

 

Можно использовать с любыми микропроцесорными системами MCU/ARM/PIC/AVR/MSP430/PLC/STM32/Arduino

 

Технические характеристики

 

Напряжение питания постоянного тока: 4,5 – 20 В

Ток на OUT: 60 мА

Напряжение на выходе: высокие и низкие уровни в 3,3 В TTL логике

Дистанция обнаружения: 3 — 7 м (настраивается)

Угол обнаружения: от 120° до 140°

Длительность импульса при обнаружении: 5 — 300 сек (настраивается)

Время блокировки до следующего замера: 2,5 сек. (но можно изменить заменой SMD-резисторов)

Рабочая температура: от -20 до +80°C

Режимы работы: L — одиночный захват, H — повторяемые измерения

Габариты модуля: 32 х 24 х 18 мм

Вес: 5 г

Информация для покупки

Для покупки регистрация не обязательна! Если хотите сделать заказ, — просто добавьте нужные вам товары в корзину, укажите свои данные и нажмите кнопку «Оформить заказ». Мы свяжемся с вами в ближайшее время.

Оплата
— перевод на карту ПБ
— онлайн без комиссии через Приват24 (система LiqPay)
— безналичный расчет без НДС для юридических лиц
— наличными или картой при доставке (только при заказе от 100 грн)
— наличными в офисе

Нашли дешевле? Напишите нам об этом в чат — кнопка в левом нижнем углу экрана. В сообщении укажите ссылку на активную страницу такого же товара в украинском интернет-магазине и мы пересмотрим цену.

Доставка
— Новая Почта
— Укрпочта (только при предоплате)
— Самовывоз (также при необходимости можем отправить на такси по Ивано-Франковску)

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

Гарантия и возврат
— возврат в течение 14 дней, если товар не подошел
— гарантия до 6 месяцев на товары собственного изготовления

Arduino с датчиком движения PIR

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

PIR = (пассивные инфракрасные датчики)

Ссылка на мою страницу в Facebook: https://www.facebook.com/Bihari-Lifehacker-108437444279042/

Подписка: https://www.youtube.com / channel / UC88UigBh28Zn1UrtWgp2DPA

Instagram: https: // www.instagram.com/

G-mail: [email protected]

1) ARDUINO UNO

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

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

2) ПИР-СЕНСОР

ПИК-датчик обнаруживает человека, перемещающегося на расстоянии примерно 10 м от датчика. Это среднее значение, так как фактический диапазон обнаружения составляет от 5 до 12 м. PIR в основном состоят из пироэлектрического датчика, который может обнаруживать уровни инфракрасного излучения. Для множества важных проектов или предметов, которые необходимо обнаружить, когда человек покинул или вошел в зону. Датчики PIR невероятны, они плоские и требуют минимальных усилий, имеют широкий диапазон линз и просты в взаимодействии.

Большинство датчиков PIR имеют 3-контактное соединение сбоку или снизу. Один вывод будет заземлен, другой — сигналом, а последний вывод — питанием. Питание обычно до 5В. Иногда более крупные модули не имеют прямого выхода, а вместо этого просто управляют реле, в котором есть земля, питание и две коммутационные связи. Взаимодействие PIR с микроконтроллером очень легко и просто. PIR действует как цифровой выход, поэтому все, что вам нужно сделать, это прислушаться к переключению контакта вверх или вниз. Движение можно обнаружить, проверив высокий уровень сигнала на одном выводе ввода / вывода.Как только датчик нагреется, выходной сигнал будет оставаться низким до тех пор, пока не появится движение, в это время выходной сигнал будет колебаться на высоком уровне в течение нескольких секунд, а затем вернется к низкому уровню. Если движение продолжается, вывод будет циклически повторяться до тех пор, пока линия обзора датчиков снова не стабилизируется. Датчику PIR требуется время для прогрева с определенной конечной целью для достижения соответствующей емкости. Это происходит из-за того, что изучение природы занимает время, затрачиваемое на освоение. Это может быть где угодно от 10 до 60 секунд.

Детектор движения Arduino: пошаговое руководство

Группа инженеров по обучению

Команда опытных инженеров, делящихся знаниями со всем миром

Группа инженеров по обучению

является ведущей командой в индустрии микроконтроллеров с более чем 13 лет Опыт в обучении и выполнении практических проектов.

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

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

Группа инженеров по обучению занимается программированием и микроконтроллерами с 2007 года. .Мы участвовали во многих проектах. За эти годы мы получили хорошее представление о потребностях студентов и преподавателей. Мы стремимся делиться с вами всеми нашими коллективными знаниями. По состоянию на 2018 год мы уже обучили более 250 тыс. Студентов, из них .

В настоящее время у нас более 100+ курсов по Удеми

Педагог и автор «Образовательной инженерии».

Ашраф — педагог, инженер мехатроники, любитель электроники и программирования, производитель .Он создает онлайн-видеокурсы на канале EduEng на YouTube (более 4 миллионов просмотров, более 20 тысяч подписчиков) и автор четырех книг о микроконтроллерах.

В качестве главного инженера по вопросам образования с 2007 года в компании Educational Engineering Team, которую он основал, миссия Ашрафа заключается в изучении новых тенденций и технологий, а также в обучении мира и его улучшении.

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

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

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

Его страсть к микроконтроллерам и программированию и, в частности, к миру Arduino, микроконтроллера PIC, Rasberry Pi руководила его личным развитием и своей работой через образовательную инженерию.

Онлайн-курсы Ashraf помогли более 250 000 человек со всего мира стать лучше и сделать отличную карьеру в отрасли.

Группа инженеров по обучению предлагает курс по

Проектирование схем, моделирование и изготовление печатных плат

Arduino, микроконтроллер PIC и Raspberry Pi

Программирование на C, Python и других языках программирования

Промышленное программирование и автоматизация ПЛК

3D-дизайн и моделирование

ESP и IoT World

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

Как построить вентилятор с регулируемым движением

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

Это тоже довольно простой проект: просто подключите Arduino Uno к датчику движения и электронному переключателю, называемому реле, затем подключите вентилятор, и все готово. Если это звучит сложно, не волнуйтесь, мы вам поможем. И как только вы освоитесь, вы сможете применить эту концепцию к освещению или чему-либо еще, что подключается к стене.

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

Что вам понадобится:

Провод электроники

Когда все подключено, вот так должны выглядеть ваш Arduino, датчик движения и реле питания. Джереми С. Кук
  1. Подключите перемычки «папа-мама» к контактам датчика движения . Средний провод будет сигнальной линией и будет подключаться к Pin 2 на Arduino. Контакты бокового разъема войдут в разъемы заземления Arduino ( GND, ) и 5V .Они соответствуют этикеткам, которые обычно находятся за белой куполообразной линзой датчика.
  2. Подключите штекерный соединитель ко второму контакту GND на Arduino. Этот провод подключается к отрицательному порту на разъеме силового реле (помечен символом «минус»). Для установки провода вытащите небольшой зеленый разъем сбоку силового реле. Это откроет винты, которые открывают и зажимают провода.
  3. Подключите еще один штекерный разъем к контакту 3 на Arduino. Этот провод подключается к положительному порту на разъеме силового реле (помечен символом «плюс»).
  4. Включите Arduino. Для этого подключите блок питания Arduino к разъему Always ON на реле питания, затем подключите цилиндрический разъем на другом конце шнура питания к входу питания Arduino.

Настройка программы Arduino

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

  1. Загрузите соответствующую программу для своего компьютера со страницы программного обеспечения Arduino .
  2. Запустите программу и следуйте инструкциям на экране. Это даст ему разрешение на изменение вашей системы.
  3. Загрузите этот код с моей страницы GitHub.
  4. Используйте Ctrl + O, чтобы загрузить код в IDE Arduino .
  5. Подключите Arduino к компьютеру с помощью кабеля USB.
  6. Используйте Инструменты> Плата:> Arduino / Genuino Uno, чтобы выбрать тип используемой Arduino.
  7. Используйте Инструменты> Порт, чтобы выбрать порт, в котором ваша плата указана по имени.
  8. Используйте Ctrl + U, чтобы загрузить код на вашу доску.

Как это работает: Первые несколько строк кода определяют программные переменные и места хранения данных. Вы увидите PIRPin , обозначенный как «2», и OutPin , определенный как «3» — они соответствуют тому месту, где вы подключили датчик PIR и реле питания к Arduino.

Раздел void setup () определяет PIRPin как вход, а OutPin как, как вы уже догадались, выходную линию, подключенную к релейному переключателю. Хотя это может быть очевидно, компьютерам нужно явно указывать, что им делать. Возможно, термин «интеллектуальное устройство» неверен, поскольку им нужен умный человек, чтобы все настроить.

А вот секция void loop () — это то место, где происходит настоящая работа, поскольку Arduino циклически повторяет этот код.Во-первых, он проверяет датчик движения через PIRState = digitalRead (PIRpin) , чтобы узнать, обнаружил ли он какое-либо движение. Затем он записывает количество миллисекунд, прошедших с момента запуска программы Arduino, с currentTime = millis () .

  1. (Необязательно) Измените значение delayValue. Этот бит кода определяет, как долго вентилятор остается включенным после того, как датчик замечает движение. В моем коде он установлен на 600000 (600 000 миллисекунд или 10 минут).Изменение этого числа позволит вам изменить поведение поклонника по своему вкусу. Если вы хотите, чтобы он работал всего 5 минут, измените значение на 300000 . Мир принадлежит вам … лишь бы включить вентилятор.

Как это работает: Когда что-то запускает датчик, Arduino записывает этот момент как triggerTime в строке 23 и сравнивает его с текущим временем на основе условий в строках 26, 29 и 34. Если разница меньше delayValue (10 минут для целей этой истории), вентилятор включается или остается включенным.Если датчик обнаруживает движение в течение этих 10 минут, он сообщает об этом Arduino, и таймер сбрасывается. Если разница выше delayValue , программа знает, что не было никакого движения, и выключает вентилятор.

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

Теперь ты Повелитель фанатов. Джереми С. Кук
  1. Отключите вентилятор от сети, включите его и установите желаемый режим охлаждения.
  2. Подключите вентилятор к одному из двух разъемов «нормально ВЫКЛ» на реле мощности. Когда все подключено, он включится автоматически. Вы даже можете подключить свет или другое устройство к другому порту , обычно ВЫКЛЮЧЕННОМУ порту , чтобы он также активировался движением.

Дополнительно: Постройте корпус

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

Что вам понадобится:

  • Сверло (или ручное сверло)
  • Лопаточное сверло 1 дюйм
  • Пистолет для горячего клея
  • Сверло 1/2 дюйма (опция)
  • Сверло 1/4 дюйма (опция)
  1. Просверлите отверстие диаметром 1 дюйм для датчика. Это единственное отверстие, которое должно быть близко к точке, где будет выступать белый полукупол.
  2. Просверлите отверстия для кабеля питания и соединительных проводов. Используйте биту 1/2 дюйма для отверстия кабеля питания и биту 1/4 дюйма для проходов соединительных проводов. Вы также можете использовать все, что есть в наличии, или даже лопату, если вас устраивает свободная посадка.
  3. Горячим клеем Arduino в центре корпуса.
  4. Горячим клеем приклейте датчик движения к просверленному вами отверстию.
  5. Пропустите провода через соответствующие отверстия и прикрепите их к Arduino и реле питания.
  6. Установите на место верхнюю крышку корпуса.

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

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

Учебное пособие по датчику PIR

Arduino | Датчик движения PIR с Arduino

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

Мы сделали проект с использованием Arduino, датчика PIR и модуля GSM под названием Система домашней безопасности на основе GSM с использованием Arduino. Если вы понимаете, как работает PIR Sensor, то у вас может быть много таких интересных проектов и даже более сложных.

Обзор

ИК-датчик или пассивный инфракрасный датчик — это электронное устройство, которое измеряет инфракрасный (ИК) свет, излучаемый объектами в зоне наблюдения. Термин «пассивный» в датчике PIR означает, что датчик на самом деле не излучает инфракрасный свет, а скорее пассивно обнаруживает его, который излучается окружающими его объектами.

Каждый объект, температура поверхности которого превышает абсолютный ноль, т.е. -273 0 C, излучает тепло в виде инфракрасного излучения. Люди не могут видеть это излучение, поскольку оно имеет инфракрасную длину волны.

Но датчики PIR обнаруживают эти излучения и преобразуют их в соответствующие электрические сигналы.

Также прочтите: СИСТЕМА БЕЗОПАСНОСТИ ДОМА НА ОСНОВЕ GSM С ИСПОЛЬЗОВАНИЕМ ARDUINO

ИК-датчик

Типичный ИК-датчик выглядит так, как показано на рисунке ниже.Для подключения к внешним устройствам у него всего три контакта: VCC, Digital OUT (Data) и GND.

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

Если вы посмотрите на заднюю часть платы датчика PIR, там размещена вся схема. Мозгом модуля датчика PIR является IC детектора движения PIR BISS0001.Рядом с этой микросхемой у нас есть два потенциометра, один для регулировки чувствительности, а другой — для регулировки времени задержки.

Используя настройку чувствительности, вы можете контролировать диапазон поля зрения, и в нашем датчике он составляет до 7 метров. Используя настройку времени задержки, вы можете контролировать время, в течение которого цифровой выход будет оставаться ВЫСОКИМ при обнаружении движущегося объекта.

Как работает датчик PIR?

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

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

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

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

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

Тестирование ИК-датчика

Поскольку вывод цифрового выхода ИК-датчика имеет ВЫСОКИЙ или НИЗКИЙ уровень в зависимости от обнаруженного движения, вы можете построить простую схему для проверки ИК-датчика.

Первая цепь состоит из ИК-датчика и светодиода. Когда датчик PIR обнаруживает движение, загорается светодиод.Продолжительность включения светодиода можно отрегулировать с помощью регулятора задержки POT.

Аналогичная схема тестирования датчика PIR показана ниже, но она состоит из зуммера. Для включения зуммера можно использовать транзистор NPN, например BC547 или 2N2222. Зуммер срабатывает, когда датчик обнаруживает любое движение.

Датчик движения Arduino PIR: Датчик движения PIR с использованием Arduino

Давайте сделаем небольшой проект датчика движения или детектора движения, используя Arduino и датчик PIR.В этом проекте датчик PIR обнаруживает любое движение перед ним и сигнализирует Arduino. Всякий раз, когда обнаруживается какое-либо движение, Arduino активирует сигнал тревоги в виде зуммера.

Эта схема не реализует основной дизайн, но дает представление о том, как связать датчик PIR с Arduino и как мы можем Arduino использовать данные от датчика PIR и управлять другими устройствами вывода или нагрузками, такими как реле, модуль GSM , зуммер и т. д.

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

Необходимые компоненты
  • Arduino UNO [Купить здесь]
  • Датчик PIR
  • Зуммер 5 В
  • Макет
  • Соединительные провода
  • Источник питания конструкция датчика движения PIR с использованием Arduino очень проста.Модуль датчика PIR имеет три контакта: VCC, Digital Out и GND. Подключите VCC и GND к + 5V и GND соответственно. Затем подключите вывод цифрового выхода ИК-датчика к выводу 8 цифрового ввода / вывода Arduino.

    Поскольку нам нужно указать обнаружение движения датчиком, подключите зуммер к контакту 11 Arduino.

    ПРИМЕЧАНИЕ : Зуммер подключается напрямую к Arduino. Предлагаю подключить его через транзистор, как показано на тестовой схеме.

    Код

    Работа датчика движения Arduino PIR Sensor

    Работа этого проекта очень проста.Когда система включена, Arduino ждет, пока датчик PIR будет откалиброван. Период калибровки установлен на 10 секунд, и в течение этого времени перед датчиком PIR не должно быть никаких движений.

    После калибровки ИК-датчик будет готов обнаруживать любое движение перед ним. Если датчик PIR обнаруживает какие-либо движения, его вывод цифрового выхода, подключенный к выводу 8 Arduino, станет ВЫСОКИМ.

    Arduino обнаружит этот ВЫСОКИЙ сигнал и активирует зуммер.

    Приложения

    • Интерфейс датчика PIR Arduino может быть реализован в широком диапазоне проектов, но важным из них является система обнаружения движения.
    • Различные системы домашней безопасности могут быть реализованы с использованием Arduino и датчика PIR.

    Урок Arduino — Датчик движения PIR — kookye.com

    Бьямбер

    Урок Arduino — Датчик движения PIR

    Содержание
    1. Введение
    2. Препараты
    3. О датчике движения PIR
    4. Примеры

    Пассивный инфракрасный датчик ( PIR Motion sensor ) — это электронный датчик, который измеряет инфракрасный (ИК) свет, излучаемый объектами в его поле зрения.Чаще всего они используются в датчиках движения на основе PIR. Таким образом, он может обнаруживать движение на основе изменений инфракрасного света в окружающей среде. Он идеально подходит для определения того, вошел ли человек в зону действия датчика или вышел из нее. В этом уроке мы узнаем, как работает датчик PIR и как использовать его с платой Arduino для обнаружения движения.

    Оборудование

    • Плата UNO (полностью совместима с Arduino UNO rev.3) x 1
    • Датчик движения PIR x 1
    • реле x 1
    • Макет x 1
    • Джемперы
    • Кабель USB x 1
    • шт x 1

    Программное обеспечение

    • Arduino IDE (версия 1.6.4+)

    Обзор

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

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

    Используйте этот датчик движения Arduino для создания систем охранной сигнализации, систем домашней автоматизации или любого простого устройства, которое предотвращает проникновение людей в вашу комнату!

    Технические характеристики

    • Рабочее напряжение: 4.От 5 В до 20 В
    • Выход: Высокий: 3,3 В, Низкий: 0 В
    • Угол обнаружения: Приблизительно 120 градусов
    • Диапазон: Регулируемый, до 7 м
    • Режимы триггера: L неповторяемый триггер / H повторяемый триггер (по умолчанию)
    • Время задержки: (Время пребывания) регулируется в пределах 5–300 секунд. –– его можно увеличить, увеличив значение конденсатора CY1-Timing на выводе 4 микросхемы IC
    • .
    • Рабочая температура: -20 — +80 градусов C.
    • Размеры печатной платы : 33×25 мм, высота 14 мм без объектива; Объектив : высота 11 мм, диаметр 23 мм.
    • Вес: 6 г

    PIR

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

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

    Диаграмма угла срабатывания ИК-датчика:

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

    Наши датчики движения PIR выглядели так:

    Штифт или управление Функция
    Регулировка времени задержки Устанавливает, как долго выходной сигнал остается высоким после обнаружения движения….Где угодно от 5 секунд до 5 минут.
    Регулировка чувствительности Устанавливает диапазон обнаружения…. от 3 метров до 7 метров
    Штифт заземления Вход заземления
    Вывод цифрового выхода Низкий, когда движение не обнаружено. Высокий, когда обнаружено движение. Высокий — 3,3 В
    Штифт питания От 4,5 до 20 В постоянного тока Вход питания

    Как это работает?

    Здесь мы используем датчик движения PIR.PIR расшифровывается как Passive InfraRed. Этот датчик движения состоит из линзы Френеля, инфракрасного детектора и вспомогательной схемы обнаружения. Линза на датчике фокусирует любое инфракрасное излучение, присутствующее вокруг нее, в направлении инфракрасного датчика. Наши тела генерируют инфракрасное тепло, которое улавливается датчиком движения. Датчик выдает сигнал 5 В в течение одной минуты, как только обнаруживает присутствие человека. Он предлагает ориентировочную дальность обнаружения около 6-7 м и очень чувствителен.

    Когда датчик движения PIR обнаруживает человека, он выдает сигнал 5 В на Arduino. Таким образом срабатывает прерывание на Arduino. Мы определяем, что должна делать Arduino при обнаружении злоумышленника.

    Регулировка чувствительности

    Как уже упоминалось, диапазон регулировки составляет примерно от 3 до 7 метров. На рисунке ниже показана эта регулировка. Вы можете щелкнуть, чтобы увеличить иллюстрацию.

    Регулировка времени задержки

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

    Выбор режима триггера Деталь

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

    • SINGLE TRIGGER — Задержка начинается сразу после первого обнаружения движения.
    • ПОВТОРНЫЙ ТРИГГЕР — Каждое обнаруженное движение сбрасывает временную задержку.Таким образом, временная задержка начинается с последнего обнаруженного движения.

    5 секунд выключен по истечении времени задержки — ВАЖНО

    Выход этого устройства станет НИЗКИМ (или выключен) примерно на 5 секунд после завершения временной задержки. Другими словами, в течение этого трехсекундного периода все обнаружение движения блокируется.

    Например:

    • Представьте, что вы находитесь в режиме однократного запуска (см. Ниже), и ваша задержка времени установлена ​​на 5 секунд.
    • PIR обнаружит движение и установит высокий уровень на 5 секунд.
    • Через пять секунд PIR установит низкий уровень выходного сигнала примерно на 3 секунды.
    • В течение трех секунд PIR не обнаруживает движения.
    • Через три секунды PIR снова обнаружит движение, и обнаруженное движение снова установит высокий уровень выходного сигнала, и выход останется включенным в соответствии с настройкой времени задержки и выбором режима триггера.

    Светодиод управления датчиком движения PIR

    В этом проекте вы собираетесь создать простую схему с Arduino и датчиком движения PIR, который может обнаруживать движение.Светодиод загорается при обнаружении движения.

    Соединение

    Создайте схему, как показано ниже:

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

    Подайте на PIR напряжение 5 В и соедините заземление с землей. Затем подключите выход к цифровому выводу. В этом примере мы будем использовать контакт 2.

    Кодовая программа

    После завершения вышеуказанных операций подключите плату Arduino к компьютеру с помощью кабеля USB.Зеленый светодиодный индикатор питания (обозначен как PWR ) должен загореться. Откройте Arduino IDE и выберите соответствующий тип платы и тип порта для вашего проекта. Затем загрузите следующий скетч на свой Arduino.

     int ledPin = 13; // выбираем вывод светодиода int inputPin = 2; // выбираем входной контакт (для датчика PIR) int pirState = LOW; // мы начинаем, предполагая, что движения не обнаружено int val = 0; // переменная для чтения статуса вывода void setup () {pinMode (ledPin, OUTPUT); // объявляем светодиод как выход pinMode (inputPin, INPUT); // объявляем датчик входным  Serial .begin (9600); } void loop () {val = digitalRead (inputPin); // считываем входное значение if (val == HIGH) {// проверяем, является ли вход HIGH digitalWrite (ledPin, HIGH); // включаем светодиод if (pirState == LOW) {// мы только что включили  Serial  .println ("Обнаружено движение!"); // Мы хотим печатать только при изменении вывода, а не состояние pirState = HIGH; }} else {digitalWrite (ledPin, LOW); // выключаем светодиод if (pirState == HIGH) {// мы только что отключили  Serial  .println ("Движение закончилось!"); // Мы хотим печатать только при изменении вывода, а не состояние pirState = LOW; }}} 

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

    Текущий результат

    Через несколько секунд после завершения загрузки посмотрите на светодиодный индикатор 13 контакта Arduino. Вы также можете открыть серийный монитор и установить скорость передачи 9600 бит / с, вы можете увидеть следующее:

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

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

    Реле управления датчиком движения PIR

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

    Соединение

    Создайте схему, как показано ниже:

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

    Кодовая программа

    После завершения вышеуказанных операций подключите плату Arduino к компьютеру с помощью кабеля USB.Зеленый светодиодный индикатор питания (обозначен как PWR ) должен загореться. Откройте Arduino IDE и выберите соответствующий тип платы и тип порта для вашего проекта. Затем загрузите следующий скетч на свой Arduino.

     int ledPin = 13; // выбираем вывод для светодиода int relayInput = 3; // выбираем контакт для реле int inputPin = 2; // выбираем входной контакт (для датчика PIR) int pirState = LOW; // мы начинаем, предполагая, что движения не обнаружено int val = 0; // переменная для чтения статуса вывода void setup () {pinMode (ledPin, OUTPUT); // объявляем светодиод как выход pinMode (inputPin, INPUT); // объявляем датчик входным pinMode (relayInput, OUTPUT); // объявляем реле как выход digitalWrite (relayInput, HIGH); // предполагаем, что реле выключено  Serial .begin (9600); } void loop () {val = digitalRead (inputPin); // считываем входное значение if (val == HIGH) {// проверяем, является ли вход HIGH digitalWrite (ledPin, HIGH); // включаем светодиод if (pirState == LOW) {// мы только что включили  Serial  .println ("Обнаружено движение!"); // Мы хотим печатать только при изменении вывода, а не состояние pirState = HIGH; digitalWrite (relayInput, LOW); // Релейный вход работает инверсно  Serial  .println («Включите лампу!»);  Серийный номер  .println («Подождите 30 секунд»); задержка (30000); // задержка на 30 секунд digitalWrite (relayInput, HIGH); // Релейный вход положительный  Serial .println («Выключите лампу!»); }} else {digitalWrite (ledPin, LOW); // выключаем светодиод if (pirState == HIGH) {// мы только что отключили  Serial  .println ("Движение закончилось!"); // Мы хотим печатать только при изменении вывода, а не состояние pirState = LOW; }}} 

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

    Текущий результат

    Через несколько секунд после завершения загрузки вы увидите следующее:

    Обратите внимание, что после подачи питания на модуль датчика требуется около 20-60 секунд для «разогрева» для нормальной работы. Теперь, когда вы поднесете руку к датчику, реле активирует лампу. Но учтите, что даже если вы постоянно двигаете рукой, лампа выключится по истечении установленного времени задержки, потому что датчик PIR находится в режиме «неповторяемого триггера».Если перевести датчик с помощью перемычки в режим «повторяемый триггер» и постоянно двигать рукой, лампа также будет постоянно гореть и погаснет после того, как движение исчезнет и заданное время задержки истечет.

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

    Интерфейс модуля датчика движения

    PIR с Arduino — Robo India || Учебники || Изучите Arduino |

    В этом руководстве Robo India объясняется рабочая концепция модуля датчика движения PIR с использованием Arduino
    1.Введение

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

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

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

    Датчик на рисунке выше имеет два встроенных потенциометра для регулировки времени задержки (потенциометр слева) и чувствительности (потенциометр справа).

    1,2 Требуемое оборудование
    2 Соединение Выход VCC
    S. No. Arduino UNO Датчик PIR
    1 GND GND
    2 5V 905 905 905 905 905 2 906 2 905 2 905 905
    3. Программирование:

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

    Вы можете скачать этот код (Arduino Sketch) отсюда.

    int ledPin = 13; // выбираем вывод для светодиода
    int inputPin = 2; // выбираем входной контакт (для датчика PIR)
    int pirState = LOW; // запускаем, предполагая, что движения не обнаружено
    int val = 0; // переменная для чтения статуса пина
     
    void setup () {
     pinMode (ledPin, ВЫХОД); // объявляем светодиод как выход
     pinMode (inputPin, ВХОД); // объявляем датчик как вход
     
      Серийный номер .begin (9600);
    }
     
    void loop () {
     val = digitalRead (inputPin); // считываем входное значение
     if (val == HIGH) {// проверяем, является ли вход ВЫСОКИМ
     digitalWrite (ledPin, HIGH); // включаем светодиод
     if (pirState == LOW) {
     // мы только что включили
      Serial  .println («Обнаружено движение!»);
     // Мы хотим печатать только при изменении вывода, а не о состоянии
     pirState = HIGH;
     }
     } еще {
     digitalWrite (ledPin, LOW); // выключаем светодиод
     if (pirState == HIGH) {
     // мы только что отключили
      Серийный номер .println («Движение закончилось!»);
     // Мы хотим печатать только при изменении вывода, а не о состоянии
     pirState = LOW;
     }
     }
    }
    
     
    4. Выход

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

    Если у вас есть какие-либо вопросы, напишите нам по адресу [email protected]

    Спасибо и привет
    Команда разработки контента
    Робо Индия
    https: // roboindia.ком

    Arduino с датчиком движения PIR

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

    PIR = (пассивные инфракрасные датчики)

    Ссылка на мою страницу в Facebook: https://www.facebook.com/Bihari-Lifehacker-108437444279042/

    Подпишитесь: https://www.youtube.com/channel/UC88UigBh28Zn2DPArtWg

    Instagram: https: // www.instagram.com/

    G-mail: [email protected]

    1) ARDUINO UNO

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

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

    2) ПИР-ДАТЧИК

    Датчик

    PIR обнаруживает человека, движущегося на расстоянии примерно 10 м от датчика. Это среднее значение, так как фактический диапазон обнаружения составляет от 5 до 12 м. PIR в основном состоят из пироэлектрического датчика, который может обнаруживать уровни инфракрасного излучения. Для множества важных проектов или предметов, которые необходимо обнаружить, когда человек покинул или вошел в зону. Датчики PIR невероятны, они плоские и требуют минимальных усилий, имеют широкий диапазон линз и просты в взаимодействии.

    Большинство датчиков PIR имеют 3-контактное соединение сбоку или снизу. Один вывод будет заземлен, другой — сигналом, а последний вывод — питанием. Питание обычно до 5В. Иногда более крупные модули не имеют прямого выхода, а вместо этого просто управляют реле, в котором есть земля, питание и две коммутационные связи. Взаимодействие PIR с микроконтроллером очень легко и просто. PIR действует как цифровой выход, поэтому все, что вам нужно сделать, это прислушаться к переключению контакта вверх или вниз. Движение можно обнаружить, проверив высокий уровень сигнала на одном выводе ввода / вывода.Как только датчик нагреется, выходной сигнал будет оставаться низким до тех пор, пока не появится движение, в это время выходной сигнал будет колебаться на высоком уровне в течение нескольких секунд, а затем вернется к низкому уровню. Если движение продолжается, вывод будет циклически повторяться до тех пор, пока линия обзора датчиков снова не стабилизируется. Датчику PIR требуется время для прогрева с определенной конечной целью для достижения соответствующей емкости. Это происходит из-за того, что изучение природы занимает время, затрачиваемое на освоение.

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

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