Интернет-магазин «Неглупый Дом»
BH1750 измеряет освещённость в люксах и по I2C отдаёт готовое число на дисплей LCD1602.
BH1750 — цифровой датчик освещённости со встроенным АЦП: в отличие от аналоговых фоторезисторов, сразу выдаёт по I2C готовое значение в люксах, откалиброванное под чувствительность человеческого глаза. Режим по умолчанию — непрерывное измерение высокого разрешения (1 люкс), обновляется примерно раз в 120 мс.
Для ориентира: прямой солнечный свет — 32000-100000 люкс, пасмурный день — 1000-10000, офисное освещение — 300-500, комфортное чтение — около 50, сумерки — единицы люкс.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить.
#include <Wire.h>
#include <BH1750.h>
#include <LiquidCrystal_I2C.h>
BH1750 lightMeter;
LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес 0x27 — самый частый, у некоторых плат 0x3F
void setup() {
Serial.begin(9600);
Wire.begin();
if (!lightMeter.begin()) {
Serial.println("Ошибка: датчик BH1750 не найден");
}
lcd.init();
lcd.backlight();
}
void loop() {
float lux = lightMeter.readLightLevel();
lcd.setCursor(0, 0);
lcd.print("Lux: ");
lcd.print(lux);
lcd.print(" ");
Serial.print("Освещённость: ");
Serial.print(lux);
Serial.println(" лк");
delay(1000);
}
Библиотека BH1750 (автор claws) ставится через Менеджер библиотек. У датчика и дисплея разные адреса на шине, конфликта нет.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 345 ₽ 311 ₽ (экономия 34 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.