Uživatelské nástroje

Nástroje pro tento web


education:arduino_bh1750

BH1750

BH1750

  • Senzor intenzity osvětlení
  • Komunikace přes I2C
  • Napájení 2.4 - 3.6V
  • Nastavitelné rozlišení

BH1750
Data sheet
Podrobný článek

popis použití modulu BH1750 (s knihovnou BH1750)
popis použití modulu BH1750 (bez knihovny)

BH1750 ARDUINO ESP32
I2C SDA A4 GPIO21
SCL A5 GPIO22

pozn.: modul označen GY-30
2 režimy měření:

  1. Jednotlivé - Po naměření jedné hodnoty automaticky přejde do power down režimu
  2. Stálé - Po dokončení jednoho měření se spustí další

Knihovna obsahuje:
begin(mode, addr, i2c); - mode režimy měření, addr - I2C adresa, i2c - I2C sběrnice
configure(mode); - Slouží pro změnu režimu. mode - režim
setMTreg(MTreg); - Slouží k nastavení registru MTreg, který ovlivňuje citlivost a rozsah (Vysoká citlivost = malý rozsah…)
measurementReady(maxWait); - Vrátí logickou 1, když je měření pravděpodobně dokončené (spoléhá na dobu měření z datasheetu). maxWait - použití typické nebo maximální doby měření
readLightLevel(); - Vrátí naměřenou hodnotu intenzity světla [lx] jako float

REŽIM DÉLKA MĚŘENÍ ROZLIŠENÍ ROZSAH
L-resolution 16 ms 4 lx 0 - 54 612.5 lx
H-resolution 120 ms 1 lx 0 - 54 612.5 lx
H-resolution 2 120 ms 0.5 lx 0 - 27 306.25 lx

Příklad použití - Arduino

BH1750.ino
#include <BH1750.h> // Kód je psaný pro verzi knihovny 1.3.0
#include <Wire.h>
 
BH1750 lightMeter(0x23);  // I2C, adresa: |ADD=LOW 0x23| |ADD=HIGH 0x5C|
 
void setup() {
  Serial.begin(9600);
  Wire.begin();
 
  Serial.println("\nBH1750 test");
  if (lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE_2)) {
    Serial.println(F("Chyba komunikace s BH1750"));
  }
}
 
void loop() {
  if (lightMeter.measurementReady()) {
    float lux = lightMeter.readLightLevel();
 
    if (lux == -2) Serial.println("Chyba: senzor neni nastaven");
    else if (lux == -1) Serial.println("Chyba: neplatna hodnota");
    else Serial.println(lux);
  }
}
education/arduino_bh1750.txt · Poslední úprava: 2023/08/18 12:37 autor: 127.0.0.1