Освой Arduino играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Инфракрасный датчик обнаружения препятствий

Инфракрасный датчик обнаружения препятствий позволяет обнаружить объект, не прибегая к механическому контакту к нему. Удобно для движущихся роботов, которые должны уметь определить присутствие предмета на некотором расстоянии. Для Arduino популярна модель модуля KY-032. Точное расстояние датчик не определяет, только его наличие.

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

Obstacle avoidance sensor module KY-032

В состав модуля входят два полупроводниковых компонента: инфракрасный светодиод и фотоприёмник. Излучение светодиода отражается от препятствия и приходит на фотоприёмник. Излучение датчика модулировано частотой 38 кГц для работы фотоприёмника при помощи генератора на микросхеме таймера 555.

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

  • Рабочее напряжение: 3 – 5,5 В
  • Дистанция обнаружения белой преграды: 2 – 40 см
  • Частота приёмника: 38 кГц
  • Эффективный угол обзора: 35°

Контакты модуля: GND - земля, + питание, OUT - сигнал, EN - вход для сигнала управления режимом. Активен при снятой перемычке.


KY-032 | Arduino 
----------------
   GND | GND 
     + | 5V 
   OUT | D
    EN | ?

При уровне 0 вольт на входе EN датчик включён, при уровне логической 1 модуль находится в режиме ожидания. Уровень сигнала на выходе OUT: низкий уровень – есть препятствие, высокий – нет препятствия.

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

Перед началом работы требуется предварительная настройка модуля. Разные поверхности обладают различной отражающей способностью. Для каждого применения выполняют настройку, установив преграду на требуемом расстоянии. Настройку частоты модуляции на величину 38 кГц выполняют переменным резистором 103, чувствительность приёмной части регулируют переменным резистором 502. Настройку проводят, ориентируясь на работу индикатора срабатывания на преграду.

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

Скетч, который будет включать светодиод при обнаружении препятствия. Для опытов достаточно подносить и убирать руку.


int led = 13;
int obstaclesPin = 4;
int value;

void setup()
{
  pinMode (led, OUTPUT);
  pinMode (obstaclesPin, INPUT);
}

void loop()
{
  value = digitalRead (obstaclesPin); // читаем значения с датчика
  if (value == LOW) // если датчик определит препятствие, то включаем светодиод
  {
    digitalWrite(led, HIGH);
  }
  else
  {
    digitalWrite(led, LOW);
  }
}

Дополнительные материалы

Реклама