Главная → Датчики

Датчик освещённости BH1750 против фоторезистора: обзор и подключение

14 сентября 2026 · Датчики

Задача: узнать, сколько вокруг света

Свет в самоделках измеряют постоянно: включить ночник, закрыть дверцу курятника, понять, что теплице хватит. Ходовых решения два — фоторезистор GL5528 и цифровой датчик BH1750 на шине I2C. Разница не в цене, а в том, что приходит на выход: «какое-то сопротивление» или готовые люксы, заявленные производителем. Разберём оба по паспортам и подключим к Arduino и ESP32.

Фоторезистор GL5528: дёшево, но без люксов

Фоторезистор — пластина сернистого кадмия, сопротивление которой падает при освещении. По datasheet серии GL55 (Senba) для типового GL5528: 8–20 кОм при 10 лк, 2–3,5 кОм при 100 лк, в темноте не меньше 1 МОм; спектральный пик 540 нм, время отклика 20 мс на нарастание и 30 мс на спад, рассеиваемая мощность 100 мВт, максимальное напряжение 150 В. Подключается делителем: резистор 10 кОм с фоторезистора на землю, средняя точка — на аналоговый вход.

Дальше начинаются проблемы:

Для «день или ночь» этого обычно хватает. Как только нужны цифры — «ниже 200 лк», «постепенно темнеет» — начинается калибровка каждого экземпляра.

BH1750: люксы сразу из datasheet

BH1750FVI — цифровой датчик ROHM. Внутри фотодиод со спектральной чувствительностью, близкой к глазу человека (пик 560 нм), усилитель и 16-битный АЦП; результат отдаётся готовым числом по I2C. Ключевое из datasheet (BH1750FVI Technical Note, Rev.D):

Сводка по паспортам

Параметр BH1750FVI (ROHM) GL5528 (Senba)
Выход цифровой, I2C сопротивление
Диапазон 1–65535 лк, 16 бит в лк не переводится без калибровки
Разрешение 0,5 / 1 / 4 лк зависит от АЦП и делителя
Время измерения 120 мс (16 мс в L-режиме) отклик 20/30 мс + гистерезис
Точность ±20 % разброс экземпляров ×2
Питание 2,4–3,6 В, 120 мкА пассивный (100 мВт, до 150 В)
Пик чувствительности 560 нм 540 нм
Температура −40…+85 °C −30…+70 °C
Подключение SCL/SDA, адрес 0x23/0x5C делитель на вход АЦП

Подключение к Arduino и ESP32

Берём готовый модуль (GY-302 и аналоги): на плате стоят стабилизатор и подтяжки, поэтому VIN вешается на 5 В у Arduino Uno/Nano или на 3V3 у ESP32. Провода одинаковые:

Важно: 5 В идут на модуль, а не на микросхему — голый чип питается строго в пределах 2,4–3,6 В по datasheet.

Код: люксы одной функцией

Библиотека не обязательна — протокол укладывается в три команды:

#include <Wire.h>

const byte BH = 0x23;          // ADDR на GND; на питании — 0x5C

void setup() {
  Serial.begin(9600);
  Wire.begin();                 // ESP32: Wire.begin(21, 22);
  Wire.beginTransmission(BH);
  Wire.write(0x10);             // 0x10 — непрерывно, H-разрешение (1 лк)
  Wire.endTransmission();
}

void loop() {
  delay(180);                   // паспортное время измерения, макс 180 мс
  Wire.requestFrom(BH, 2);      // запросить 2 байта результата
  if (Wire.available() == 2) {
    unsigned raw = (Wire.read() << 8) | Wire.read();
    float lux = raw / 1.2;      // поправка из datasheet
    Serial.print(lux, 0);
    Serial.println(" lx");
  }
}

В непрерывном режиме датчик обновляет результат каждые 120 мс, код читает два байта и делит на 1,2 — заводская поправка из datasheet. Для разовых измерений вместо 0x10 шлют 0x20 (One Time): после замера датчик сам уходит в power down на 0,01 мкА.

Частые ошибки

Что выбрать

«День/ночь», подсветка, дверца курятника — хватает фоторезистора, если заранее ясно, что точность не нужна. Всё, где нужны числа — контроль света в теплице, логгер, ночник с порогом — BH1750: он дороже одного фоторезистора, но дешевле своей калибровки.

По шине I2C у нас уже есть разбор OLED-дисплея SSD1306, а история «аналог против цифрового» заканчивалась так же у датчика влажности почвы.

Информация собрана из открытых источников и паспортов производителей и не является истиной в последней инстанции. Характеристики, распиновку и совместимость проверяйте по документации конкретной партии модуля перед покупкой и подключением.

Читайте дальше

Контроллеры

Arduino Nano, ESP8266 или ESP32: какой контроллер брать под задачу

Три платы, которые лежат у каждого, кто хоть раз паял. Стоят копейки, выглядят похоже, а годятся для разного. Разберём без религии: где…

Читать обзор →
Моторы и приводы

Шаговый двигатель 28BYJ-48 с драйвером ULN2003: обзор и подключение

Если нужно повернуть вал строго на заданный угол — шторка, задвижка, дозатор корма — берите шаговый мотор. Самый доступный вариант из наборов…

Читать обзор →
Питание

INA219: измеряем ток и напряжение в своём проекте — обзор и подключение

Зачем ставить датчик тока Пока проект живёт на макетке, ток обычно оценивают на глаз: «серве надо до 700 мА, значит блок на…

Читать обзор →