Elettronica analogicaElettrotecnica base

Fotoresistenze LDR: funzionamento, caratteristiche e circuiti pratici

Come utilizzare le LDR in sistemi automatici

Le fotoresistenze, note anche come LDR, acronimo di Light Dependent Resistor, sono componenti elettronici passivi la cui resistenza elettrica varia in funzione della quantità di luce che colpisce la loro superficie sensibile. In condizioni di buio presentano una resistenza molto elevata, spesso nell’ordine delle centinaia di kΩ o dei MΩ, mentre in presenza di luce la loro resistenza diminuisce sensibilmente, potendo arrivare a poche centinaia di Ω o a qualche kΩ a seconda del modello e dell’intensità luminosa.

Il principio di funzionamento si basa sull’effetto fotoconduttivo: quando i fotoni incidono sul materiale semiconduttore della fotoresistenza, forniscono energia agli elettroni, aumentando il numero di portatori di carica disponibili e quindi la conducibilità del componente. Dal punto di vista pratico, una fotoresistenza si comporta quindi come un resistore variabile controllato dalla luce, caratteristica che la rende estremamente utile in tutti quei circuiti in cui è necessario rilevare variazioni di illuminazione in modo semplice, economico e affidabile.

La struttura tipica di una LDR è costituita da un supporto isolante, sul quale viene depositato un sottile strato di materiale fotosensibile disposto spesso con una geometria a serpentina, così da aumentare la superficie utile e migliorare la variazione resistiva; il tutto è generalmente protetto da un rivestimento trasparente che consente il passaggio della luce verso l’elemento attivo. I materiali più utilizzati storicamente per la realizzazione delle fotoresistenze sono semiconduttori come il solfuro di cadmio, indicato come CdS, e il seleniuro di cadmio, indicato come CdSe, entrambi apprezzati per la buona sensibilità alla luce visibile e per il costo contenuto.

Il CdS è particolarmente diffuso nelle applicazioni generiche perché risponde bene allo spettro percepito dall’occhio umano, rendendolo adatto a sistemi crepuscolari, lampade automatiche e semplici sensori di luminosità; il CdSe, invece, può offrire una risposta più estesa verso lunghezze d’onda differenti, risultando utile in applicazioni più specifiche. Esistono anche fotoresistenze basate su altri materiali semiconduttori, progettate per rispondere a bande spettrali particolari, ad esempio nell’infrarosso, ma nel contesto dell’elettronica didattica, hobbistica e industriale di base le LDR al CdS restano tra le più conosciute.

Le tipologie principali si distinguono in base alla sensibilità spettrale, alla dimensione della superficie fotosensibile, al valore resistivo in buio e in luce, alla potenza dissipabile e al tempo di risposta. Le LDR di piccole dimensioni sono adatte a circuiti compatti e a rilevamenti generici, mentre quelle con superficie sensibile più ampia offrono in genere una maggiore capacità di captare luce, risultando utili quando l’illuminazione disponibile è debole o variabile.

Un aspetto importante da considerare è che la risposta della fotoresistenza non è lineare: la variazione della resistenza rispetto all’intensità luminosa segue una curva tipicamente non proporzionale, per cui questi componenti sono ottimi per rilevare soglie di luce o variazioni relative, ma meno indicati quando serve una misura fotometrica precisa. Inoltre, il tempo di risposta non è istantaneo: una LDR può impiegare decine o centinaia di millisecondi, e in alcuni casi anche di più, per adattarsi a un cambiamento improvviso di illuminazione, specialmente nel passaggio da luce a buio.

In un circuito pratico, la fotoresistenza viene quasi sempre impiegata in un partitore di tensione insieme a una resistenza fissa: variando la luce, varia la resistenza della LDR e di conseguenza cambia la tensione prelevata dal nodo centrale del partitore, tensione che può essere letta da un ingresso analogico di un microcontrollore, da un comparatore o da uno stadio transistor. Questa configurazione è molto usata con schede come Arduino, ESP32 o sistemi embedded simili, dove la LDR consente di realizzare rapidamente un sensore di luminosità per accendere automaticamente una lampada, regolare la retroilluminazione di un display, rilevare la presenza di un oggetto che interrompe un fascio luminoso o monitorare le condizioni ambientali.

Tabella datasheet indicativa

Caratteristica Valore tipico indicativo Note applicative
Resistenza al buio 100 kΩ – 10 MΩ Dipende dal modello e dal tempo trascorso in assenza di luce.
Resistenza in luce intensa 100 Ω – 10 kΩ Valore riferito a illuminazione elevata, spesso misurata a 10 lux o 100 lux.
Tensione massima 100 – 250 V Da verificare sempre sul datasheet del componente specifico.
Potenza dissipabile 50 – 200 mW Importante non superarla per evitare deriva o danneggiamento.
Tempo di risposta 20 ms – alcuni secondi Generalmente più lenta nel ritorno al buio rispetto all’esposizione alla luce.
Sensibilità spettrale Visibile, spesso con picco nel verde Le LDR al CdS hanno una risposta simile alla percezione luminosa umana.
Linearità Bassa Adatta a soglie e misure relative, meno a misure precise.

