education:arduino_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í:
- Jednotlivé - Po naměření jedné hodnoty automaticky přejde do power down režimu
- 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 |
- 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