801 подписчик

Организация движения робота по линии с помощью датчика TCRT5000

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

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

Данный модуль состоит из
инфракрасного светодиода (эмиттера) и фототранзистора (приемника), расположенных рядом друг с другом. Эмиттер генерирует инфракрасный свет, который затем отражается от поверхности объекта и попадает на фототранзистор. Изменение уровня отражённого света (за счёт свойства поверхностей разных цветов по-разному поглощать свет) позволяет определить наличие линии или объекта перед датчиком.

Датчик работает на напряжении питания от 5 В до 18 В постоянного тока. Имеет угол обзора примерно 10 градусов. Датчик обладает высокой чувствительностью к отражённому свету, что позволяет надёжно обнаруживать линии даже при низком уровне освещенности.

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

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

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

void setup()
{
Serial.begin(9600);
}

void loop()
{
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(100);
}

В первой обязательной функции в коде void setup() прописываются действия, которые выполняются контроллером только один раз, после подачи питания или перезагрузки. Здесь используется только функция для инициализации работы последовательного порта обмена данными со скоростью 9600 бит в секунду (бод).

Во второй (и последней) обязательной функции void loop() прописываются команды, которые выполняются бесконечно в цикличной последовательности сверху вниз. Сначала создается переменная целочисленного типа sensorValue, в которую записывается значение с аналогового входа контроллера (в данном случае код универсален и подходит для любых контроллеров, совместимых с 5-вольтовой логикой). Затем с помощью функции Serial.println текущее значение с датчика выводится в монитор последовательного порта (монитор порта можно найти и открыть через раздел инструменты в Arduino IDE или сочетанием клавиш Ctrl + Shift + M). Задержка delay указывает на периодичность (100 мс) между измерениями.