Датчик освещенности BH1750FVI (GY-30). Подключение к Arduino
Цифровой датчик освещенности GY-302 на чипе BH1750 предназначен для измерения фонового освещения. BH1750 16-битный датчик освещённости (люксметр) с интерфейсом I2C. Эта микросхема хорошо подходит для получения данных об окружающем освещении. Фотодиод на BH1750 определяет интенсивность света, которая преобразуется в выходное напряжение с помощью операционного усилителя. Встроенный АЦП выдает 16-битные цифровые данные. Внутренняя логика BH1750 избавляет от необходимости каких-либо сложных вычислений, поскольку он напрямую выводит значимые цифровые данные в люксах (лк).
Согласно документации, датчик BH1750 чувствителен к видимому свету и практически не подвержен влиянию инфракрасного излучения, т.е. реагирует примерно на тот же спектральный диапазон, что и человеческий глаз.
Измерение освещенности является важным параметром при создании приложений домашней автоматики и Интернета вещей. Самым распространенным датчиком измерения освещенности у любителей Arduino является фоторезистор аналоговый датчик, меняющий свое сопротивление в зависимости от интенсивности света, однако точность его невысока и значение от выдает не в люксах. В отличие от него, модуль GY302 на базе чипа BH1750, представляет собой высокоточный цифровой датчик интенсивности света, выдающий значение как раз в люксах. В проектах Arduino лучше использовать уже готовый модуль GY-302 со стабилизатором напряжения и удобными выводами подключения.
Люкс — (от лат. lux — свет; русское обозначение: лк, международное обозначение: lx) — единица измерения освещённости в Международной системе единиц (СИ). Люкс равен освещённости поверхности площадью 1 м² при световом потоке падающего на неё излучения, равном 1 лм. Соответственно, выполнятся: 1 лк = 1 лм/м2. С другой стороны, люкс равен освещённости поверхности сферы радиусом 1 м, создаваемой точечным источником света, находящимся в её центре, сила света которого составляет 1 кд. Таким образом, с основными единицами СИ люкс связан соотношением: 1 лк = 1 кд/м2.
Особенности модуля.
- Измерение освещенности в диапазоне от 1 до 65535 люкс.
- Чувствительность близка к видимому световому спектру.
- Встроенное подавление светового шума 50 Гц / 60 Гц.
- Интерфейс I2C, возможно подключение двух модулей на шину.
- Логический уровень шины I2C: 1,8 В
- Стабилизатор напряжения питания и конвертер логических уровней на плате.
- Приминается в различной бытовой технике для настройки яркости подсветки экранов в зависимости от отведения.
Вывод | Описание | |
---|---|---|
1 | VCC | Питание |
2 | GND | Земля |
3 | SCL | Линия тактирования (Serial CLock) |
4 | SDA | Линия данных (Serial Data) |
5 | AD0 | Выбор адреса модуля на шине I2C, выход притянут к массе и адрес модуля 0x23, если на AD0 подать логическую единицу, адрес будет 0X5C. |
Выходы интерфейса I2C имеют на плате конвертер уровней, дополнительная подтяжка выходов не требуется.
Технические характеристики BH1750
- Спектральная характеристика: близка к визуальной чувствительности;
- Малое влияние инфракрасного излучения;
- Функция спящего режима: есть;
- Фильтрация световых шумов: 50/60 Гц;
- Рабочее напряжение питания: 3.3-5 В;
- Ток потребления: 120 мкА;
- Ток потребления в спящем режиме: 0.01 мкА;
- Чувствительность: 65536 градаций;
- Точность в режиме высокого разрешения: 1 Лк;
- Точность в режиме низкого разрешения: 4 Лк;
- Период измерения в режиме высокого разрешения: 120 мс;
- Период измерения в режиме низкого разрешения: 16 мс;
- Встроенный АЦП;
- Шина данных: I2C;
- Калибровка: не требуется;
- Размеры: 18.5 х 13.9 х 2 мм;
- Вес: 5 г.
Схема модуля GY-302 / схема включения BH1750
Входное напряжение 5В понижается линейным стабилизатором с маркировкой 662К (datasheet) до 3.3В для питания датчика. Линии данных SDA и SCL подтянуты резисторами 4.7К к 3.3В. Преобразователь уровня отсутствует.
Функциональная блок-схема
- PD — Фотодиод, спектральная характеристика которого близка к визуальной чувствительности.
- AMP — Операционный усилитель для преобразования тока фотодиода в напряжение.
- ADC — АЦП для получения 16-битных цифровых данных.
- Logic + I2C Interface — Расчет внешнего освещения, интерфейс шины I2C и регистры:
- Data Register (Регистр данных) — Этот регистр предназначен для регистрации данных об окружающем освещении. Начальное значение: «0000_0000_0000_0000».
- Measurement Time Register (Регистр времени измерения) — Этот регистр предназначен для регистрации времени измерения. Начальное значение «01_0010_1100».
- OSC — Внутренний тактовый генератор. Это CLK для внутренней логики.
Система установки I2C адреса
BH1750 может иметь, в зависимости от уровня сигнала на входе AD0, два адреса: 0x23 (AD0=LOW) и 0x5C (AD0=HIGH). Это значит, что на одну I2C линию можно подсоединить одновременно два датчика BH1750. Вывод AD0 модуля GY-302 можно оставить не подключённым, соединить с землёй или с питанием. Следует учесть, что нельзя подавать больше 3.3 В. На модуле распаян стягивающий (pull-down) резистор на 1к, поэтому при отсутствии соединения по умолчанию используется адрес (0x23).
Перемычка J1 на печатной плате (см. изображение ниже) позволяет легко настроить адрес; если J1 замкнута (можно соединить с питанием припаяв контакты капелькой припоя), AD0 будет в состояние лог. «1», в таком случае I2C адрес датчика будет 0x5C.
Внимание: Адреса модуля можно контролировать по входному сигналу на выводе AD0, если перемычка (J1) отсутствует. Если перемычка присутствует, то подавать логический ноль на AD0 нельзя — можно спровоцировать короткое замыкание и испортить порт ведущего устройства.