Цифровой датчик освещенности BH1750

Описание

Цифровой датчик освещенности предназначен для измерения уровня фоновой освещенности. Отличительной особенностью данного датчика является возможность получения измеренной величины сразу в люксах (лк) без дополнительных вычислений. В отличие от аналоговых датчиков освещенности на базе фоторезистора, цифровой датчик обладает более высокой точностью измерений, а также показывает фактический уровень освещенности относительно нуля.

В основе датчика лежит микросхема BH1750. С помощью встроенного фотодиода осуществляется получение значений об уровне освещенности в виде напряжения, которое преобразуется в цифровой сигнал с помощью встроенного аналогово-цифрового преобразователя. Измерения можно производить в режиме низкого и высокого разрешений. При измерении в режиме высокого разрешения погрешность составляет не более 0,5 лк.

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

Технические характеристики

  • Напряжение питания: 5 В или 3 В (в зависимости от выбранной Вами платы)
  • Потребляемый ток: 0 мА
  • Потребляемый ток в спящем режиме: 0 мА
  • Чувствительность: 65536 градаций
  • Максимальное время измерения: 120 мс
  • Максимальная погрешность: ±4 люкса

Размеры

  • Габаритные размеры ДхШхВ: 30х20х7 мм

Подключение

Датчик подключается посредством шины I2C, что при большом количестве устройств и использовании расширителя I2C позволит сэконмить ценные выводы контроллера. Для удобного подключения к Arduino можно также воспользоваться Sensor Shield, на котором выведен отдельный разъем I2C. Для подключения модуля используйте 4-х проводной шлейф «мама-мама» (в комплект не входит).

Обратите внимание на используемый датчик. Подключайте контакт «+» к соответствующему выводу питания. Если Вы используете датчик на 3,3 В - подключение к Arduino через Sensor shield выведет датчик из строя! Будьте внимательны!

Библиотека

  • Библиотека для работы с датчиком BH1750 (скачать)

Примеры подключения и использования

Проиллюстрируем простейший способ взаимодействия с датчиком: подключение датчика к контроллеру и вывод значения, полученного с датчика в монитор порта. Для удобства работы подключим датчик к контроллеру с помощью Sensor shield (Пример тестировался на контроллере Smart UNO).

Шаг 1. Соберите необходимые компоненты

Шаг 2. Соедините все компоненты

Схема подключения:

Шаг 3. Установите библиотеку

Скачайте библиотеку (по ссылке выше) и установите её в Arduino IDE (как установить библиотеку?).

Шаг 4. Загрузите скетч на контроллер

Скетч для загрузки:

#include <Wire.h> //подключение библиотеки для работы с I2C
#include <BH1750.h> //подключение библиотеки для работы с датчиком освещённости
 
BH1750 lightMeter; //объявление объекта датчика освещённости
 
void setup(){
 
  Serial.begin(9600); //инициализация порта
 
  Wire.begin(); //инициализация I2C
 
  lightMeter.begin(); //инициализация датчика освещённости
  Serial.println(("BH1750 Test")); //вывод надписи в монитор порта
 
}
 
void loop() {
 
  float lux = lightMeter.readLightLevel(); //чтение значения датчика в Люксах
  Serial.print("Light: "); //вывод надписи
  Serial.print(lux); //вывод значения с датчика
  Serial.println(" lx"); //окончание надписи
  delay(1000); //задержка в 1 сек
 
}

Шаг 5. Результат

Постепенно наводите на датчик разные источники света (фонарик, экран телефона). Можно перемещать датчик в разные места помещения (теневые, солнечные). Наблюдайте за изменением значения в мониторе порта.