
Общие сведения:
Trema-модуль датчик линии - позволяет различать светлые и темные поверхности, при неизменном расстоянии до них. А если неизменным остаётся цвет отражающей поверхности, то датчик позволяет определять расстояние до неё.
Видео:
Спецификация:
- Минимальная ширина фиксируемой контрастной линии: 3мм.
- Напряжение питания: 5В
Подключение:
Датчик подключается к любому аналоговому выводу arduino
В комплекте имеется кабель для быстрого и удобного подключения к Trema Shield.
Модуль удобно подключать 2 способами, в зависимости от ситуации:
Способ - 1 : Используя проводной шлейф и Piranha UNO
Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO

Способ - 2 : Используя проводной шлейф и Shield
Используя 3-х проводной шлейф, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.

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

Из графика видно, что если датчик линии находится в 5 мм от белой отражающей поверхности, то уровень на выходе «S» будет равен ~ 0,3В.
Если цвет поверхности изменится с белого на чёрный, то уровень на выходе «S» увеличится с ~ 0,3В до ~ 4,6В.
Если цвет поверхности не изменился (остался белым), а датчик удалился с 5 мм, до 20 мм, то уровень на выходе «S» увеличится до ~ 4,3В.
Примеры:
Включение светодиода при попадании датчика на тёмную линию.
Подключаем датчик к аналоговому входу A0 (PIN_LINE).
В качестве светодиода используем интегрированный в arduino или подключаем внешний к 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 }
Применение:
- датчик линии (основное назначение датчика)
- датчик расстояния (при неизменном цвете отражающей поверхности)
- датчик препятствий (при неизменном цвете отражающей поверхности)
- датчик оборотов или энкодер (если на вращающийся вал нанести контрастную разметку)
Обсуждение