Infrared motion sensor как подключить?

Infrared motion sensor как подключить?

Весь технический прогресс направлен на то, чтобы сделать жизнь человека более комфортной. Датчики движения – не исключение. Реагируя на присутствие человека, эти небольшие приборы получили широкое распространение не так давно. Еще 5–10 лет назад такие специальные устройства использовались только для охраны крупных производственных объектов.

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

Все, что нужно знать о датчике движения

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

Устройство состоит из:

  • пластикового корпуса
  • фотоэлемента, покрытого фокусирующей линзой
  • электронных элементов

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

Чтобы распознавание движения не было затруднено, стоит помнить:

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

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

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

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

Особое внимание стоит уделить соблюдению фазировки при подключении датчика движения.

Схема действий тут проста:

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

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

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

  • когда свет выключен – контроль у датчика
  • когда включен – у выключателя

Несколько датчиков движения: схема подключения

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

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

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

Обязательно стоит помнить, что:

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

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

Инфракрасный датчик движения (Zelo-модуль)

Инфракрасный датчик движения зафиксирует любое перемещения тёплых объектов: людей, животных и даже лунных рыб.

Видеообзор

Принцип работы

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

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

Простой датчик движения

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

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

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

При появлении объекта в зоне видимости датчика, лампочка загорится.

Используйте инфракрасный датчик движения как одно из зёрен в своём умном доме. Тут уже не обойтись без Arduino, Raspberry Pi или Iskra JS.

Пример для Arduino

Подключим датчик движения к Arduino Uno через Troyka Shield к 4 цифровому пину.

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

Код программы

Выведем в Serial-порт текущее состояние датчика с обновлением каждые 100 миллисекунд.

После прошивки платы, вы увидите бегущие нули. А как только появится живой объект на горизонте — нули сменятся на единицы.

Пример для Iskra JS

Скоммутируем PIR-сенсор к Iskra JS через Troyka Shield к 4 цифровому пину.

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

Код программы

Зафиксируем движение объекта с помощью Espruino и языка JavaScript.

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

Пример для Raspberry Pi

Поймаем живой объект одноплатником Raspberry Pi, например, Raspberry Pi 4. Подключите сенсор движения к пину 4 Raspberry. Для избежания макеток и проводов используйте плату расширения Troyka Cap.

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

Код программы

После запуска скрипта вы увидите текущие показатели сенсора. Пока движения нет — в консоли выводятся нули, при обнаружении живого объекта — единицы.

Элементы платы

Пироэлектрический сенсор с линзой Френеля

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

На пироэлектрический сенсор одевается Линза Френеля, которая концентрируют излучение, значительно расширяя диапазон чувствительности датчика.

Микросхема управления

Мозгом сенсора является микросхема BISS0001. Чип считывает и обрабатывает сигналы с PIR-сенсора. В итоге на выходе модуля бинарный цифровой. Есть движение — единица, нет — ноль.

Выбор режима работы

Режим работы модуля задается перемычкой . Есть два режима — режим H и режим L. На фото выше в модуле установлен режим H.

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

Читайте также  Как правильно подключить сабвуфер к ресиверу?

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

Регулировка режимов работы

На модуле расположено три потенциометра отвечающие за подстройку режима работы:

Световой индикатор

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

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

Датчик освещённости на фоторезисторе GL5528, подкорректирует чувствительность модуля на солнечный свет. Это удобно при необходимости отключение работы сенсора в дневное время суток.

Troyka-контакты

На модуле выведена группа Troyka-контактов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программа

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

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

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

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

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

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

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

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

Программа

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

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

Заключение

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

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

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

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

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

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

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

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

Читайте также  Подключение 5 контактного реле на свет

Датчик движения (PIR Motion sensor) HC-SR501

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

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

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

HC-SR501

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

Внешний вид датчика HC-SR501.

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

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

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

Обращайте внимание на распиновку. Данные идут по среднему проводу, а по краям питание и земля.

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

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

Режим работы модуля задаётся перемычкой (джампером). Есть два режима — режим H и режим L:

Режим H — в этом режиме при срабатывании датчика несколько раз подряд на его выходе (на OUT) остаётся высокий логический уровень (на рисунке выше). В положении H датчик начинает отсчёт времени каждый раз после обнаружения движения. Другими словами, любое шевеление человека вызовет обнуление таймера отсчёта Т. По-умолчанию, перемычка находится в состоянии H.

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

Подключение

Для ESP32 используйте 3.3В и подходящий вывод, например, 22.

При обнаружения движения должен загораться светодиод. Если движения нет, то светодиод гаснет.

Датчик мне показался достаточно капризным и требующим определённого терпения для точной настройки.

Как подключить инфракрасный сенсор к Arduino

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

  • Arduino UNO или иная совместимая плата;
  • инфракрасный датчик препятствий;
  • инфракрасный приёмник;
  • соединительные провода (рекомендую вот такой набор);
  • макетная плата (breadboard);
  • персональный компьютер со средой разработки Arduino IDE.

1 Описание и принцип действия ИК датчика препятствий

Длины волн разных типов электромагнитного излучения

Если оснастить, для примера, своего робота несколькими такими ИК модулями, можно определять направление приближения препятствия и менять траекторию движения робота в нужном направлении.

Модуль с ИК излучателем и ИК приёмником

