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

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

Шкодим

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

Датчик линии

Датчик линии выполнен в виде модуля KY-033. Представляет собой датчик отражения инфракрасного излучения близко расположенным препятствием. Благодаря работе фотоэлемента в инфракрасном диапазоне излучения восприятие оттенков становится более контрастным, чем в видимом диапазоне света. Это облегчает применение для различения белых и чёрных участков поверхности. Используется в робототехнике – движение вдоль линии на полу.

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

Hunt sensor module KY-033

В состав модуля входит компонент TCRT5000L: инфракрасный светодиод и фототранзистор. Его сигнал поступает на вход микросхемы LM393YD. Переменным резистором выполняется настройка. Требуемая чувствительность зависит от расстояния до поверхности, оттенка светлых и тёмных участков. При работе в составе тахометра настройка проводится под ширину линий на вращающейся поверхности.

TCRT5000L

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

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

Контакты модуля: GND - земля, VCC - питание, OUT - сигнал.


KY-033 | Arduino 
----------------
   GND | GND 
   VCC | 5V 
   OUT | D

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

При приёме отражённого излучения на плате модуля включается светодиод.

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


int led = 13;
int huntPin = 4; // пин для датчика
int value; // переменная для значения с датчика

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

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

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

Реклама