Датчик линии аналого-цифровой TCRT5000

Датчик линии используется в робототехнических системах для определения местоположения шасси относительно черной линии разметки. 

Принцип работы

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

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

Технические характеристики модуля

Напряжение питания: 3-5 В
Потребляемый ток: 30 мА
Рекомендуемое расстояние до измеряемого объекта: 3-20 мм
Габариты: 46 х 12 мм

Подключение

Подключение модуля осуществляется с помощью разъема XH-2.54-4P, выводы которого имеют следующие назначения:

1. Питание +5V (VСC)
2. Цифровой выход (DO)
3. Аналоговый выход (AO)
4. Земля (GND)

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

Чтобы начать работу с датчиком его необходимо подключить к микроконтроллеру по схеме ниже. Для быстрого и надежного подключения используйте QuatroPort A050.

Далее необходимо загрузить в микроконтроллер программу для обработки полученных с датчика данных.

1. Для начала получим данные и отобразим их в монитор порта.

Пример 1.

#define DIG 7
#define ANALOG A1
int dig = 0;

void setup() {
  pinMode(DIG, INPUT);
  pinMode(ANALOG, INPUT);
  Serial.begin(9600);
}

void loop() {
  dig = digitalRead(DIG);
  Serial.print("A:");
  Serial.print(analogRead(ANALOG));
  Serial.print(",  D:");
  Serial.println(dig);
  delay(500);
}

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


Аналоговый канал работает в большом диапазоне и его можно настроить на то, чтобы датчик различал оттенки серого. Несмотря на то, что цифровой канал выдает только "0" и "1", его тоже можно настроить на распознавание оттенков. Для настройки чувствительности датчика используется переменный резистор, установленный на плате датчика. 
Теперь рассмотрим как управлять светодиодом по аналоговому и цифровому каналам.

2. Подключение по аналоговому каналу. 
Загрузим в микроконтроллер следующий скетч.

Пример 2

#define ANALOG A1
#define LED 3

void setup() {
  pinMode(ANALOG, INPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
  int value = analogRead(ANALOG);
  if (value < 500) {
    digitalWrite(LED, HIGH);
  } else {
    digitalWrite(LED, LOW);
  }
}

В итоге на белой границе светодиод загорается, а на черной затухает.

3. Подключение цифрового датчика.
Цифровой датчик линии на выходе дает 1 или 0. Если 1 - белый цвет, если 0 - черный или пустота.
Загрузим в микроконтроллер следующий скетч.

Пример 3.

#define DIG 7
#define LED 3

void setup() {
  pinMode(DIG, INPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
  int value = digitalRead(DIG);
  if (value == HIGH) {
    digitalWrite(LED, HIGH);
  } else {
    digitalWrite(LED, LOW);
  }
}

В итоге получаем тот же эффект: на белой границе светодиод загорается, а на черной - затухает.