Датчики QTR
Обычно, для движения по контрастной линии в любительской робототехнике используется группа простейших датчиков отражения, состоящих из источника света и фотоприёмника. В зависимости от вида выходного сигнала такие составные датчики линии делятся на цифровые и аналоговые. У каждого варианта есть свои достоинства и свои недостатки.
В аналоговых датчиках сигнал снимается напрямую с фотоприёмника, в качестве которого часто выступает фототранзистор. Чем больше фототранзистор поймал отражённого света, тем больше он откроется и тем меньшее значение мы получим на АЦП микроконтроллера. Главный недостаток аналоговых датчиков — для них нужны аналоговые входы микроконтроллера — это как раз те выходы, которые подключены к аппаратному АЦП.
В цифровых датчиках фототранзистор подключается к компаратору или к триггеру Шмитта. На выходе такого датчика мы имеем логический сигнал: 1 или 0 (а точнее, высокий или низкий уровень напряжения). Раз они имеют цифровой выход, то их можно подключать к любым цифровым контактам микроконтроллера. Однако, есть задачи, где нужно больше информации, чем 0 и 1, и это есть главный недостаток цифровых датчиков.
QTR датчик линии решает обе проблемы:
- он подключается к любым цифровым входам;
- после обработки алгоритмом, даёт то же значение интенсивности отраженного света, как и его аналоговый брат.
Есть и недостаток: QTR датчику требуется чуть больше вычислительных ресурсов, но, обычно, это не доставляет неудобств.
Датчики линии QTR от RobotClass
В этом уроке мы будем разбираться с датчиками линии QTR, разработанными в RobotClass. Для экспериментов используем разновидность датчика линии QTR11-4L, который представляет собой сборку из четырёх датчиков отражения.
Мы делаем датчики QTR в разных исполнениях:
- разное общее количество датчиков отражения: 11, 23 и др.;
- разные группы датчиков отражения: установлены все, установлены только нечетные, установлены выборочно (например, 4L);
- разные режимы работы: цифровой (RC) и аналоговый (A).
Цифровой (RC) режим
Принципиальная схема обвязки отдельной оптопары выглядит следующим образом.

Датчик отражения, как было сказано ранее, состоит из источника света и фотоприёмника. В качестве второго здесь используется фототранзистор. К коллектору фототранзистора подключен конденсатор C3 с небольшой ёмкостью. Туда же подключен резистор R5.
Рассмотрим принцип работы RC режима с помощью алгоритма.
- микроконтроллер переключает контакт OUT1 в режим выхода и подаёт на него импульс;
- импульс заряжает конденсатор C3;
- микроконтроллер переключает контакт OUT1 в режим входа и включает таймер;
- микроконтроллер ждёт пока на OUT1 из-за разряда конденсатора высокий уровень сменится на низкий и останавливает таймер; записывает разницу между включением и выключением таймера в переменную;
- микроконтроллер приступает к работе со следующей оптопарой.
Таким образом, «сырое» значение датчика — это засеченное время таймера, отражающее как быстро разряжается конденсатор. А от чего зависит скорость его разряда? От того, насколько сильно открыт фототранзистор. А фототранзистор открыт тем сильнее, чем больше света попало на его базу от источника света.
Получается, если датчик находится над белой бумагой, то на выходе датчика будет небольшое значение. А если над черной — то высокое.
Аналоговый (A) режим
В этом исполнении, вместо конденсатора C3 на схеме датчика отражения установлен резистор R10. Таким образом, имеем классический вариант аналогового датчика отражения. На выходе OUT1 имеем напряжение, обратно пропорциональное интенсивности отраженного света.

Список необходимых компонентов
Для выполнения экспериментов с датчиком в среде Arduino IDE используем самую простую отладочную Arduino-совместимую плату UNO2. Для подключения датчика нужны будут провода вилка-розетка.
Примеры для CircuitPython сделаем на отладочной плате Графит-S3 с установленным CircuitPython. Тут уже нужны провода розетка-розетка.
Необходимые компоненты можно добавить в корзину прямо здесь, и затем оформить заказ в нашем интернет-магазине.

