Obsah:

Výpočet intenzity světla pomocí BH1715 a Arduino Nano: 5 kroků
Výpočet intenzity světla pomocí BH1715 a Arduino Nano: 5 kroků

Video: Výpočet intenzity světla pomocí BH1715 a Arduino Nano: 5 kroků

Video: Výpočet intenzity světla pomocí BH1715 a Arduino Nano: 5 kroků
Video: Intenzita světla, lumeny, luxy 2024, Červenec
Anonim
Image
Image

Včera jsme pracovali na LCD displejích a při jejich práci jsme si uvědomili důležitost výpočtu intenzity světla. Intenzita světla není důležitá pouze ve fyzické oblasti tohoto světa, ale má svou dobře uvedenou roli i v biologické oblasti. Přesný odhad intenzity světla hraje klíčovou roli v našem ekosystému, při růstu rostlin atd. Za tímto účelem jsme studovali tento snímač BH1715, což je 16bitový snímač okolního světla se sériovým výstupem.

V tomto tutoriálu předvedeme fungování BH1715 s Arduino Nano.

Hardware, který budete pro tento účel potřebovat, je následující:

1. BH1715 - Senzor okolního světla

2. Arduino nano

3. Kabel I2C

4. I2C štít pro Arduino Nano

Krok 1: BH1715 Přehled:

Co potřebuješ..!!
Co potřebuješ..!!

Nejprve bychom vás chtěli seznámit se základními funkcemi senzorového modulu, kterým je BH1715, a komunikačním protokolem, na kterém funguje.

BH1715 je digitální snímač okolního světla s rozhraním sběrnice I²C. BH1715 se běžně používá k získávání údajů o okolním osvětlení pro úpravu výkonu podsvícení LCD a klávesnice pro mobilní zařízení. Toto zařízení nabízí 16bitové rozlišení a nastavitelný rozsah měření, což umožňuje detekci od 0,23 do 100 000 luxů.

Komunikační protokol, na kterém senzor funguje, je I2C. I2C je zkratka pro interintegrovaný obvod. Jedná se o komunikační protokol, ve kterém probíhá komunikace prostřednictvím linek SDA (sériová data) a SCL (sériové hodiny). Umožňuje připojení více zařízení současně. Je to jeden z nejjednodušších a nejefektivnějších komunikačních protokolů.

Krok 2: Co potřebujete..

Co potřebuješ..!!
Co potřebuješ..!!
Co potřebuješ..!!
Co potřebuješ..!!
Co potřebuješ..!!
Co potřebuješ..!!

Materiály, které potřebujeme k dosažení našeho cíle, zahrnují následující hardwarové komponenty:

1. BH1715 - Senzor okolního světla

2. Arduino Nano

3. Kabel I2C

4. I2C Shield pro Arduino nano

Krok 3: Připojení hardwaru:

Připojení hardwaru
Připojení hardwaru
Připojení hardwaru
Připojení hardwaru

Sekce zapojení hardwaru v zásadě vysvětluje zapojení kabelů požadovaná mezi snímačem a malinovým pi. Zajištění správného připojení je základní nutností při práci na jakémkoli systému pro požadovaný výstup. Požadovaná připojení jsou tedy následující:

BH1715 bude fungovat přes I2C. Zde je příklad schématu zapojení, které ukazuje, jak zapojit jednotlivá rozhraní senzoru.

Po vybalení je deska nakonfigurována pro rozhraní I2C, proto doporučujeme tuto přípojku použít, pokud jste jinak agnostik. Vše, co potřebujete, jsou čtyři dráty!

Jsou vyžadována pouze čtyři připojení Vcc, Gnd, SCL a SDA piny a ty jsou spojeny pomocí kabelu I2C.

Tato spojení jsou ukázána na obrázcích výše.

Krok 4: Měření intenzity světla Arduino Kód:

Měření intenzity světla Arduino Kód
Měření intenzity světla Arduino Kód
Měření intenzity světla Arduino Kód
Měření intenzity světla Arduino Kód

Začněme nyní kódem Arduino.

Při používání senzorového modulu s Arduinem jsme zahrnuli knihovnu Wire.h. Knihovna „Wire“obsahuje funkce, které usnadňují komunikaci i2c mezi senzorem a deskou Arduino.

Celý kód Arduino je pro pohodlí uživatele uveden níže:

#zahrnout

// Adresa BH1715 I2C je 0x23 (35) #define Addr 0x23 void setup () {// Inicializace komunikace I2C jako MASTER Wire.begin (); // Inicializace sériové komunikace, nastavení přenosové rychlosti = 9600 Serial.begin (9600); // Spusťte I2C Transmission Wire.beginTransmission (Addr); // Odeslání příkazu k zapnutí Wire.write (0x01); // Zastavení přenosu I2C Wire.endTransmission (); // Spusťte I2C Transmission Wire.beginTransmission (Addr); // Odeslání příkazu pro kontinuální měření Wire.write (0x10); // Zastavení přenosu I2C Wire.endTransmission (); zpoždění (300); } void loop () {data bez znaménka [2]; // Žádost o 2 bajty dat Wire.requestFrom (Addr, 2); // Přečíst 2 bajty dat // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); data [1] = Wire.read (); } zpoždění (300); // převod datového jasu jasu = ((data [0] * 256) + data [1]) /1,20; // Výstup dat na sériový monitor Serial.print ("Světelnost okolního světla:"); Serial.print (jas); Serial.println ("lux"); }

Následující část kódu inicializuje komunikaci i2c a sériovou komunikaci pomocí funkcí Wire.begin () a Serial.begin ().

// Inicializujte komunikaci I2C jako MASTER

Wire.begin (); // Inicializace sériové komunikace, nastavení přenosové rychlosti = 9600 Serial.begin (9600); // Spusťte I2C Transmission Wire.beginTransmission (Addr); // Odeslání příkazu k zapnutí Wire.write (0x01); // Zastavení přenosu I2C Wire.endTransmission (); // Spusťte I2C Transmission Wire.beginTransmission (Addr); // Odeslání příkazu pro kontinuální měření Wire.write (0x10); // Zastavení přenosu I2C Wire.endTransmission (); zpoždění (300);

Intenzita světla se měří v následující části kódu.

nepodepsaná int data [2];

// Žádost o 2 bajty dat Wire.requestFrom (Addr, 2); // Přečíst 2 bajty dat // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); data [1] = Wire.read (); } zpoždění (300); // převod datového jasu jasu = ((data [0] * 256) + data [1]) /1,20; // Výstup dat na sériový monitor Serial.print ("Světelnost okolního světla:"); Serial.print (jas); Serial.println ("lux");

Vše, co musíte udělat, je vypálit kód v arduinu a zkontrolovat údaje na sériovém portu. Výstup je uveden na obrázku výše také pro vaši referenci.

Krok 5: Aplikace:

Aplikace
Aplikace

BH1715 je snímač výstupního okolního světla s digitálním výstupem, který lze integrovat do mobilního telefonu, LCD TV, NOTE PC atd. Lze jej také použít v přenosném herním stroji, digitálním fotoaparátu, digitální videokameře, PDA, LCD displeji a mnoha dalších zařízeních, která vyžadují efektivní aplikace pro snímání světla.

Doporučuje: