Se ti sei mai chiesto come misurare in modo efficiente il livello di luce in un ambiente con Arduino, sei nel posto giusto. In questo articolo spiegheremo passo dopo passo come farlo utilizzando una fotoresistenza LDR, nota anche come fotoresistenza. Queste piccole meraviglie tecnologiche sono componenti elettronici in grado di modificare la loro resistenza a seconda della quantità di luce che ricevono, il che apre infinite possibilità per progetti di elettronica e automazione.
Le applicazioni del sensore di luce con Arduino sono molteplici: dai sistemi di illuminazione automatici ai robot che si orientano in base alla luce. Soprattutto, è un componente conveniente e facile da usare. Qui ti daremo tutte le informazioni necessarie affinché tu possa costruire il tuo sistema di misurazione della luce con Arduino e sfruttarne tutte le potenzialità .
Cos’è un LDR e come funziona?
Un LDR (resistenza dipendente dalla luce) È una resistenza la cui entità varia a seconda della quantità di luce che cade su di essa. In condizioni di oscurità la resistenza è molto elevata, raggiungendo valori fino a 1 MOhm. Al contrario, quando l'LDR riceve luce abbondante, la resistenza diminuisce notevolmente, raggiungendo valori compresi tra 50 e 100 Ohm sotto luce intensa.
Il suo funzionamento si basa sul principio della conduttività dei materiali semiconduttori. Dopo aver ricevuto la luce, i fotoni energizzano gli elettroni nel materiale, facilitando il flusso di corrente e quindi diminuendo la resistenza. Questo tipo di sensore è molto utile per applicazioni dove è richiesta una misurazione relativa della luce nell'ambiente.
Caratteristiche dell'LDR
Questo componente è molto popolare grazie al suo basso costo e alla facilità d'uso. I valori tipici di resistenza vanno da 1 MOhm in completa oscurità fino a 50-100 Ohm in piena luce. Tuttavia, vale la pena ricordare che non sono i sensori più precisi se si desidera misurare con precisione l’illuminamento (luce in lux), poiché possono essere influenzati da fattori come la temperatura.
La variazione della resistenza è piuttosto lenta, impiegando dai 20 ai 100 millisecondi a seconda del modello. Ciò significa che non è adatto per rilevare rapidi cambiamenti di luce, come quelli prodotti dalle luci alimentate a corrente alternata, ma offre un'eccellente stabilità in condizioni di luce più costante.
Mentre Gli LDR sono più adatti per misurare le tendenze della luce che per fornire dati accurati, il loro basso costo e la facilità di integrazione con le schede Arduino li rendono un sensore ideale per progetti fai da te.
Schema circuitale e di collegamento
Affinché Arduino possa misurare la variazione di resistenza dell'LDR, è necessario montare il sensore su un cosiddetto partitore di tensione. Questo è un circuito molto semplice composto dall'LDR e da un resistore fisso collegato in serie. L'LDR è posizionato tra la tensione di ingresso (ad esempio 5 V sulla scheda Arduino Uno) e il pin di ingresso analogico e il resistore fisso è collegato tra il pin e la terra (GND).
Il valore della resistenza fissa è solitamente di 10 kOhm, anche se può variare a seconda della sensibilità che si desidera ottenere nella misurazione.
Esempi di assemblaggio ed codice
Per realizzare un sistema base con Arduino e un LDR, la prima cosa che devi fare è collegare i seguenti elementi:
- Un'estremità dell'LDR all'alimentazione a 5 V.
- L'altra estremità dell'LDR all'ingresso analogico (A0, ad esempio) e contemporaneamente a un resistore fisso che verrà collegato a terra.
Con questa configurazione puoi iniziare a leggere i valori che l'LDR fornisce attraverso l'ingresso analogico. Il codice seguente è un esempio di base per leggere tali valori:
const int pinLDR = A0;
void setup() {
Serial.begin(9600); // Iniciar monitor serie}
void loop() {
int valorLDR = analogRead(pinLDR); // Leer valor de LDR
Serial.println(valorLDR); // Imprimir valor en monitor
delay(500);
}
Questo codice stamperà valori compresi tra 0 (ovvero quando non c'è luce) e 1023 (massima luce ricevuta). Questi valori sono proporzionali alla luce percepita dall'LDR.
Il comportamento della resistenza in funzione della luce
Come già accennato, la resistenza dell'LDR diminuisce man mano che riceve più luce. Per ottenere a misurazione precisa della quantità di luce, devi conoscere i valori di resistenza del tuo LDR in diverse condizioni di illuminazione.
Nella serie GL55, ad esempio, i valori vanno da 5 kΩ a 200 kΩ in presenza di luce e da 500 kΩ a 10 MΩ in condizioni di buio. Questi valori possono variare da un modello all'altro, quindi è sempre consigliabile consultare la scheda tecnica del produttore del sensore.
Una peculiarità interessante della LDR è questa La sua sensibilità è maggiore nella porzione di luce verde dello spettro., approssimativamente a lunghezze d'onda di 540 nm. Ciò significa che gli LDR rispondono meglio alla luce verde rispetto ad altre parti dello spettro visibile.
Applicazioni pratiche
Le possibili applicazioni degli LDR collegati ad Arduino sono pressoché infinite. Tra i più pratici ci sono i sistemi di illuminazione automatica, dove il circuito può attivare o disattivare le luci a seconda dei livelli di luce rilevati. Sono utilizzati anche per robot che seguono la luce e sistemi di domotica.
Puoi, ad esempio, creare un sistema in cui quando i livelli di luce diminuiscono, un LED si accende per compensare la mancanza di luce. Ecco un semplice esempio di codice:
int LDRPin = A0; // Pin para la LDR
int LEDPin = 13; // Pin para el LED
int threshold = 500; // Umbral para encender el LED
void setup() {
pinMode(LEDPin, OUTPUT);
pinMode(LDRPin, INPUT);}
void loop() {
int valorLuz = analogRead(LDRPin);
if (valorLuz < threshold) {
digitalWrite(LEDPin, HIGH); // Enciende el LED
} else {
digitalWrite(LEDPin, LOW); // Apaga el LED
}
delay(100);}
Questo piccolo programma legge il valore LDR e se il livello di luce è inferiore alla soglia impostata, accende il LED. Altrimenti lo spegne. Un esempio semplice ma altamente funzionale nei progetti di automazione dell'illuminazione.
Limitazioni e precauzioni
Sebbene l’utilizzo di un LDR sia molto conveniente in molti progetti, è importante tenere conto di alcuni dei suoi limiti:
- Non sono molto accurati se stai cercando di misurare l'esatta intensità della luce in lux.
- Il suo comportamento può variare a seconda della temperatura.
- Funzionano meglio per rilevare cambiamenti più grandi nella luce e non variazioni rapide.