Usare un Fotoresistore per far accendere un LED
Oggi utilizzeremo un sensore adatto a misurare la luminosità: parliamo del fotoresistore o sensore crepuscolare. Vedremo come realizzare un sistema che accenda un LED quando la luminosità diminuisce. Può essere utile per imparare a costruire impianti di illuminazione che si attivino quando la luce del Sole inizia a diminuire.
Cosa Serve?
Per prima cosa sarà utile armarsi di Arduino UNO, un LED, jumper, una resistenza da 220 OHM, una resistenza da 10000 OHM, un sensore crepuscolare. Ricordiamo che la prima resistenza serve per il LED, mentre la seconda resistenza la utilizzeremo per il fotoresistore. Qui la lista del necessario da acquistare su Amazon:
- Arduino UNO: https://amzn.to/2LjKWvg
- Arduino UNO (clone): https://amzn.to/2LfJhH0
- LED: https://amzn.to/2Wl9YAv
- Resistenze da 220 OHM: https://amzn.to/3bku2qR
- Resistenze da 10K OHM: https://amzn.to/2YUNMPm
- Fotoresistore: https://amzn.to/35Tohzd
- Jumper: https://amzn.to/3dH3Mc1
- BreadBoard: https://amzn.to/2WMJ3fR
Collegamenti
Parte dei collegamenti l’abbiamo già appresa nel primo esercizio (potete cliccare QUI), mentre prestiamo attenzione al collegamento del fotoresistore. Esso va collegato ai 5V tramite la resistenza da 10K OHM ed alla fine di essa va aggiunto un jumper che termina nel pin analogico A0. Seguite lo schema in basso per non sbagliare.
Codice
Nel codice troviamo l’avvio del monitor seriale, disposto nel VOID SETUP, mentre nel VOID LOOP dichiariamo la variabile luce in intero, poiché il segnale analogico è un numero intero positivo compreso tra 0 e 1023. Per verificare che la luce sia superiore al valore 500 per accendere il LED, useremo un IF/Else, una funzione che controlla se la condizione posta (luce>500) sia vera oppure no. Nel caso sia vera, il LED si accendere; nel caso contrario il LED resterà spento.
void setup() { pinMode (13, OUTPUT); //LED Serial.begin(9600); // avvio il monitor seriale } void loop () { int luce = analogRead (A0); // Variabile luce che legge dal pin analogico A0 if (luce > 500){ // se il valore di luce è superiore a 500 accendi LED digitalWrite (13, HIGH); } else{ digitalWrite (13, LOW); } Serial.println(luce); // stampo il valore di luce delay (200); }