I campi di utilizzo delle fotoresistenze sono numerosi e spaziano dall’automazione domestica alla robotica educativa, dall’elettronica industriale semplice ai dispositivi di risparmio energetico. Sono molto comuni nei circuiti crepuscolari per l’accensione automatica dell’illuminazione esterna, nei sistemi che regolano la luminosità di display e pannelli, nei giocattoli elettronici, nei piccoli robot inseguitori di luce, nei contatori ottici a bassa velocità e nei dispositivi che devono distinguere tra giorno e notte.

In ambito tutorial e prototipazione, rappresentano uno dei componenti migliori per introdurre il concetto di sensore analogico, perché permettono di visualizzare immediatamente la relazione tra una grandezza fisica, cioè la luce, e una grandezza elettrica, cioè la resistenza. Tra i principali vantaggi delle fotoresistenze si trovano il costo molto basso, la semplicità di utilizzo, la robustezza elettrica, la possibilità di essere inserite in circuiti elementari e la buona sensibilità alla luce ambientale. Non richiedono polarizzazione specifica, poiché non sono componenti polarizzati, e possono essere utilizzate facilmente sia in circuiti analogici sia in sistemi digitali tramite soglie di commutazione.

Di contro, presentano alcuni limiti significativi: la risposta è lenta rispetto a fotodiodi e fototransistor, la precisione è limitata, la curva resistenza-luce non è lineare, le tolleranze tra esemplari possono essere ampie e alcuni materiali tradizionali, come il cadmio, sono soggetti a restrizioni ambientali in determinati contesti normativi. Per applicazioni professionali in cui servono velocità, ripetibilità e misura accurata dell’illuminamento, spesso si preferiscono sensori digitali di luce ambientale, fotodiodi o fototransistor; tuttavia, quando l’obiettivo è rilevare una variazione luminosa lenta, stabilire una soglia giorno-notte o realizzare un circuito economico e facilmente comprensibile, la fotoresistenza rimane una soluzione estremamente efficace.

In conclusione, la LDR è un componente semplice solo in apparenza: il suo comportamento dipende da materiale, geometria, intensità luminosa, spettro della sorgente, temperatura e tempo di esposizione, ma proprio questa combinazione di semplicità circuitale e sensibilità ambientale la rende ancora oggi uno dei sensori più utilizzati per comprendere e realizzare sistemi elettronici controllati dalla luce.

Per dimensionare una LDR in un partitore di tensione, l’obiettivo è scegliere una resistenza fissa R1 adatta al range di luce che si vuole misurare, in modo che la tensione in uscita vari in modo utile per il circuito o per l’ingresso analogico di un microcontrollore.

Lo schema più comune è il seguente:In questa configurazione, la tensione di uscita vale:

Vx = Vcc · RLDR / (R1 + RLDR)

Qui RLDR è la resistenza della fotoresistenza in quel preciso livello di luce. Con questo collegamento, quando aumenta la luce, la resistenza della LDR diminuisce e quindi anche Vx diminuisce. In pratica si ottiene una tensione alta al buio e una tensione bassa con molta luce.

Se invece si collega la LDR sopra e la resistenza fissa sotto, si ottiene il comportamento opposto:In questo caso:

Vx = Vcc · R1 / (R1 + RLDR)

Qui la tensione aumenta quando aumenta la luce. Il criterio pratico più usato per scegliere la resistenza fissa è prendere un valore vicino alla resistenza della LDR nella condizione di luce intermedia che si vuole rilevare. Per esempio, se la LDR vale circa 10 kΩ alla luminosità ambiente considerata “normale”, una buona scelta iniziale è una resistenza fissa da 10 kΩ.

Consideriamo un esempio pratico con alimentazione a 5 V e LDR verso massa:

Vcc = 5V 
R1 = 10 kΩ 
RLDR al buio = 1 MΩ 
RLDR in luce media = 10 kΩ 
RLDR in luce forte = 1 kΩ

Applicando la formula si ottengono i seguenti valori:

Buio: Vout = 5 · 1.000.000 / (10.000 + 1.000.000) ≈ 4,95 V 
Luce media: Vout = 5 · 10.000 / (10.000 + 10.000) = 2,5 V 
Luce forte: Vout = 5 · 1.000 / (10.000 + 1.000) ≈ 0,45 V

Quindi, con una resistenza da 10 kΩ, si ottiene un segnale molto comodo: vicino a 5 V al buio, circa 2,5 V in luce media e sotto 1 V in luce forte. È una scelta adatta per Arduino, ESP32, comparatori, transistor o ingressi analogici.

Per un ingresso analogico, il dimensionamento ideale è quello che sfrutta bene l’intervallo disponibile. Con Arduino a 5 V, per esempio, è utile che Vout vari idealmente tra circa 0 V e 5 V, o almeno tra 1 V e 4 V, così la lettura ADC cambia in modo evidente. Con ESP32, invece, bisogna fare attenzione perché molti ingressi analogici lavorano entro circa 3,3 V, quindi conviene alimentare il partitore a 3,3 V e non a 5 V.

Una regola molto pratica per scegliere la resistenza fissa è questa:

R1 ≈ √(RLDR_min · RLDR_max)

Dove RLDR_min è la resistenza della LDR nella luce massima utile e RLDR_max è la resistenza nel buio o nella luce minima utile. Questa scelta distribuisce meglio la variazione della tensione sul range operativo.

Per esempio:

RLDR_min = 1 kΩ 
RLDR_max = 100 kΩ 
Rfissa ≈ √(1.000 · 100.000) 
Rfissa ≈ √100.000.000 
Rfissa ≈ 10.000 Ω

Anche in questo caso si ottiene una resistenza fissa da circa 10 kΩ. Per circuiti crepuscolari, dove interessa solo stabilire una soglia giorno/notte, si può usare direttamente il partitore collegato a un comparatore o a un ingresso digitale con soglia. Se si vuole regolare il punto di intervento, al posto della resistenza fissa si può usare un trimmer, ad esempio da 10 kΩ, 50 kΩ o 100 kΩ, in base alla LDR utilizzata.

In sintesi, per iniziare si può usare quasi sempre questo dimensionamento:

Vcc = 5 V oppure 3,3 V 
LDR + resistenza fissa in partitore 
R1 = 10 kΩ 
Vout verso ingresso analogico

Successivamente, se il circuito deve lavorare in condizioni specifiche, si misura con un multimetro la resistenza della LDR in buio, luce ambiente e luce intensa, quindi si sceglie la resistenza fissa vicina al valore della LDR nella condizione in cui si vuole avere la massima sensibilità.

ARDUINO e LDR

Per leggere una LDR con Arduino si utilizza normalmente un partitore di tensione collegato a un ingresso analogico, ad esempio A0. La fotoresistenza varia il proprio valore resistivo in base alla luce ricevuta e Arduino converte la tensione presente sul pin analogico in un valore numerico compreso, su Arduino UNO, tra 0 e 1023.

Lo schema consigliato è il seguente:

Con questo collegamento, quando aumenta la luce diminuisce la resistenza della LDR e di conseguenza diminuisce anche la tensione sul potenziale Vx. Quest’ultimo sarà connesso sul pin A0.Il valore restituito da analogRead() sarà basso in condizioni di luce intensa e più alto in presenza di luce debole.

Il programma base per leggere il valore analogico della LDR è il seguente:

const int pinLDR = A0; // Pin analogico collegato al partitore int valore
LDR = 0; // Valore letto da Arduino 

void setup() { 
     Serial.begin(9600); // Avvia la comunicazione seriale 
} 

void loop() { 
     valoreLDR = analogRead(pinLDR); // Lettura analogica da 0 a 1023 
     Serial.print("Valore LDR: "); 
     Serial.println(valoreLDR); 
     delay(500); // Pausa di mezzo secondo 
}

Dopo aver caricato il programma sulla scheda, è possibile aprire il Monitor Seriale dell’IDE Arduino e osservare la variazione del valore letto mentre si illumina o si oscura la fotoresistenza. Questo permette di capire il comportamento reale del sensore e di scegliere eventuali soglie di intervento.

Una versione più completa del programma può classificare la luminosità in tre condizioni: buio, luce media e luce intensa.

const int pinLDR = A0; 
int valoreLDR = 0; 

void setup(){ 
Serial.begin(9600); 
} 

void loop(){ 
valoreLDR = analogRead(pinLDR); 
Serial.print("Valore analogico: "); 
Serial.print(valoreLDR); 
Serial.print(" - "); 
 if (valoreLDR < 300) { 
     Serial.println("Buio"); 
 } else if (valoreLDR < 700) { 
     Serial.println("Luce media"); 
 } else { 
     Serial.println("Luce intensa"); 
 } 
delay(500); 
}

I valori 300 e 700 sono soglie indicative e possono cambiare in base alla LDR utilizzata, alla resistenza del partitore, alla tensione di alimentazione e alle condizioni ambientali. Per ottenere un comportamento più preciso, conviene osservare i valori reali sul Monitor Seriale e modificare le soglie in funzione della propria applicazione.

Questo programma rappresenta una base semplice ma efficace per usare la LDR in progetti come lampade crepuscolari, sistemi di monitoraggio della luce ambientale, piccoli robot sensibili alla luminosità o dispositivi che devono reagire al passaggio tra giorno e notte.

Admin | MST-Tutorial

Appassionato di elettronica, elettrotecnica e programmazione. Fondatore di MST-Tutorial, condivido con entusiasmo conoscenze, esperienze e progetti legati all’innovazione tecnologica, con l’obiettivo di rendere accessibili concetti tecnici complessi attraverso tutorial chiari e pratici.

Articoli Correlati

Pulsante per tornare all'inizio