Перейти к основному содержимому

Датчики освещённости

Мобильный робот сравнивает свет слева и справа

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

Коротко

Фоторезистор с делителем даёт аналоговое напряжение, которое читает АЦП. Цифровые датчики вроде BH1750, TSL2591 и OPT3001 имеют встроенную обработку и передают результат по I²C. Их числа нельзя сравнивать без учёта спектра света, диапазона и времени измерения.

Освещённость и люкс

Освещённость измеряют в люксах. Эта величина учитывает не только мощность света, но и чувствительность человеческого глаза к разным длинам волн. Поэтому «ярко для глаза» и «сильно для датчика» не всегда совпадают.

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

Зачем это нужно

Пусть робот должен повернуться к настольной лампе. Если поставить два LDR-модуля слева и справа, программа может сравнивать их аналоговые коды. Но под солнечным светом, лампой накаливания и белым светодиодом эти коды могут вести себя по-разному.

Если нужен более осмысленный уровень освещённости, берут цифровой датчик. Например, BH1750 возвращает результат в люксах, а OPT3001 специально приближает спектральный отклик к человеческому глазу.

Примеры датчиков

Примеры датчиков освещённости

ДатчикВыходДиапазон/особенностьГлавный вопрос
LDR-модульаналоговый A0 и иногда пороговый DOшкала зависит от резистора делителякак код АЦП связан со светом?
BH1750I²Cготовый результат в люксаххватает ли диапазона и скорости?
TSL2591I²Cвидимый и ИК-каналы, широкий диапазонкакой спектр реально измеряется?
OPT3001I²Cдатчик окружающего света с фильтром под глазпочему он ближе к люксметру?

Главное отличие: LDR-модуль отдаёт напряжение, которое ещё нужно интерпретировать через АЦП, а цифровые датчики уже выполняют оцифровку и часть обработки внутри микросхемы.

Главная идея

Свет попадает на чувствительный элемент и меняет электрический сигнал. Затем этот сигнал превращается в число:

свет -> чувствительный элемент -> напряжение или внутренний код -> программа

У LDR-модуля программа видит условный код АЦП. У BH1750, TSL2591 и OPT3001 программа читает регистры по I²C. В обоих случаях важно понимать, какую шкалу обещает именно эта модель.

Фоторезистор, делитель и цифровой датчик

Фоторезистор меняет сопротивление. Чтобы контроллер получил напряжение, его включают в делитель с постоянным резистором. Если поменять номинал резистора или питание, коды АЦП изменятся даже при том же свете.

Цифровой датчик объединяет фоточувствительный элемент, оптический фильтр, АЦП и регистры настройки. Контроллер задаёт режим измерения и читает результат по цифровой шине.

Фоторезистор с делителем и цифровой датчик света

Почему одинаковый свет даёт разные числа

ПричинаЧто происходит
Спектральная чувствительностьсенсор и глаз по-разному реагируют на цвета и ИК-свет
Насыщениеслишком яркий свет упирает датчик в верхний предел
Время измерениядлинная выборка сглаживает мерцание, но замедляет реакцию
Геометрияугол, экран, корпус и расстояние до лампы меняют поток света
Загрязнение окнапыль или царапины уменьшают сигнал

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

Что запомнить про датчик света

  • Код LDR-модуля — это не люксы, а результат делителя и АЦП.
  • Цифровой датчик света удобнее для измерения освещённости, но тоже имеет диапазон и настройки.
  • Разные источники света могут давать разные отношения показаний.
  • Для быстрых задач важны частота опроса и задержка фильтра.

Практика

  1. Запишите сырые значения LDR-модуля в тени, под лампой и у окна.
  2. Сравните два одинаковых LDR-модуля: совпадают ли их коды при одном освещении?
  3. Найдите в документации цифрового датчика его диапазон в люксах и интерфейс.

Проверьте себя

  1. Почему фоторезистору нужен делитель напряжения?
  2. Почему код АЦП нельзя сразу назвать люксами?
  3. Чем BH1750 отличается от LDR-модуля для программы?
  4. Как мерцание лампы может влиять на показания?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

  • формулируете основную мысль своими словами;
  • называете важные условия, ограничения или меры безопасности;
  • для схемы, кода или расчёта показываете ход решения и ожидаемый результат.

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

Словарь статьи

  • Освещённость — световой поток на единицу площади.
  • Люкс — единица освещённости.
  • Фоторезистор — элемент, сопротивление которого зависит от света.
  • Делитель напряжения — схема из двух сопротивлений, создающая измеряемое напряжение.
  • Спектральная чувствительность — зависимость отклика датчика от длины волны света.

Связанные темы

Источники