Arduino: měření světelné intenzity s BH1750

Dnes malinko odbočím a podíváme se do elektroniky. Hledám vhodné čidlo pro moji meteostanici.

Co budeme potřebovat

  • Arduino
  • modul BH1750

Schéma zapojení:

arduino-bh1750

 

BH1750 budeme napájet 5V, ovšem je možné napájet i 3.3V.

Konektor Add na BH1750 je nutné připojit na GND!

Práci si ulehčíme naimportováním této knihovny do projektu: https://github.com/claws/BH1750

Knihovnu stáhněte, rozbalte a přejmenujte na BH1750. Složku BH1750 nahrajte do adresáře názvem libraries který je ve složce kde je nainstalováno Arduino (v mém případě c:\Program Files (x86)\Arduino\libraries\). Restartujte IDE.

Výkonný kód pro měření intenzity světla bude velice jednoduchý:

/*
 
BH1750 library
 
This example initalises the BH1750 object using the default
high resolution mode and then makes a light level reading every second.
 
Connection:
 VCC-5v
 GND-GND
 SCL-SCL(analog pin 5)
 SDA-SDA(analog pin 4)
 ADD-NC or GND
*/
 
#include <Wire.h>
#include <BH1750.h>
 
BH1750 lightMeter;
 
void setup(){
  Serial.begin(9600);
  lightMeter.begin();
  Serial.println("Running...");
}
 
void loop() {
  uint16_t lux = lightMeter.readLightLevel();
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(1000);
}

Výstup v konzoli:

Light: 99 lx
Light: 99 lx
Light: 101 lx
Light: 101 lx
Light: 101 lx
Light: 99 lx
Light: 46 lx
Light: 1344 lx
Light: 1665 lx
Light: 17 lx
Light: 5 lx
Light: 1485 lx

Čím menší číslo tím menší intenzita světla.