Sommario:

Calcolo dell'intensità della luce utilizzando BH1715 e Arduino Nano: 5 passaggi
Calcolo dell'intensità della luce utilizzando BH1715 e Arduino Nano: 5 passaggi

Video: Calcolo dell'intensità della luce utilizzando BH1715 e Arduino Nano: 5 passaggi

Video: Calcolo dell'intensità della luce utilizzando BH1715 e Arduino Nano: 5 passaggi
Video: Calcolo del Cammino ottico della Luce: Esercizio con Riflessione e Trigonometria 2024, Luglio
Anonim
Image
Image

Ieri stavamo lavorando su display LCD e mentre lavoravamo su di essi ci siamo resi conto dell'importanza del calcolo dell'intensità della luce. L'intensità della luce non è importante solo nel dominio fisico di questo mondo, ma ha anche il suo ruolo ben noto nel dominio biologico. La stima accurata dell'intensità della luce gioca un ruolo fondamentale nel nostro ecosistema, nella crescita delle piante, ecc. Quindi, per questo scopo abbiamo studiato questo sensore BH1715, che è un sensore di luce ambientale del tipo a uscita seriale a 16 bit.

In questo tutorial, dimostreremo il funzionamento di BH1715 con Arduino Nano.

L'hardware di cui avrai bisogno per questo scopo è il seguente:

1. BH1715 - Sensore di luce ambientale

2. Arduino nano

3. Cavo I2C

4. Scudo I2C per Arduino Nano

Fase 1: Panoramica del BH1715:

Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!

Prima di tutto vorremmo familiarizzare con le caratteristiche di base del modulo sensore che è BH1715 e il protocollo di comunicazione su cui funziona.

BH1715 è un sensore di luce ambientale digitale con un'interfaccia bus I²C. Il BH1715 viene comunemente utilizzato per ottenere i dati sulla luce ambientale per regolare la potenza della retroilluminazione del display LCD e della tastiera per i dispositivi mobili. Questo dispositivo offre una risoluzione a 16 bit e un intervallo di misurazione regolabile, consentendo il rilevamento da 0,23 a 100.000 lux.

Il protocollo di comunicazione su cui funziona il sensore è I2C. I2C sta per il circuito inter-integrato. È un protocollo di comunicazione in cui la comunicazione avviene tramite le linee SDA (dati seriali) e SCL (orologio seriale). Consente di collegare più dispositivi contemporaneamente. È uno dei protocolli di comunicazione più semplici ed efficienti.

Passaggio 2: cosa ti serve.

Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!

I materiali di cui abbiamo bisogno per raggiungere il nostro obiettivo includono i seguenti componenti hardware:

1. BH1715 - Sensore di luce ambientale

2. Arduino Nano

3. Cavo I2C

4. Scudo I2C per Arduino nano

Passaggio 3: collegamento hardware:

Collegamento hardware
Collegamento hardware
Collegamento hardware
Collegamento hardware

La sezione relativa ai collegamenti hardware spiega sostanzialmente le connessioni di cablaggio necessarie tra il sensore e il Raspberry Pi. Garantire connessioni corrette è la necessità di base mentre si lavora su qualsiasi sistema per l'output desiderato. Quindi, i collegamenti necessari sono i seguenti:

Il BH1715 funzionerà su I2C. Ecco lo schema elettrico di esempio, che mostra come cablare ciascuna interfaccia del sensore.

Di default, la scheda è configurata per un'interfaccia I2C, quindi consigliamo di utilizzare questo collegamento se sei altrimenti agnostico. Tutto ciò di cui hai bisogno sono quattro fili!

Sono necessarie solo quattro connessioni pin Vcc, Gnd, SCL e SDA e questi sono collegati con l'aiuto del cavo I2C.

Queste connessioni sono mostrate nelle immagini sopra.

Passaggio 4: misurazione dell'intensità della luce Codice Arduino:

Codice Arduino per la misurazione dell'intensità della luce
Codice Arduino per la misurazione dell'intensità della luce
Codice Arduino per la misurazione dell'intensità della luce
Codice Arduino per la misurazione dell'intensità della luce

Iniziamo ora con il codice Arduino.

Durante l'utilizzo del modulo sensore con Arduino, includiamo la libreria Wire.h. La libreria "Wire" contiene le funzioni che facilitano la comunicazione i2c tra il sensore e la scheda Arduino.

L'intero codice Arduino è riportato di seguito per comodità dell'utente:

#includere

// BH1715 L'indirizzo I2C è 0x23(35) #define Addr 0x23 void setup() { // Inizializza la comunicazione I2C come MASTER Wire.begin(); // Inizializza la comunicazione seriale, imposta la velocità di trasmissione = 9600 Serial.begin(9600); // Avvia la trasmissione I2C Wire.beginTransmission(Addr); // Invia il comando di accensione Wire.write(0x01); // Arresta la trasmissione I2C Wire.endTransmission(); // Avvia la trasmissione I2C Wire.beginTransmission(Addr); // Invia il comando di misurazione continua Wire.write(0x10); // Arresta la trasmissione I2C Wire.endTransmission(); ritardo(300); } void loop() { unsigned int data[2]; // Richiedi 2 byte di dati Wire.requestFrom(Addr, 2); // Legge 2 byte di dati // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); data[1] = Wire.read(); } ritardo(300); //converte la luminanza float dei dati = ((data[0] * 256) + data[1]) / 1.20; // Invia i dati al monitor seriale Serial.print("Ambient Light Luminance:"); Serial.print (luminanza); Serial.println("lux"); }

La parte seguente del codice avvia la comunicazione i2c e la comunicazione seriale con l'aiuto della funzione Wire.begin() e Serial.begin().

// Inizializza la comunicazione I2C come MASTER

Wire.begin(); // Inizializza la comunicazione seriale, imposta la velocità di trasmissione = 9600 Serial.begin(9600); // Avvia la trasmissione I2C Wire.beginTransmission(Addr); // Invia il comando di accensione Wire.write(0x01); // Arresta la trasmissione I2C Wire.endTransmission(); // Avvia la trasmissione I2C Wire.beginTransmission(Addr); // Invia il comando di misurazione continua Wire.write(0x10); // Arresta la trasmissione I2C Wire.endTransmission(); ritardo(300);

L'intensità della luce è misurata nella sezione seguente del codice.

dati int senza segno[2];

// Richiedi 2 byte di dati Wire.requestFrom(Addr, 2); // Legge 2 byte di dati // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); data[1] = Wire.read(); } ritardo(300); //converte la luminanza float dei dati = ((data[0] * 256) + data[1]) / 1.20; // Invia i dati al monitor seriale Serial.print("Ambient Light Luminance:"); Serial.print (luminanza); Serial.println("lux");

Tutto quello che devi fare è masterizzare il codice in arduino e controllare le tue letture sulla porta seriale. L'output è mostrato nell'immagine sopra anche per riferimento.

Passaggio 5: applicazioni:

Applicazioni
Applicazioni

BH1715 è un sensore di luce ambientale con uscita digitale che può essere incorporato in telefoni cellulari, TV LCD, PC NOTE ecc. Può anche essere impiegato in macchine da gioco portatili, fotocamere digitali, videocamere digitali, PDA, display LCD e molti altri dispositivi che richiedono applicazioni di rilevamento della luce efficienti.

Consigliato: