Cuprins:

Calculul intensității luminii utilizând BH1715 și Arduino Nano: 5 pași
Calculul intensității luminii utilizând BH1715 și Arduino Nano: 5 pași

Video: Calculul intensității luminii utilizând BH1715 și Arduino Nano: 5 pași

Video: Calculul intensității luminii utilizând BH1715 și Arduino Nano: 5 pași
Video: Fizica, clasa a IX-a, Unde luminoase. Determinarea vitezei luminii 2024, Iulie
Anonim
Image
Image

Ieri am lucrat la afișaje LCD și, în timp ce lucram peste ele, am realizat importanța calculului intensității luminii. Intensitatea luminii nu este importantă doar în domeniul fizic al acestei lumi, ci are și rolul său bine spus în domeniul biologic. Estimarea exactă a intensității luminii joacă un rol esențial în ecosistemul nostru, în creșterea plantelor etc. Așadar, pentru a îndeplini acest scop, am studiat acest senzor BH1715, care este un senzor de lumină ambientală de ieșire serială de 16 biți.

În acest tutorial, vom demonstra funcționarea BH1715 cu Arduino Nano.

Hardware-ul de care veți avea nevoie în acest scop este după cum urmează:

1. BH1715 - Senzor de lumină ambientală

2. Arduino nano

3. Cablu I2C

4. Scutul I2C pentru Arduino Nano

Pasul 1: BH1715 Prezentare generală:

De ce ai nevoie..!!
De ce ai nevoie..!!

În primul rând, am dori să vă familiarizăm cu caracteristicile de bază ale modulului senzor care este BH1715 și cu protocolul de comunicație pe care funcționează.

BH1715 este un senzor digital de lumină ambientală cu o interfață de magistrală I²C. BH1715 este utilizat în mod obișnuit pentru a obține datele de lumină ambientală pentru reglarea puterii de iluminare a ecranului LCD și a tastaturii pentru dispozitive mobile. Acest dispozitiv oferă o rezoluție de 16 biți și un domeniu de măsurare reglabil, permițând detectarea de la 23 la 100 000 lux.

Protocolul de comunicare pe care funcționează senzorul este I2C. I2C reprezintă circuitul inter-integrat. Este un protocol de comunicare în care comunicația are loc prin intermediul liniilor SDA (date seriale) și SCL (serial clock). Permite conectarea mai multor dispozitive în același timp. Este unul dintre cele mai simple și mai eficiente protocol de comunicare.

Pasul 2: De ce ai nevoie..

De ce ai nevoie..!!
De ce ai nevoie..!!
De ce ai nevoie..!!
De ce ai nevoie..!!
De ce ai nevoie..!!
De ce ai nevoie..!!

Materialele de care avem nevoie pentru îndeplinirea obiectivului nostru includ următoarele componente hardware:

1. BH1715 - Senzor de lumină ambientală

2. Arduino Nano

3. Cablu I2C

4. I2C Shield pentru Arduino nano

Pasul 3: Conectarea hardware-ului:

Conectare hardware
Conectare hardware
Conectare hardware
Conectare hardware

Secțiunea de conectare hardware explică practic conexiunile de cablare necesare între senzor și raspberry pi. Asigurarea conexiunilor corecte este necesitatea de bază în timp ce lucrați la orice sistem pentru ieșirea dorită. Deci, conexiunile necesare sunt următoarele:

BH1715 va funcționa pe I2C. Iată exemplul schemei de cablare, care demonstrează cum se conectează fiecare interfață a senzorului.

Out-of-the-box, placa este configurată pentru o interfață I2C, ca atare, vă recomandăm să utilizați această conexiune dacă sunteți altfel agnostic. Nu ai nevoie decât de patru fire!

Sunt necesare doar patru conexiuni Vcc, Gnd, SCL și pinii SDA și acestea sunt conectate cu ajutorul cablului I2C.

Aceste conexiuni sunt prezentate în imaginile de mai sus.

Pasul 4: Măsurarea intensității luminii Cod Arduino:

Măsurarea intensității luminii Cod Arduino
Măsurarea intensității luminii Cod Arduino
Măsurarea intensității luminii Cod Arduino
Măsurarea intensității luminii Cod Arduino

Să începem cu codul Arduino acum.

În timp ce utilizați modulul senzor cu Arduino, includem biblioteca Wire.h. Biblioteca „Wire” conține funcțiile care facilitează comunicarea i2c între senzor și placa Arduino.

Întregul cod Arduino este dat mai jos pentru confortul utilizatorului:

#include

// BH1715 Adresa I2C este 0x23 (35) #define Addr 0x23 void setup () {// Inițializați comunicarea I2C ca MASTER Wire.begin (); // Inițializați comunicarea în serie, rata baud setată = 9600 Serial.begin (9600); // Porniți I2C Transmission Wire.beginTransmission (Addr); // Trimiteți comanda de pornire Wire.write (0x01); // Oprire I2C Transmission Wire.endTransmission (); // Porniți I2C Transmission Wire.beginTransmission (Addr); // Trimiteți comanda de măsurare continuă Wire.write (0x10); // Oprire I2C Transmission Wire.endTransmission (); întârziere (300); } void loop () {date int nesemnate [2]; // Solicitați 2 octeți de date Wire.requestFrom (Addr, 2); // Citiți 2 octeți de date // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); date [1] = Wire.read (); } întârziere (300); // convertiți luminanța flotantă a datelor = ((date [0] * 256) + date [1]) / 1,20; // Ieșire date pe monitorul serial Serial.print ("Lumina luminii ambientale:"); Serial.print (luminanță); Serial.println ("lux"); }

Următoarea parte a codului inițiază comunicarea i2c și comunicarea serială cu ajutorul funcțiilor Wire.begin () și Serial.begin ().

// Inițializați comunicarea I2C ca MASTER

Wire.begin (); // Inițializați comunicarea serială, setați baud rate = 9600 Serial.begin (9600); // Porniți I2C Transmission Wire.beginTransmission (Addr); // Trimiteți comanda de pornire Wire.write (0x01); // Oprire I2C Transmission Wire.endTransmission (); // Porniți I2C Transmission Wire.beginTransmission (Addr); // Trimiteți comanda de măsurare continuă Wire.write (0x10); // Oprire I2C Transmission Wire.endTransmission (); întârziere (300);

Intensitatea luminii este măsurată în următoarea secțiune a codului.

date int nesemnate [2];

// Solicitați 2 octeți de date Wire.requestFrom (Addr, 2); // Citiți 2 octeți de date // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); date [1] = Wire.read (); } întârziere (300); // convertiți luminanța flotantă a datelor = ((date [0] * 256) + date [1]) / 1,20; // Ieșire date pe monitorul serial Serial.print ("Lumina luminii ambientale:"); Serial.print (luminanță); Serial.println ("lux");

Tot ce trebuie să faceți este să ardeți codul în arduino și să verificați citirile pe portul serial. Ieșirea este prezentată în imaginea de mai sus și pentru referință.

Pasul 5: Aplicații:

Aplicații
Aplicații

BH1715 este un senzor de lumină ambientală de ieșire digitală care poate fi încorporat în telefonul mobil, TV LCD, NOTE PC etc. Poate fi utilizat și în mașini de joc portabile, aparate foto digitale, camere video digitale, PDA, afișaj LCD și multe alte dispozitive care necesită aplicații eficiente de detectare a luminii.

Recomandat: