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Í LED NEBO ZÁSUVKY S MODULEM CC1101 433.92Mhz

Po prvních pokusech s moduly CC1101 433.92Mhz jsem se po čase rozhodl si vyzkoušet napsat program na jednoduché ovládání led diody tak aby jeden modul pravidelně vysílal hodnoty které se na druhém modulu vyhodnotí a tento pak bude pravidelně blikat led diodou. Po tomto programu a jeho odzkoušení jsem se rozhodl si napsat další program na zjištění číselných hodnot tlačítek na dálkovém ovladači pro bezdrátové zásuvky 433Mhz, a tyto pak ovládat dalším napsaným programem na zapínání a vypínání zásuvky. Pro ovládání jsem použil Arduino Nano které jsem pro testování osadil do Arduino IO shieldu, pro komunikaci mezi Arduino a modulem CC1101 jsem použit 8 – kanálový obousměrný převodník logických úrovní (5V – 3.3V) a pro napájení celé sestavy jsem použil vyrobený napájecí zdroj s výstupním napětím 8V pro napájení  Arduino Nano,  5V a 3.3V pro napájení převodníku a modulu CC1101. Uvedené přípravky rozšiřují zapojení uveřejněná v [1].