Датчик линии, аналоговый

Trema датчик линии позволяет различать светлые и темные поверхности, при неизменном расстоянии до них. А если неизменным остаётся цвет отражающей поверхности, то датчик позволяет определять расстояние до неё.

Общие сведения:

Датчик освещает поверхность направленным ИК светодиодом (длинна световой волны 940нм). Световой поток отражается от поверхности и попадает на кремниевый NPN фото-транзистор, где преобразуется в электрический сигнал. Так как используется фото-транзистор NPN типа (обратной проводимости), с нагрузкой на коллекторе, то уровень электрического сигнала на выходе «S», обратно-пропорционален отраженному от поверхности свету и прямо пропорционален удалению от отражающей поверхности.

  • Чем светлее отражающая поверхность, тем меньше уровень сигнала на выходе «S».
  • Чем дальше отражающая поверхность, тем выше уровень сигнала на выходе «S».

Графики зависимости аналогового датчика линии

Из графика видно, что если датчик линии находится в 5 мм от белой отражающей поверхности, то уровень на выходе «S» будет равен ~ 0,3В.
Если цвет поверхности изменится с белого на чёрный, то уровень на выходе «S» увеличится с ~ 0,3В до ~ 4,6В.
Если цвет поверхности не изменился (остался белым), а датчик удалился с 5 мм, до 20 мм, то уровень на выходе «S» увеличится до ~ 4,3В.

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

датчик подключается к любому аналоговому выводу arduino

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

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

Предположим, что нам требуется включить светодиод при попадании датчика на темную линию.
Подключаем датчик к аналоговому входу A0 (PIN_LINE).
В качестве светодиода используем интегрированный в arduinio или подключаем внешний к 13 выводу (PIN_LED).

 Пример работы аналогового датчика линии

При помощи функции analogRead(), получаем уровень сигнала на аналоговом входе A0 (PIN_LINE).
При помощи функции digitalWrite(), включаем или выключаем светодиод. Если уровень выше 400 то включаем, иначе выключаем.

const uint8_t PIN_LINE = 0;                     // аналоговый вывод подключенный к датчику линии
const uint8_t PIN_LED  = 13;                    // цифровой   вывод подключенный к светодиоду
      bool    FLAG_LED = LOW;                   // флаг разрешающий свечение светодиода
void setup(){
  pinMode(PIN_LED, OUTPUT);                     // переводим вывод светодиода в режим выхода
}
void loop(){
  FLAG_LED = analogRead(PIN_LINE)>400?HIGH:LOW; // если уровень сигнала на входе PIN_LINE больше 400 то FLAG_LED = HIGH, иначе FLAG_LED = LOW
  digitalWrite(PIN_LED, FLAG_LED);              // устанавливаем на выводе светодиода PIN_LED, состояние FLAG_LED
}

Видео

Размеры контрастной области на отражающей поверхности:

Минимальная ширина фиксируемой контрастной линии - 3мм.

Питание:

Напряжения питания датчика 5В постоянного тока. Подводится к выводам «V» (+5В) и «G» (GND).

Применение:

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

Обсуждение

Присоединяйся

На главную