Как измерить освещенность в помещении без помех со стороны светодиодов?
Я пытаюсь измерить освещенность в комнате с помощью простой схемы: фототранзистор, соединенный последовательно с резистором. Светодиодная лента меняет яркость в зависимости от уровня освещенности в комнате.
Проблема здесь в том, что фототранзистор также улавливает свет от светодиодов. Это не вариант с использованием ИК-фототранзистора, потому что мне также нужно измерять свет от лампочек в комнате. Кроме того, из-за корпуса устройства мне нужно, чтобы датчик был окружен светодиодной лентой. Наконец, я попробовал выключить светодиоды перед измерением, но это, похоже, не сработало, так как либо Arduino, либо датчик слишком медленные, чтобы выключить, выполнить измерение и снова включить светодиоды, без того, чтобы человеческий глаз это заметил.
Есть ли какое-то стандартное или общеизвестное решение этой проблемы?
Я буду признателен за любую помощь, которую вы можете оказать.
Дополнительная информация
Светодиодная лента — WS2812B. Фототранзистор, который я использую, работает в диапазоне от 420 нм до 1130 нм с пиковой чувствительностью около 850 нм.
Кроме того, чтобы указать функциональность, которую я пытаюсь достичь: когда в комнате темно, я хочу, чтобы светодиоды были не слишком яркими. Если в комнате слишком светло, я хочу, чтобы светодиоды светили ярче.
@David, 👍2
Обсуждение2 ответа
Что вы можете попробовать, так это использовать датчик цвета. Поскольку вы знаете цвет светодиодов, которыми вы управляете, если датчик цвета улавливает другой цвет, вы знаете, что это из-за другого света.
Поскольку это не является полным доказательством (цвет окружающей среды может быть точно таким же, как цвет светодиода), вы можете проверить разницу в цвете (также с помощью нецветового датчика). Если цвет отличается без замены светодиода, вы знаете, что есть окружающий свет (увеличивающийся/уменьшающийся).
Также будет полезно поместить датчик в трубку, которая находится в другом направлении, чем светодиоды, чтобы по возможности предотвратить попадание света от датчиков.
(если у вас нет цветных датчиков, вы можете использовать обычный датчик с цветным пластиком над ним/вокруг него).
Спасибо большое, я попробую это. Однако в долгосрочной перспективе я хотел бы иметь возможность менять цвет светодиодной ленты, поэтому я полагаю, что использование цветного фильтра в этой ситуации не поможет., @David
В этом случае вам понадобится датчик цвета RGB или 3 светодиода с красным, зеленым и синим «фильтром»., @Michel Keijzers
Ааа, отлично. Я об этом не подумал. Спасибо большое., @David
Удачи с вашим проектом. Я тоже, возможно, воспользуюсь чем-то подобным., @Michel Keijzers
Обычно вы можете выключить светодиоды, провести измерение и снова включить светодиоды без заметной задержки. Изменение яркости заметно ниже 100 Гц, что соответствует периоду 10 мс.
Вам нужен фотодиод с быстрым временем отклика (менее 0,1 мс или около того, хотя есть устройства, реагирующие в наносекундном диапазоне). Фототранзисторы и LDR значительно медленнее.
Время отклика светодиодов составляет несколько микросекунд даже для белых светодиодов, а RGB-светодиоды еще быстрее. Ниже приведен отклик типичных светодиодов на импульс 200 нс:
Обычный AnalogRead
занимает около 0,1 мс (и, опять же, есть более быстрые альтернативы), поэтому вы можете легко достичь частот измерения кГц, на которых изменение яркости совершенно незаметно.
Мои любимые ответы всегда: «Вы пробовали выключить и снова включить его?», @Joe S
Спасибо. Я провел несколько тестов по времени, и я думаю, что проблема в том, что светодиодная лента относительно медленная. Для управления ею я использую библиотеку FastLED., @David
@DAVID Вы можете сделать "выключатель" для всех светодиодов в полосе с помощью BJT/MOSFET, который вы будете управлять напрямую от штифта. Это должно быть достаточно быстро., @Dmitry Grigoryev
@DAVID В качестве альтернативы попробуйте экранировать фототранзистор от прямого света светодиода, возможно, он заработает и так, без переключения светодиодов., @Dmitry Grigoryev
- Объединение кода для нескольких датчиков в одной программе
- Какова работа pulseIn?
- Сколько датчиков может поддерживать один модуль Arduino?
- Получение BPM из данного кода
- Как получить данные о весе с датчиков стеклянных электронных весов для ванной?
- DS18B20 дает высокие показания. Как заставить его вернуть правильную температуру?
- Какой тип разъема использует система GROVE?
- Улавливают ли ультразвуковые датчики прозрачные материалы?
не измеряйте яркость при выключенных светодиодах... измерьте общую яркость в комнате и отрегулируйте светодиоды, чтобы поддерживать ее на заданном уровне, @jsotola
Можете ли вы добавить дополнительную информацию, например, о светодиодной ленте, которую вы используете, и фотодетекторе?, @BobT
Поместите фототранзистор в трубку, чтобы можно было направить свет. Направьте его в сторону от светодиодов. Но я думаю, вам стоит еще раз взглянуть на свое неудачное решение. Попробуйте поиграть с номиналом последовательного резистора. Попробуйте использовать только один светодиод вместо целой полосы с МОП-транзистором (?), чтобы выяснить, что является виновником., @Gerben
@jsotola, спасибо большое. Проблема, о которой я забыл упомянуть, в том, что я не хочу поддерживать общую яркость на определенном уровне. Я хочу, чтобы светодиоды светили ярко, если в комнате очень светло, и уменьшали яркость, если в комнате темно., @David