WordPress database error: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

0

Light sensor BH1750

Иногда возникает необходимость получить данные об уровне освещенности конкретного места, объекта. Для таких целей используются специальные приборы – люксметры. Но это не такое уж и распространенное оборудование. Освещенность можно попробовать измерять фоторезистором GL5516, например. Но в таком случае необходимо делать измерительную схему и калибровать полученные данные с такого датчика. Упростить задачу нам поможет датчик, который посредством цифрового интерфейса будет выдавать готовые данные в определенных единицах измерения – BH1750.

Датчик этот заключен в корпусе для поверхностного монтажа WSOF6I. Внутри непосредственно сам фотодатчик в виде фотодиода, усилитель сигнала фотодиода, АЦП (аналого цифровой преобразователь) и некая логика, которая обрабатывает данные, переводит все в единицы измерения Люкс и передает по I2C к управляющему устройству (микроконтроллеру в нашем случае):1Вообще же вы можете с первого взгляда сказать, что это какая-то лапша – ведь датчик в корпусе от обычных микросхем примерно, как это все может измерять освещенность? Вот здесь как раз и стоит обратить внимание на корпус датчика и присмотреться внимательнее.23Корпус оказывается полупрозрачный! А внутри просматривается какая-то схема или чувствительный слой, скорее всего. Честно говоря, именно этот вопрос стал решающим в покупке этого датчика – интерес – как освещенность то определяется. На самом деле внутри фотодиод, а корпус выполняет роль так же светофильтра, видимо, с заведомо известным коэффициентом пропускания света, чтобы точно измерять освещенность.

4Что это за датчик интерес удовлетворили, теперь можно продолжить.

Итак, датчик BH1750 обладает следующими характеристиками:

  • Digital interface - I2C
  • Высокое разрешение – до 0,5 Лк
  • Low current consumption and sleep function
  • Фильтрация световых шумов 50/60 Гц
  • Малая зависимость от источника света (лампа накаливания, светодиод и так далее)
  • Low influence of infrared radiation
  • Возможно выбрать 2 адреса микросхемы для I2C интерфейса (можно подключить одновременно два таких датчика к одной шине)
  • Не требует калибровки, что максимально удобно для применения в любых проектах
  • Very small size of the sensor

Электрические характеристики:

  • Напряжение питания – 2,4 – 3,6 В
  • Ток потребления – 120 мкА
  • Ток потребления в спящем режиме – 0,01 мкА
  • Измеряемая длина волны – 560 нм
  • Точность в режиме высокого разрешения – 1 Лк
  • Точность в режиме низкого разрешения – 4 Лк
  • Период измерения в режиме высокого разрешения – 120 мс
  • Период измерения в режиме низкого разрешения – 16 мс
  • АЦП – 16 бит

Чтобы протестировать датчик освещенности собираем схему:

5Здесь уже все привычно для нас. В качестве микроконтроллера используется ATmega8a как наиболее универсальный и популярный микроконтроллер. Использовать микроконтроллер можно в любом корпусе – разницы нет, кроме порядка расположения выводов на корпусах. Индикация осуществляется на ЖК экранчике на базе HD44780. В моем случае используется экран на 4 строки по 20 символов на каждую, однако можно использовать и размер 1602 – информации на экранчик выводится не много, поэтому все помещается. Переменный резистор R2 необходим для регулировки контраста символов на дисплее. Вращением движка этого резистора добиваемся наиболее четких для нас показаний на экране. Подсветка ЖК дисплея организована через вывод “А” и “К” на плате дисплея. Подсветка включается через резистор, ограничивающий ток – R1. Чем больше номинал, тем более тускло будет подсвечиваться дисплей. Однако пренебрегать этим резистором не стоит во избежание порчи подсветки. Сам дисплей подключается к микроконтроллеру по 4х битной схеме. Резистор R3 необходим для предотвращения самопроизвольного перезапускания микроконтроллера в случае появления случайных помех на выводе PC6. Резистор R4 подтягивает плюс питания к этому выводу, надежно создавая потенциал на нем. В данной схеме светодиод лишь моргнет при успешном запуске схемы, никакой другой функции не предусмотрено, хотя по желанию можно добавить еще много чего – памяти остается целый вагон. Резистор R5 ограничивает ток через светодиод, чтобы тот не вышел из строя. Резистор R4 подтягивает ножку датчика к земле, отвечающую за адрес микросхемы для I2C интерфейса, посмотреть все эти цифры можно в исходном коде, который расположен в конце статьи. Для правильной работы I2C интерфейса необходимы резисторы R7 и R8. С их помощью на линиях образуется логическая единица из-за того, что они подтянуты к плюсу питания. При формировании логического нуля линии прижимаются к земле посредством ведущего или ведомого (микроконтроллера или датчика).

Основное питание схемы составляет 3,3 вольта, что обусловлено электрическими параметрами датчика освещенности BH1750. 5 вольт необходимы лишь для питания дисплея, если применить, например экранчик от nokia 5110, для питания которого необходимо также 3,3 вольта, то можно опустить из схемы стабилизатор напряжения на 5 вольт. Стабилизаторы напряжения на 5 вольт и 3,3 вольта можно применить абсолютно любые на аналогичные напряжения, можно использовать как линейные стабилизаторы, так и импульсные.

Схема была собрана на модулях на отладочной плате:

6 Основа – отладочная плата для микроконтроллеров Atmega8 и других контроллеров, совместимых с ней по выводам.78Используется модуль с датчиком BH1750. По большому счету кроме датчика тут больше ничего особенного нет – подтягивающие резисторы для работы датчика, стабилизатор напряжения на 3,3 вольта и несколько конденсаторов. Основной плюс модуля – удобство соединения с микроконтроллером посредством штырьков.

Датчик выдает информацию об освещенности в единицах измерения Люкс. Люкс равен освещённости поверхности площадью 1 м² при световом потоке падающего на неё излучения, равном 1 лм (Люмен). Для сравнения освещенность в рабочем кабинете составляет порядка 300 – 500 Люкс, при полнолунии – 1 Люкс, в ясный солнечный день в тени – 10 тыс. – 25 тыс. Люкс, а под солнцем порядка 32 тыс. – 130 тыс. Люкс. Разбежка понятна большая из-за состояния воздушного покрова – разреженность воздуха, облака, дым, смог и так далее.

Для программирования микроконтроллера необходимо знать конфигурацию фьюз битов:

9Такие датчики могут применяться в ЖК дисплеях, мобильных телефонах, цифровых камерах, планшетах и так далее. Основная польза от таких датчиков в подобных устройствах автоматическая регулировка подсветки дисплея, например или какие либо настройки в цифровых камерах, связанных с качеством фото и освещенностью экспозиции. Цена датчика BH1750 порядка 2 – 3 уе в виде модуля на aliexpress и ebay. Модули вполне высокого качества, пайка без дефектов, все компоненты стоят ровненько и на своих местах.

К статье также прилагается прошивка для микроконтроллера Atmega8, исходный код в AVR studio 4, даташит на датчик освещенности, а также небольшое видео, демонстрирующее работу датчика.

Прикрепленные файлы:

cxem.net

admin

Leave a Reply

Your email address will not be published. Required fields are marked *