Il GY-302 è una tavola di breakout con il sensore di intensità della luce BH1750, che misura i livelli di luce in Lux. Comunica con i microcontrollori tramite il protocollo I2C, rendendolo una scelta eccellente per progetti dipendenti dalla luce come illuminazione intelligente, tracker solari e applicazioni fotografiche. Questo tutorial ti guiderà attraverso la connessione e l'utilizzo del modulo GY-302 con Arduino.
Cosa avrai bisogno
- Modulo sensore di luce GY-302 BH1750
- Arduino Board (ad es. Uno, Mega, Nano)
- Breadboard e fili jumper
- Un computer con l'IDE Arduino installato
Passaggio 1: Comprensione del modulo GY-302
Il GY-302 utilizza il sensore BH1750 per misurare l'intensità della luce. Output i risultati in Lux, che è l'unità standard per misurare l'illuminanza.
Pinout GY-302
Spillo | Funzione |
---|---|
VCC | Alimentazione (3.3V/5V) |
GND | Terra |
SDA | Linea di dati I2C |
SCL | Linea di orologio i2c |
Indirizzo i2c
- Indirizzo predefinito:
0x23
- Indirizzo alternativo:
0x5C
(Impostato tirando il perno ADDR in alto su alcuni moduli)
Passaggio 2: Cablaggio della GY-302 ad Arduino
Collega il modulo GY-302 al tuo Arduino come segue:
PIN GY-302 | Arduino Pin |
---|---|
VCC | 5v |
GND | GND |
SDA | A4 |
SCL | A5 |
Nota: Assicurati che i pin I2C corretti siano utilizzati per la tua scheda Arduino (ad es.
SDA
ESCL
Su Arduino Mega sono pin 20 e 21).
Passaggio 3: installare la libreria richiesta
Per semplificare la comunicazione con il sensore BH1750, installare la libreria "BH1750".
Passi da installare:
- Apri l'IDE Arduino.
- Vai a Schizzo > Includi la libreria > Gestisci le biblioteche.
- Cerca "BH1750" e fai clic su Installare.
Passaggio 4: caricare il codice
Ecco uno schizzo di esempio per leggere i dati di intensità della luce da GY-302:
#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter;
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("Initializing BH1750...");
if (!lightMeter.begin()) {
Serial.println("BH1750 not detected. Check wiring.");
while (1);
}
Serial.println("BH1750 ready.");
}
void loop() {
float lux = lightMeter.readLightLevel(); // Read light level in lux
Serial.print("Light Intensity: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000); // Wait 1 second before the next reading
}
Passaggio 5: testare l'installazione
- Collega l'Arduino al tuo computer tramite USB.
- Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
- Carica il codice facendo clic Caricamento.
- Apri il monitor seriale (Utensili > Monitor seriale) e impostare il tasso di baud su
9600
. - Osserva le letture di intensità della luce visualizzate in Lux.
Opzionale: regolazione dell'indirizzo I2C
Se l'indirizzo I2C predefinito (0x23
) non funziona, controlla la configurazione del pin ADDR del modulo. Alcuni moduli consentono di passare a un indirizzo alternativo (0x5C
) collegando il pin ADDR a VCC.
Applicazioni del GY-302
- Sistemi di illuminazione intelligenti
- Tracciamento del pannello solare
- Misurazione dell'intensità della luce in fotografia
- Monitoraggio della luce interna ed esterna
Risoluzione dei problemi
- Nessuna risposta dal sensore: Verifica il cablaggio I2C e controlla l'indirizzo I2C del modulo.
- Letture errate: Assicurarsi che il sensore non sia ostruito o riceva riflessi di luce.
- Errori della libreria: Conferma che la libreria BH1750 sia installata correttamente.
Conclusione
Hai interfacciato con successo il sensore di luce GY-302 BH1750 con Arduino. Questo sensore versatile fornisce misurazioni accurate di intensità della luce in Lux, rendendolo uno strumento eccellente per una varietà di progetti sensibili alla luce. Sperimenta ulteriormente integrandolo con altri componenti o sistemi!