Проект 3: Датчик линии

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

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

  • Источник питания: +5V

  • Рабочий ток: <10mA

  • Диапазон рабочей температуры: 0°C ~ +50°C

  • Выходной интерфейс: 3-проводной интерфейс (1 - сигнал, 2 - питание, 3 - отрицательное питание)

  • Выходной уровень: уровень TTL

Подключение датчика слежения за линией к Arduino

  • VCC к 5V на Arduino

  • GND к GND на Arduino

  • OUT (сигнальный провод) к цифровому пину 3 на Arduino

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

Принцип работы датчика линии

Принцип работы датчика линии

Датчик линии работает на основе инфракрасного (ИК) излучения. Он состоит из двух основных компонентов: инфракрасного светодиода (ИК-светодиод) и фоторезистора.

ИК-светодиод:

  • ИК-светодиод излучает инфракрасный свет на поверхность.

  • Свет отражается от поверхности и возвращается обратно к датчику.

Фоторезистор:

  • Фоторезистор улавливает отраженный инфракрасный свет.

  • Количество света, которое улавливает фототранзистор, зависит от цвета и свойства поверхности.

Обнаружение линии

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

Белая поверхность: Белые поверхности хорошо отражают инфракрасный свет. Когда ИК-светодиод освещает белую поверхность, большая часть света отражается обратно к фоторезистору. В результате фототранзистор улавливает больше света и выдает высокий выходной сигнал.

Черная поверхность: Черные поверхности поглощают большую часть инфракрасного света и отражают очень мало. Когда ИК-светодиод освещает черную поверхность, свет почти не отражается обратно к фоторезистору. В результате фоторезистор улавливает меньше света и выдает низкий выходной сигнал.

Настройка подстроечного резистора

  1. Запустите код на Arduino.

  2. Откройте «Серийный монитор» в Arduino IDE (нажмите Ctrl+Shift+M).

  3. Посмотрите на значения, которые выводятся в серийный монитор: - Когда датчик находится над белой поверхностью, значение должно быть LOW (0). - Когда датчик находится над черной поверхностью, значение должно быть HIGH (1).

  4. Медленно вращайте подстроечный резистор на датчике: - Поворачивайте подстроечный резистор, пока светодиод на датчике не будет включаться при обнаружении белой линии. - Поворачивайте дальше, пока светодиод не будет выключаться при обнаружении черной линии.

Пример кода

const int sensorPin = 3;     // номер пина датчика
int sensorState = 0;         // переменная для чтения состояния датчика

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

void loop() {
  // чтение состояния датчика
  sensorState = digitalRead(sensorPin);
  // если состояние датчика ВЫСОКОЕ
  if (sensorState == HIGH) {
    Serial.println("high");
  } else {
    Serial.println("low");
  }
}

Результат

После настройки подстроечного резистора светодиод на датчике будет загораться при обнаружении белой линии и гаснуть при обнаружении черной линии.