Opis
Opis produktu
BH1750 to cyfrowy czujnik natężenia światła przeznaczony do pomiaru oświetlenia otoczenia w luksach (lx). W przeciwieństwie do prostych modułów wykorzystujących fotorezystor LDR, BH1750 wykonuje pomiar cyfrowo i przekazuje wynik bezpośrednio przez magistralę I²C.
Moduł umożliwia pomiar natężenia światła w szerokim zakresie, typowo od około 1 do 65 535 lx, a jego charakterystyka spektralna została zaprojektowana tak, aby w przybliżeniu odpowiadać czułości ludzkiego oka.
Dzięki interfejsowi I²C czujnik można łatwo podłączyć do Arduino, ESP32, Raspberry Pi oraz innych mikrokontrolerów. Pin ADDR pozwala wybrać jeden z dwóch adresów urządzenia: 0x23 lub 0x5C.
Cechy produktu
- cyfrowy pomiar natężenia światła
- wynik bezpośrednio w luksach (lx)
- układ pomiarowy BH1750FVI
- komunikacja przez magistralę I²C
- typowy zakres pomiarowy 1–65 535 lx
- wysoka rozdzielczość pomiaru
- możliwość pracy ciągłej lub wykonania pojedynczego pomiaru
- dwa wybierane adresy I²C: 0x23 i 0x5C
- niewielka zależność wyniku od rodzaju źródła światła
- charakterystyka spektralna zbliżona do czułości ludzkiego oka
- cyfrowy wynik bez konieczności używania przetwornika ADC mikrokontrolera
- niski pobór prądu
- prosta współpraca z Arduino i ESP32
Cechy szczegółowe
- Pomiar bezpośrednio w luksach – BH1750 przetwarza natężenie oświetlenia na wartość cyfrową, dzięki czemu mikrokontroler nie musi wykonywać pomiaru analogowego ani wyznaczać wyniku z charakterystyki fotorezystora.
- Interfejs I²C – do komunikacji potrzebne są jedynie linie SDA i SCL, poza zasilaniem i masą.
- Dwa adresy I²C – pin ADDR pozwala wybrać adres 0x23 lub 0x5C, dzięki czemu na jednej magistrali można zastosować dwa czujniki BH1750 bez dodatkowego multipleksera.
- Tryby wysokiej rozdzielczości – czujnik umożliwia pomiar z typową rozdzielczością 1 lx lub 0,5 lx.
- Tryb szybki – tryb niskiej rozdzielczości zapewnia rozdzielczość około 4 lx przy znacznie krótszym czasie pomiaru.
- Pomiar ciągły – moduł może automatycznie wykonywać kolejne pomiary.
- Pomiar pojedynczy – możliwe jest wykonanie jednego pomiaru, po którym układ automatycznie przechodzi do trybu oszczędzania energii.
- Ograniczona wrażliwość na podczerwień – konstrukcja BH1750 zmniejsza wpływ promieniowania IR na wynik pomiaru.
- Redukcja wpływu migotania 50/60 Hz – tryby wysokiej rozdzielczości wykorzystują dłuższy czas pomiaru, co pomaga ograniczyć wpływ zakłóceń pochodzących od oświetlenia sieciowego.
Zastosowanie
- automatyczne sterowanie oświetleniem
- pomiar natężenia światła w pomieszczeniach
- stacje pogodowe
- urządzenia Smart Home
- automatyka domowa
- systemy oszczędzania energii
- regulacja jasności wyświetlaczy
- automatyczna regulacja podświetlenia
- projekty Arduino
- projekty ESP32 i ESP8266
- Raspberry Pi
- rejestratory warunków środowiskowych
- systemy monitoringu oświetlenia
- projekty edukacyjne
- prototypowanie urządzeń elektronicznych
Specyfikacja techniczna
- Typ czujnika: cyfrowy czujnik natężenia światła
- Układ pomiarowy: BH1750FVI
- Interfejs: I²C
- Mierzona wielkość: natężenie oświetlenia
- Jednostka pomiaru: luks (lx)
- Typowy zakres pomiarowy: 1–65535 lx
- Rozdzielczość trybu High Resolution: 1 lx
- Rozdzielczość trybu High Resolution Mode 2: 0,5 lx
- Rozdzielczość trybu Low Resolution: 4 lx
- Typowy czas pomiaru High Resolution: około 120 ms
- Maksymalny czas pomiaru High Resolution: około 180 ms
- Typowy czas pomiaru Low Resolution: około 16 ms
- Maksymalny czas pomiaru Low Resolution: około 24 ms
- Adres I²C przy ADDR = LOW lub niepodłączonym: 0x23
- Adres I²C przy ADDR = HIGH: 0x5C
- Częstotliwość magistrali I²C: do 400 kHz
- Napięcie zasilania: 3,3–5 V DC
- Pobór prądu układu podczas pomiaru: typowo około 120 µA
- Pobór prądu układu w Power Down: typowo około 0,01 µA, maksymalnie 1 µA
Zasilanie
Moduł GY-302 może być zasilany napięciem 3,3 V lub 5 V DC.
W przypadku Arduino UNO można wykorzystać wyjście 5 V.
W przypadku ESP32 zalecane jest zasilanie modułu z 3,3 V, dzięki czemu poziomy logiczne magistrali I²C są zgodne z mikrokontrolerem.
Instrukcja
Pierwsze uruchomienie
- Podłącz pin GND modułu do masy mikrokontrolera.
- Podłącz VCC do odpowiedniego napięcia zasilania.
- Połącz SDA z linią SDA mikrokontrolera.
- Połącz SCL z linią SCL mikrokontrolera.
- Pin ADDR pozostaw niepodłączony lub podłącz do GND, jeżeli chcesz użyć domyślnego adresu
0x23. - Jeżeli potrzebujesz adresu
0x5C, połącz ADDR z VCC. - Zainstaluj bibliotekę obsługującą BH1750.
- Wgraj program do mikrokontrolera.
- Otwórz Monitor portu szeregowego.
- Odczytywane wartości będą podawane w luksach.
Instalacja biblioteki Arduino
W Arduino IDE:
- Otwórz Szkic → Dołącz bibliotekę → Zarządzaj bibliotekami.
- Wyszukaj bibliotekę BH1750.
- Zainstaluj bibliotekę
BH1750autorstwa Christophera Lawsa (claws/BH1750).
Przykładowy kod Arduino
#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter;
void setup() {
Serial.begin(9600);
Wire.begin();
if (lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE)) {
Serial.println("BH1750 uruchomiony.");
} else {
Serial.println("Blad komunikacji z BH1750.");
}
}
void loop() {
float lux = lightMeter.readLightLevel();
Serial.print("Natezenie swiatla: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000);
}
Po wgraniu programu ustaw Monitor portu szeregowego na 9600 baud.
Przykład dla adresu 0x5C
Jeżeli pin ADDR został podłączony do VCC, czujnik korzysta z adresu 0x5C.
#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter(0x5C);
void setup() {
Serial.begin(9600);
Wire.begin();
if (lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE)) {
Serial.println("BH1750 pod adresem 0x5C uruchomiony.");
} else {
Serial.println("Nie znaleziono BH1750.");
}
}
void loop() {
float lux = lightMeter.readLightLevel();
Serial.print("Swiatlo: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000);
}
Dostępne tryby pomiarowe
Continuous High Resolution
- pomiar ciągły
- rozdzielczość około 1 lx
- typowy czas pomiaru około 120 ms
BH1750::CONTINUOUS_HIGH_RES_MODE
Continuous High Resolution Mode 2
- pomiar ciągły
- rozdzielczość około 0,5 lx
- typowy czas pomiaru około 120 ms
BH1750::CONTINUOUS_HIGH_RES_MODE_2
Continuous Low Resolution
- pomiar ciągły
- rozdzielczość około 4 lx
- typowy czas pomiaru około 16 ms
BH1750::CONTINUOUS_LOW_RES_MODE
Co oznacza wartość w luksach?
Luks jest jednostką natężenia oświetlenia.
Orientacyjnie:
- ułamki lx – bardzo ciemne otoczenie
- kilka lx – bardzo słabe oświetlenie
- dziesiątki lx – słabo oświetlone pomieszczenie
- kilkaset lx – typowe dobrze oświetlone pomieszczenie
- tysiące lx – silne światło dzienne
- dziesiątki tysięcy lx – jasne światło słoneczne
Wartości te są jedynie orientacyjne.
Wskazówki montażowe
- Element światłoczuły powinien mieć swobodny dostęp do światła.
- Nie należy zasłaniać czujnika przewodami, obudową ani innymi elementami.
- Jeżeli czujnik znajduje się pod przezroczystą osłoną, jej przepuszczalność może wpływać na wynik.
- Należy unikać sytuacji, w której diody LED urządzenia świecą bezpośrednio na czujnik.
- W przypadku długich przewodów I²C może być konieczne ograniczenie częstotliwości magistrali lub odpowiedni dobór rezystorów podciągających.
Podłączenie
- VCC – zasilanie modułu
- GND – masa
- SCL – linia zegarowa magistrali I²C
- SDA – linia danych magistrali I²C
- ADDR – wybór adresu I²C
Adres I²C
- ADDR = LOW / GND lub pozostawiony niepodłączony → adres
0x23 - ADDR = HIGH / VCC → adres
0x5C
Dzięki temu do jednej magistrali I²C można podłączyć dwa czujniki BH1750, ustawiając dla nich różne adresy.
Podłączenie do Arduino UNO
BH1750 / GY-302 Arduino UNO
--------------- -----------
VCC -----------------> 5V
GND -----------------> GND
SDA -----------------> A4 / SDA
SCL -----------------> A5 / SCL
ADDR -----------------> GND lub pozostawić niepodłączony
Podłączenie do Arduino Mega
BH1750 / GY-302 Arduino Mega
--------------- ------------
VCC -----------------> 5V
GND -----------------> GND
SDA -----------------> 20 / SDA
SCL -----------------> 21 / SCL
ADDR -----------------> GND lub pozostawić niepodłączony
Podłączenie do ESP32
BH1750 / GY-302 ESP32
--------------- -----
VCC -----------------> 3.3V
GND -----------------> GND
SDA -----------------> GPIO21
SCL -----------------> GPIO22
ADDR -----------------> GND lub pozostawić niepodłączony
W różnych płytkach ESP32 piny I²C mogą być przypisane inaczej, dlatego należy sprawdzić pinout używanej płytki.
Kompatybilność
- Arduino UNO
- Arduino Nano
- Arduino Mega
- Arduino Leonardo
- ESP32
- ESP8266
- Raspberry Pi
- STM32
- RP2040
- Raspberry Pi Pico
- mikrokontrolery AVR
- mikrokontrolery PIC z obsługą I²C
- inne systemy posiadające magistralę I²C
Informacje bezpieczeństwa
- Produkt jest modułem elektronicznym przeznaczonym do integracji z innymi urządzeniami.
- Przed podłączeniem należy sprawdzić poprawność polaryzacji zasilania.
- Nie należy przekraczać napięcia dopuszczalnego dla używanego wariantu modułu.
- Nie dopuszczać do zwarcia wyprowadzeń.
- Połączenia należy wykonywać przy odłączonym zasilaniu.
- Moduł należy chronić przed wodą, wilgocią, kondensacją pary wodnej oraz zanieczyszczeniami przewodzącymi.
- Nie używać w atmosferze łatwopalnej lub wybuchowej.
- Produkt nie jest certyfikowanym przyrządem pomiarowym.
- Produkt nie jest przeznaczony do zastosowań, w których błędny pomiar może bezpośrednio spowodować zagrożenie życia lub zdrowia.
Ostrzeżenia
- BH1750 jest czujnikiem natężenia oświetlenia, a nie profesjonalnym, wzorcowanym luksomierzem.
- Wynik pomiaru może różnić się od wskazań profesjonalnego przyrządu pomiarowego.
- Tolerancja samego układu BH1750FVI może powodować różnice pomiędzy egzemplarzami.
- Obudowa, szybka ochronna lub inny element umieszczony przed czujnikiem może wpłynąć na wynik.
- Nie należy bezpośrednio zasilać samego układu BH1750FVI napięciem 5 V.
- Zasilanie 5 V jest dopuszczalne tylko dla odpowiednio zaprojektowanego modułu breakout.
- Należy zwrócić uwagę na poziomy logiczne magistrali I²C przy współpracy z układami 3,3 V.
- Adres
0x23lub0x5Czależy od stanu pinu ADDR. - Dwa moduły ustawione na ten sam adres nie mogą być niezależnie adresowane na tej samej magistrali I²C bez dodatkowego rozwiązania sprzętowego.
Przeznaczenie produktu
- projekty elektroniczne
- prototypowanie
- edukacja
- automatyka domowa
- Smart Home
- pomiar orientacyjnego natężenia oświetlenia
- sterowanie urządzeniami zależnie od poziomu światła
- regulacja jasności wyświetlaczy i podświetlenia
- systemy monitoringu środowiskowego
- stacje pogodowe
- rejestratory danych
Zastosowania wykluczone
- zastosowania wymagające certyfikowanego lub wzorcowanego luksomierza
- pomiary laboratoryjne wymagające określonej klasy dokładności
- systemy bezpieczeństwa zależne od dokładności pomiaru
- urządzenia medyczne
- urządzenia podtrzymujące życie
- zastosowania, w których błędny odczyt może prowadzić do niebezpiecznego działania urządzenia
Zawartość zestawu
- 1 × moduł cyfrowego czujnika natężenia światła z układem BH1750FVI
- 1 x goldpiny do wlutowania
Najczęstsze pytania
Co mierzy BH1750?
BH1750 mierzy natężenie oświetlenia i zwraca cyfrową wartość odpowiadającą poziomowi światła w luksach.
Co oznacza luks?
Luks, oznaczany symbolem lx, jest jednostką natężenia oświetlenia. 1 lx odpowiada strumieniowi świetlnemu 1 lumena padającemu na powierzchnię 1 m².
Czym BH1750 różni się od fotorezystora LDR?
LDR zmienia swoją rezystancję w zależności od oświetlenia i wymaga dodatkowego układu pomiarowego oraz ADC. BH1750 wykonuje pomiar wewnętrznie i przekazuje wynik cyfrowo przez I²C.
Jaki jest domyślny adres I²C?
Domyślny adres to 0x23.
Jak ustawić adres 0x5C?
Pin ADDR należy ustawić w stanie wysokim, typowo łącząc go z VCC modułu.
Czy można podłączyć dwa BH1750 do jednego Arduino?
Tak. Jeden czujnik można ustawić na adres 0x23, a drugi na 0x5C.
Czy pin ADDR trzeba podłączać?
Nie. W typowym module pozostawienie ADDR niepodłączonego odpowiada adresowi 0x23.
Czy BH1750 wymaga wejścia analogowego?
Nie. Jest to czujnik cyfrowy komunikujący się przez I²C.
Czy wynik odczytywany jest od razu w luksach?
Popularne biblioteki Arduino wykonują wymagane przeliczenie i zwracają wynik bezpośrednio w luksach.
Czy BH1750 może mierzyć światło słoneczne?
Tak, ale standardowy zakres pomiarowy kończy się w okolicy 65 535 lx. Bezpośrednie, bardzo silne światło słoneczne może przekroczyć standardowy zakres.
Czy zakres można rozszerzyć?
BH1750FVI pozwala zmieniać czas pomiaru za pomocą rejestru MTreg. Producent opisuje możliwość rozszerzenia użytecznego zakresu, ale wymaga to odpowiedniej konfiguracji i przeliczenia wyniku.
Czy czujnik działa z Arduino UNO?
Tak. W typowym połączeniu SDA podłącza się do A4, a SCL do A5.
Czy czujnik działa z ESP32?
Tak. BH1750 współpracuje z ESP32 przez I²C. W klasycznych płytkach ESP32 często używa się GPIO21 jako SDA oraz GPIO22 jako SCL.
Czy mogę zasilić moduł z 5 V?
Typowy moduł GY-302 jest przystosowany do zasilania 3,3–5 V. Nie dotyczy to jednak bezpośredniego zasilania samego układu BH1750FVI.
Czy BH1750 może zastąpić profesjonalny luksomierz?
Nie w zastosowaniach wymagających wzorcowania lub określonej klasy dokładności. Jest przeznaczony przede wszystkim do elektroniki, automatyki i pomiarów orientacyjnych.
O produkcie
BH1750 jest wygodnym rozwiązaniem wszędzie tam, gdzie urządzenie ma znać rzeczywisty poziom oświetlenia, a nie tylko rozróżniać „jasno” i „ciemno”.
W prostych czujnikach opartych na fotorezystorach mikrokontroler mierzy napięcie analogowe, a zależność pomiędzy nim a natężeniem światła jest nieliniowa i zależna od zastosowanych elementów. BH1750 wykonuje pomiar wewnętrznie i udostępnia wynik cyfrowo przez I²C.
Dzięki temu można w prosty sposób budować automatyczne systemy oświetlenia, regulatory jasności ekranów, stacje pomiarowe i urządzenia Smart Home reagujące na rzeczywisty poziom światła.
Dlaczego warto
- cyfrowy pomiar światła w luksach
- brak konieczności korzystania z ADC
- komunikacja I²C
- zakres do około 65 535 lx
- rozdzielczość nawet 0,5 lx
- dwa adresy I²C: 0x23 i 0x5C
- możliwość podłączenia dwóch czujników na jednej magistrali
- tryby pomiaru ciągłego i pojedynczego
- niski pobór prądu
- charakterystyka zbliżona do czułości ludzkiego oka
- łatwa współpraca z Arduino
- współpraca z ESP32 i Raspberry Pi


























Opinie
Na razie nie ma opinii o produkcie.