Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Цифровой датчик освещенности BH1750 ====== ===== Описание ===== Цифровой датчик освещенности предназначен для измерения уровня фоновой освещенности. Отличительной особенностью данного датчика является возможность получения измеренной величины сразу в люксах (лк) без дополнительных вычислений. В отличие от аналоговых датчиков освещенности на базе фоторезистора, цифровой датчик обладает более высокой точностью измерений, а также показывает фактический уровень освещенности относительно нуля. В основе датчика лежит микросхема BH1750. С помощью встроенного фотодиода осуществляется получение значений об уровне освещенности в виде напряжения, которое преобразуется в цифровой сигнал с помощью встроенного аналогово-цифрового преобразователя. Измерения можно производить в режиме низкого и высокого разрешений. При измерении в режиме высокого разрешения погрешность составляет не более 0,5 лк. Датчик обладает высокой чувствительностью к видимому свету и практически не реагирует на инфракрасное излучение. Также перед использованием датчику не требуется калибровка. Использование спящего режима позволяет максимально снизить потребляемый ток устройства, однако следует заметить, в таком случае погрешность измерений увеличится до 4 лк. ==== Технические характеристики ==== * Напряжение питания: 5 В или 3 В (в зависимости от выбранной Вами платы) * Потребляемый ток: 0 мА * Потребляемый ток в спящем режиме: 0 мА * Чувствительность: 65536 градаций * Максимальное время измерения: 120 мс * Максимальная погрешность: ±4 люкса ==== Размеры ==== * Габаритные размеры ДхШхВ: 30х20х7 мм ==== Подключение ==== Датчик подключается посредством шины I2C, что при большом количестве устройств и использовании расширителя I2C позволит сэконмить ценные выводы контроллера. Для удобного подключения к Arduino можно также воспользоваться Sensor Shield, на котором выведен отдельный разъем I2C. Для подключения модуля используйте 4-х проводной шлейф "мама-мама" (в комплект не входит). <WRAP center round important 80%> Обратите внимание на используемый датчик. Подключайте контакт "+" к соответствующему выводу питания. Если Вы используете датчик на 3,3 В - подключение к Arduino через Sensor shield выведет датчик из строя! Будьте внимательны! </WRAP> ==== Библиотека ==== * Библиотека для работы с датчиком BH1750 ([[https://files.smartelements.ru/know_libs/BH1750.zip|скачать]]) ===== Примеры подключения и использования ===== Проиллюстрируем простейший способ взаимодействия с датчиком: подключение датчика к контроллеру и вывод значения, полученного с датчика в монитор порта. Для удобства работы подключим датчик к контроллеру с помощью Sensor shield (Пример тестировался на контроллере Smart UNO). ==== Шаг 1. Соберите необходимые компоненты ==== ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor Shield]] | 1 | | [[httpss://smartelements.ru/collection/datchiki-i-sensory/product/tsifrovoy-datchik-osveschennosti-bh1750-5-v|Цифровой датчик освещенности BH1750]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h4-20-sm|Шлейф "мама-мама" х4]]| 1 | ==== Шаг 2. Соедините все компоненты ==== **Схема подключения:** ==== Шаг 3. Установите библиотеку ==== Скачайте библиотеку (по ссылке выше) и установите её в Arduino IDE ([[main:info:libs|как установить библиотеку?]]). ==== Шаг 4. Загрузите скетч на контроллер ==== **Скетч для загрузки:** <file Arduino> #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 сек } </file> ==== Шаг 5. Результат ==== Постепенно наводите на датчик разные источники света (фонарик, экран телефона). Можно перемещать датчик в разные места помещения (теневые, солнечные). Наблюдайте за изменением значения в мониторе порта.