Snímač intenzity osvětlení

Senzor BH1750 pre meranie denného osvetlenia a grafického znázornenia doby trvania dňa. Výhodou tohto senzora sú výstupné dáta, ktoré sa nemusí prepočítavať alebo inak upravovať, pretože výstupná hodnota je priamo v jednotkách luxoch.

Niekoľko typických intenzít osvetlenia

jasný slnečný deň

100 000 lx

zamračené počasie v lete

20 000 lx

letný deň v tieni

10 000 lx

operačná sála

10 000 lx

osvetlenie v TV-štúdiu

1 000 lx

osvetlenie kancelárie

500 lx

osvetlenie chodby

100 lx

osvetlenie ulice

10 lx

mesačný svit

0,25 lx

jasná hviezdna obloha

0,001 lx

zamračená nočná obloha bez cudzieho osvetlenia

0,0001 lx

 Zapojenie je jednoduché GND zapojíme na GND Arduina ako aj napájanie 5V. Výstup SDA napojíme na analógový vstup A4, a SCL na analógový vstup A5. A4, A5 podporujú I2C komunikáciu.

Princíp I2C komunikácie: Zbernica I2C využíva pre komunikáciu iba dva vodiče, sériový hodinový (SCL) a sériový dátový (SDA) kanál. To znamená, že sa jedná o synchronizovaný prenos dát iba v jednom smere (poloduplexný komunikácie). V danom momente existuje iba jedno vysielajúce zariadenia a ľubovoľný počet zariadení (väčšinou len jedno), ktorá dáta prijímajú.

Každé zariadenie, pripojené na túto zbernicu, je softvérovo adresovateľné raz unikátny adresou pre celý systém a v každú chvíľu existuje jednoduchý vzťah master / slave (riadiace / riadený) obvod.

Schéma:

Program, nutné stáhnout knihovnu zde:

/*
Meranie intenzity svetla
 
Pripojenie pinov:
 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();
}
 
 
void loop() {
  uint16_t lux = lightMeter.readLightLevel();
  Serial.print("Aktualne intenzita svetla je: ");
  Serial.print(lux);
  Serial.println(" lux");
  delay(1000);
}

Výstup:

Aktualne intenzita svetla je: 99 lx
Aktualne intenzita svetla je: 120 lx
Aktualne intenzita svetla je: 140 lx
Aktualne intenzita svetla je: 0 lx
Aktualne intenzita svetla je: 0 lx
Aktualne intenzita svetla je: 140 lx

Zde je schéma a ukázka celého projektu:

Použitý senzor BH1750 můžete zde:
http://dratek.cz/arduino/902-arduino-mereni-intenzity-svetla-1420672425.html

Další podobné články

OVLÁDÁNÍ VÍCE RELÉ S NEOPIXEL RGB ARDUINEM

Kamarád mi poprosil o pomoc s tím že v současnosti potřebuje v jednom projektu ovládat čtyři reléové moduly, kdy jeden obsahuje šestnáct relátek které zakoupil v [1] a již má hotovou část zapojení přípravku, s tím že časem by chtěl ovládání z PC „po otestování“, ovládat diody pomocí tabletu nebo chytrého telefonu. Na tento počet ovládání relé je potřeba 64 ovládacích pinů, což ani ARDUINO MEGA 2560 s potřebou dalších vstupů které budou potřeba není možné použít. Po návrzích s posuvnými registry kterých by bylo potřeba osm kusů a složitosti zapojení mi napadlo použít pásek NEOPIXEL  s RGB led diodami kdy na ovládání stačí jeden výstup z ARDUINA. Tak že pro pokusy co a jak půjde použít, jsem použil modul relátek osazený dvěma relátky, modul s MOSFET tranzistorem, Neopixel pásek s osmi RGB led diodami WS2812B, fototranzistor GL5528 a bluetooth JDY-33 pro komunikaci s tabletem chytrým telefonem vše zakoupené v [1]. Napsané programy jsou celkem dva jeden pouze pro ovládání Neopixel s osmi RGB led diodami, druhý pak umožňuje ovládat maximálně 255 RGB led použitých v Neopixel pásku. Oba programy umožňují ovládat libovolnou RGB diodu nebo více RGB led diod na Neopixel pásku včetně barev a dají se upravit dle potřeby. Přípravek může posloužit při vlastních pokusech s RGB LED Neopixel pásky a zároveň doplňuje články v [2]. Ovládání RGB diod je zde řešeno s ARDUINO NANO je možné použít i ARDUINO UNO. Programové ovládání RGB led diod na Neopixel pásku je dle požadavků kamaráda.