Цифровой датчик освещенности 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. Соберите необходимые компоненты
Что нужно | Кол-во, шт |
---|---|
Контроллер Smart UNO | 1 |
Sensor Shield | 1 |
Цифровой датчик освещенности BH1750 | 1 |
Шлейф "мама-мама" х4 | 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. Результат
Постепенно наводите на датчик разные источники света (фонарик, экран телефона). Можно перемещать датчик в разные места помещения (теневые, солнечные). Наблюдайте за изменением значения в мониторе порта.