ИК-датчик препятствий YL-63 (FC-51): подключение и робот в лабиринте

ИК-датчик препятствий YL-63 (FC-51): подключение и робот в лабиринте

Разбираем инфракрасный датчик препятствий YL-63: принцип работы, характеристики, подключение к Arduino и применение на роботе, проходящем лабиринт.

Назначение и принцип работы

YL-63, он же FC-51, — цифровой инфракрасный датчик препятствий. Его используют там, где достаточно знать, есть перед датчиком объект или нет, а точное расстояние до него не требуется. Типичная область применения — робототехника: колёсные и гусеничные роботы с его помощью обнаруживают преграды на пути.

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

Граница срабатывания зависит от настройки и задаётся потенциометром на модуле. Светодиодов два: зелёный показывает наличие питания, красный загорается при обнаружении препятствия.

Характеристики

МодельYL-63 (FC-51)
Напряжение питания3,3–5 В
Тип датчикадиффузионный
КомпараторLM393
Расстояние обнаружения2–30 см
Эффективный угол обнаружения35°
Регулировка чувствительностипотенциометр
Индикациясветодиоды питания и срабатывания
Размеры43×16×7 мм

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

У модуля три вывода: VCC — питание, GND — земля, OUT — цифровой выход. Для первого знакомства выход датчика подключают к цифровому контакту 5 платы Arduino.

Схема подключения датчика YL-63 к плате Arduino

Проверочный скетч простой: контакт 5 настраивается как вход, запускается последовательный порт на скорости 9600, а в цикле состояние выхода читается через digitalRead. Когда объект попадает в зону обнаружения, в монитор порта выводится строка «BARRIER!!!», когда зона свободна — «not barrier». После каждого сообщения программа ждёт смены состояния, чтобы не засыпать порт одинаковыми строками. Понаблюдав за выводом, можно покрутить потенциометр и подобрать нужный порог срабатывания.

Робот, который выходит из лабиринта

Более наглядный пример — установка датчиков на самоходную платформу на базе Arduino и обход лабиринта.

Мобильная робототехническая платформа на базе Arduino

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

Схема обхода лабиринта роботом вдоль одной стены

На передний бампер ставят три датчика: два направлены вперёд, один — вправо. Два передних нужны потому, что один датчик не перекрывает всю зону перед роботом, а пара определяет преграды спереди заметно надёжнее. Выходы датчиков подключены к контактам Arduino 2 и 12 (передние) и 13 (правый).

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

Как работает скетч обхода

Моторами управляют через контакты 3, 4, 11 для левой стороны и 7, 8, 10 для правой; скорость задаётся через analogWrite значениями от 0 до 255. В каждом проходе цикла программа читает три датчика и выбирает одно из трёх действий:

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

Время поворота задаётся константой time_90, равной 390 мс: это длительность разворота на 90 градусов. При срабатывании переднего датчика робот поворачивает в течение пятой части этого времени, после чего датчики опрашиваются снова. В результате платформа движется вдоль правой стены, постоянно подправляя курс.

Типичные неполадки

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

← Все статьи