Оглавление:

Использование инфракрасного датчика с Arduino: 8 шагов (с изображениями)
Использование инфракрасного датчика с Arduino: 8 шагов (с изображениями)

Видео: Использование инфракрасного датчика с Arduino: 8 шагов (с изображениями)

Видео: Использование инфракрасного датчика с Arduino: 8 шагов (с изображениями)
Видео: Датчик движения HC SR501 - полный обзор и тест 2024, Июнь
Anonim
Использование инфракрасного датчика с Arduino
Использование инфракрасного датчика с Arduino

Что такое инфракрасный (он же ИК) датчик?

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

Протокол ИК-связи

Каждый сигнал представляет собой определенный код. Электрические сигналы могут быть преобразованы обратно в фактические данные / код, отправленные отправителем. Когда вы нажимаете кнопку на пульте дистанционного управления телевизора, он генерирует сигнал, соответствующий коду кнопки (например, включение / выключение, увеличение громкости и т. Д.), И отправляет его на приемник (в данном случае на телевизор). И отправитель, и получатель согласовали набор кодов, чтобы получатель знал, что делать на основе каждого кода. Способ, которым код должен быть модулирован (смоделирован) как сигнал, определен в разных стандартах, и каждый производитель датчиков обычно пытается создать продукт, совместимый с ними, чтобы его можно было использовать в различных устройствах. Один из самых известных стандартных протоколов разработан NEC. Вы можете найти краткую историю IR-протоколов в Википедии под заголовком Consumer IR.

Шаг 1. Как выглядит ИК-датчик?

Как выглядит ИК-датчик?
Как выглядит ИК-датчик?
Как выглядит ИК-датчик?
Как выглядит ИК-датчик?
Как выглядит ИК-датчик?
Как выглядит ИК-датчик?

ИК-датчики доступны в разных упаковках. Здесь вы можете увидеть типичную упаковку ИК-приемника.

Шаг 2: коммутационная плата / модуль ИК-датчика

Коммутационная плата ИК-датчика / модуль
Коммутационная плата ИК-датчика / модуль
Коммутационная плата ИК-датчика / модуль
Коммутационная плата ИК-датчика / модуль
Коммутационная плата ИК-датчика / модуль
Коммутационная плата ИК-датчика / модуль
Коммутационная плата ИК-датчика / модуль
Коммутационная плата ИК-датчика / модуль

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

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

Шаг 3: Необходимые детали и компоненты

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

Здесь вы можете найти список компонентов, которые вам понадобятся для выполнения этого руководства:

Ссылки на eBay:

  • 1 х Arduino Uno:
  • 1 модуль ИК-датчика с пультом дистанционного управления:
  • 4 резистора по 220 Ом:
  • 4 светодиода:
  • 8 x кабель Dupont:
  • 1 x беспаечный макет:
  • 1 x мини-макет (опционально):

Ссылки на Amazon.com:

  • 1 х Arduino Uno:
  • 1 модуль ИК-датчика с пультом дистанционного управления:
  • 1 x беспаечный макет:
  • 4 резистора по 220 Ом:
  • 4 светодиода:
  • 8 x кабель Dupont:
  • 1 x мини-макет (опционально):

Шаг 4: Подключение ИК-датчика к Arduino

Подключение ИК-датчика к Arduino
Подключение ИК-датчика к Arduino
Подключение ИК-датчика к Arduino
Подключение ИК-датчика к Arduino
Подключение ИК-датчика к Arduino
Подключение ИК-датчика к Arduino

Настроить подключение ИК-датчика к Arduino очень просто. Помимо контактов VCC и GND, датчик имеет только один выходной контакт, который должен быть подключен к одному из цифровых контактов Arduino. В этом случае он подключен к выводу 13.

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

Шаг 5: Найдите код, соответствующий каждой клавише на пульте дистанционного управления

Найдите код, соответствующий каждой клавише на пульте дистанционного управления
Найдите код, соответствующий каждой клавише на пульте дистанционного управления
Найдите код, соответствующий каждой клавише на пульте дистанционного управления
Найдите код, соответствующий каждой клавише на пульте дистанционного управления
Найдите код, соответствующий каждой клавише на пульте дистанционного управления
Найдите код, соответствующий каждой клавише на пульте дистанционного управления

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

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

Вы также можете получить доступ к фактическому исходному коду, опубликованному в моем веб-редакторе Arduino, в ir-key-code-logger.

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

Шаг 6: Управление набором светодиодов с помощью ИК-пульта дистанционного управления

Управление набором светодиодов с помощью ИК-пульта дистанционного управления
Управление набором светодиодов с помощью ИК-пульта дистанционного управления
Управление набором светодиодов с помощью ИК-пульта дистанционного управления
Управление набором светодиодов с помощью ИК-пульта дистанционного управления
Управление набором светодиодов с помощью ИК-пульта дистанционного управления
Управление набором светодиодов с помощью ИК-пульта дистанционного управления

Теперь, когда у нас есть код для каждой кнопки, пришло время сосредоточиться на том, как мы можем их использовать. Обычно вы используете ИК-пульт для отправки команд на Arduino, чтобы сделать что-то вроде включения или выключения лампы, перемещения робота в определенном направлении, отображения чего-либо на ЖК-экране / OLED-экране и т. Д. Здесь мы пытаемся продемонстрировать процесс, используя простой схема, состоящая из 4-х светодиодов разного цвета. Мы хотим включать или выключать каждый из них с помощью специальной кнопки на ИК-пульте дистанционного управления. Как вы можете видеть на схеме, вы должны подключить Arduino к светодиодам и датчику следующим образом:

Arduino GND -> GND ИК-датчика.

Arduino VCC -> ИК-датчик VCC.

Arduino 13 -> Выход сигнала ИК-датчика.

Arduino 2 -> Анод синего светодиода (более короткий вывод синего светодиода)

Arduino 3 -> Анод зеленого светодиода (более короткий вывод зеленого светодиода)

Arduino 4 -> Анод желтого светодиода (более короткий контакт желтого светодиода)

Arduino 5 -> Анод красного светодиода (более короткий вывод красного светодиода)

Arduino GND -> Катод всех светодиодов через резистор 220 Ом (более длинный вывод светодиодов)

Вы можете найти код, соответствующий этой схеме, в прикрепленном файле или в моем веб-редакторе Arduino по адресу ir-led-control.

Шаг 7. Устранение неполадок

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

Получение FFFFFF при нажатии клавиши

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

ИК-сенсор вообще не реагирует и вроде нагревается

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

Иногда датчик обнаруживает код, которого я никогда раньше не видел

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

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

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

Вы используете дешевый ИК-пульт (например, тот, который я использовал в этом уроке)

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

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

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

1111 1111 0111 1010 1000 0101

Слева направо каждая группа из 4 цифр представляет собой символ в исходном шестнадцатеричном числе. Как видите, партия, соответствующая 7, равна 0111, а партия, соответствующая 8, равна 1000, что является точным ее отрицанием. Под отрицанием я подразумеваю, что все 0 будут равны 1, а все 1 будут заменены на 0. То же самое верно и для следующих A (1010) и 5 (0101).

Шаг 8: что делать дальше?

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

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

Сообщите мне в комментариях, что бы вы сделали (или уже сделали) с помощью ИК-пульта.

Рекомендуемые: