In questo post vedremo come implementare un Interruttore crepuscolare con Arduino Nano e Fotoresistenza. In particolare vedremo come leggere il valore rilevato da una Fotoresistenza e come interpretarlo per gestire l’accensione di un led.
Interruttore crepuscolare con Arduino Nano e Fotoresistenza
Panoramica sulla Fotoresistenza
La Fotoresistenza (Light-Dependent Resistor LDR), chiamata anche Fotoresistore, è un particolare componente elettronico che varia la sua resistenza in modo proporzionale alla quantità di luce che la colpisce.
Ha un valore di 0Ω quando viene sottoposta ad una condizione di luce piena, fino ad arrivare a 10, 50, 100 KΩ (il valore massimo varia in base al modello) al buio. Sono composte da uno strato semiconduttore che reagisce alla luminosità, sia quella emessa dal sole che da altre fonti luminose.
Questo è il simbolo elettrico che identifica una Fotoresistenza
Per maggiori informazioni sulle Fotoresistenze vi rimando su Wikipedia a questo link.
Materiale occorrente
Come in ogni post elenco i componenti che utilizzeremo per portare a termine il nostro progetto
- Arduino Nano ATmega328P CH340G: (Link Amazon – Link eBay)
- Led: (Link Amazon – Link eBay)
- Fotoresistenza: (Link Amazon – Link eBay)
- Resistenza: da 10KΩ (Link Amazon – Link eBay)
- Resistenza: da 220Ω (Link Amazon – Link eBay)
- Breadboard: basetta forata sperimentale (Link Amazon – Link eBay)
- Jumper Wire: cavetti elettrici (Link Amazon – Link eBay)
- Arduino IDE: ambiente di sviluppo per programmare il micro controllore Arduino (per l’installazione e la configurazione vi rimando a questi post)
Circuito e collegamenti
La resistenza da 220Ω deve essere inserita in serie tra il Led e il Pin su cui verrà collegato il piedino positivo. Serve come protezione per ridurre la caduta di tensione (5 volt) in uscita dal Pin di Arduino.
La resistenza da 10KΩ serve per creare un partitore resistivo collegata in serie alla Fotoresistenza. In base al valore che assumerà il Fotoresistore avremo, sul piedino della resistenza con cui è collegata, un valore che aumenta o diminuisce. Quello è il valore che andremo a confrontare in modo da decidere se accendere o spegnere il Led.
Effettuiamo i collegamenti come indicato in questa tabella. Per facilitare i collegamenti ho evidenziato i piedini delle resistenze nell’immagine subito dopo la tabella
COLLEGAMENTO PIEDINI | |||||
---|---|---|---|---|---|
LDR | R 10KΩ | Led | R 220Ω | Arduino Nano | Jumper |
2 | 5V | Rosso | |||
1 | 2F | A0 | Verde | ||
1F | Neg. | GND | Nero | ||
Pos. | 2L | ||||
1L | D7 | Giallo |
Questo il circuito realizzato con Fritzing
E questo il circuito reale
Interruttore crepuscolare con Arduino Nano e Fotoresistenza
Lo Sketch
Questo è lo sketch che andremo a caricare sulla board.
Il codice è abbastanza semplice e commentato. La parte che si occupa di spegnere o accendere il led, in base al valore letto dal Fotoresistore, è questa
Il valore 100 possiamo sostituirlo in base alle nostre esigenze. Possiamo recuperare il valore che ci interessa aprendo il Monitor Seriale dall’IDE, con Arduino connesso al PC tramite porta USB, per vedere i valori che vengono letti dalla Fotoresistenza quando proviamo ad oscurarla.
Configurazione IDE e test
Ora non ci resta che caricare il nostro sketch sul MicroControllore e vedere se tutto funziona correttamente.
Cominciamo collegando la board Arduino UNO al nostro PC tramite porta USB e avviamo l’ambiente di sviluppo Arduino IDE.
Una volta avviato l’IDE configuriamo la nostra board dal pannello Strumenti in questo modo
- Scheda -> Arduino Nano
- Processore -> ATmega328P
- Porta -> COM3 (N.B. la porta potrebbe essere differente)
Incolliamo lo sketch, che abbiamo visto poco prima, e carichiamolo sulla board Arduino Nano cliccando sul pulsante Carica (contrassegnato da una freccia rivolta verso destra)
Se non ci vengono visualizzati messaggi di errore vuol dire che il codice è stato compilato e caricato correttamente.
Ora non ci resta che testare il funzionamento del circuito. Per poterlo testare non dobbiamo fare altro che oscurare o illuminare la Fotoresistenza.
Oscurando la Fotoresistenza, se raggiunge un valore inferiore a quello che abbiamo impostato nel codice (100 in questo caso), il Led verrà illuminato. Sopra il limite impostato il led resterà spento.
Queste alcune letture prelevare utilizzando il Monitor Seriale e oscurando la Fotoresistenza
A presto 😉