Когда перед сенсором нет препятствия, на выходе OUT модуля напряжение логической единицы. Когда сенсор детектирует отражённое от препятствия ИК излучение, на выходе модуля напряжение становится равным нулю, и загорается зелёный светодиод модуля.

Помимо инфракрасного свето- и фотодиода важная часть модуля – это компаратор LM393 (скачать техническое описание на LM393 можно в конце статьи). С помощью компаратора сенсор сравнивает интенсивность отражённого излучения с некоторым заданным порогом и устанавливает «1» или «0» на выходе. Потенциометр позволяет задать порог срабатывания ИК датчика (и, соответственно, дистанцию до препятствия).

2 Подключение ИК датчика препятствийк Arduino

Подключение ИК модуля к Arduino предельно простое: VCC и GND модуля подключаем к +5V и GND Arduino, а выход OUT сенсора – к любому цифровому или аналоговому выводу Arduino. Я подключу его к аналоговому входу A7.

Модуль с инфракрасным датчиком подключён к Arduino Nano

3 Скетч Arduino для инфракрасного датчика препятствий

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

ИК датчик может состоять из одного только инфракрасного приёмника, как в этом случае:

ИК приёмник

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

К Arduino модуль с ИК приёмником подключается тоже очень просто:

Пин модуля Пин Arduino Назначение
DAT Любой цифровой Признак наличия ИК излучения на входе приёмника
VCC +5V Питание
GND GND Земля

Подключение ИК приёмника к Arduino

Напишем скетч, в котором будем просто показывать с помощью встроенного светодиода, что на входе приёмника присутствует ИК излучение. В данном модуле аналогично с ранее рассмотренным на выходе DAT уровень «0», когда ИК излучение попадает на приёмник, и «1» когда ИК излучения нет.

Если загрузить этот скетч в Arduino, направить на ИК приёмник ИК пульт и нажимать на нём разные кнопки, то мы увидим, что светодиод нашего индикатора быстро мигает. Разные кнопки – по-разному мигает.

Чтение команд ИК пульта с Arduino

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

Осциллограф отображает часть команды ИК пульта

На осциллограмме видна серия «пачек» импульсов примерно одинаковой длительности. Каждая «пачка» состоит из 24-х импульсов.

Осциллограф отображает часть команды ИК пульта

Подключение выхода с ИК приёмника и выхода ИК пульта к осциллографу

Вот так выглядит посылка пульта целиком. Здесь жёлтая линия – аналоговый сигнал пульта ДУ, голубая – цифровой сигнал с выхода ИК приёмника. Видно, что продолжительность передачи составляет примерно 120 мс. Очевидно, время будет несколько варьироваться исходя из того, какие биты присутствуют в пакете.

Осциллограмма пакета с ИК пульта ДУ

При большем приближении видно, что высокочастотное заполнение, которое имеется в аналоговом сигнале, в цифровом сигнале с ИК приёмника отсутствует. Приёмник прекрасно справляется со своей задачей и показывает чистый цифровой сигнал. Видна последовательность коротких и длинных прямоугольных импульсов. Длительность коротких импульсов примерно 1,2 мс, длинных – в 2 раза больше.

Биты пакета ИК пульта, масштаб: 1 клетка – 200 мкс Биты пакета ИК пульта, масштаб: 1 клетка – 1 мс Начало пакета ИК пульта, масштаб: 1 клетка – 5 мс, только цифровой сигнал

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

Если зарисовать этот пакет, то получится как-то так:

Один из пакетов ИК пульта

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

Есть несколько вариантов, как поступить для получения цифровых данных пакета:

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

Напомню, что будем считать короткие импульсы логическим нулём, длинные – логической единицей.

Для реализации первого варианта понятно, с какой частотой необходимо опрашивать ИК датчик, чтобы принимать с него корректные данные: 600 мкс. Это время в два раза меньшее, чем длительность коротких импульсов сигнала (логических нулей). Или, если рассматривать с точки зрения частоты, опрашивать приёмник нужно в 2 раза большей частотой (вспомним Найквиста и Котельникова). Напишем скетч, реализующий вариант со стробированием.

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

Поэкспериментируем с данным скетчем и ИК приёмником. Загрузим скетч в память Ардуино. Запустим последовательный монитор. Нажмём на пульте несколько раз одну и ту же кнопку и посмотрим, что мы увидим в мониторе.

Выводим принятые пакеты ИК пульта в последовательный монитор

Это похоже на пакет, который мы видели на осциллограмме, но всё-таки есть ошибки. Между одинаковыми пакетами также встречаются различия, которых быть не должно. Можно улучшить результат, если увеличить частоту стробирования, чтобы точнее определять биты пакета. Для безошибочного приёма необходимо чтобы строб попадал ближе к середине импульса. Но мы не можем гарантировать это, т.к. импульсы могут распространяться с варьирующимися задержками; Arduio выполняет код также не моментально, каждый цикл требует малого, но всё же времени, поэтому с каждым битом мы немного будем уходить от исходной позиции посередине импульса и рано или поздно «промахнёмся» (определим бит с ошибкой).

Перепишем скетч, используя метеод детекции фронтов.

Скетч для чтения пакета от ИК пульта методом детекции фронтов

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

Загрузим скетч, запустим монитор, нажмём несколько раз ту же кнопку пульта.

Выводим принятые пакеты ИК пульта в последовательный монитор

Результат, как видно, более стабильный.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: