Utente:Tiaguzz29/Luce notturna con Arduino
Questa risorsa è stata scritta dagli studenti dell'Istituto ITIS "Enrico Mattei" di Urbino, della classe 3B/EN nell'a.s. 2021/2022, all'interno del corso di Sistemi Elettronici 1.
Per favore, prima di apportare modifiche, attendi sino alla fine dell'anno scolastico (termina il 30 giugno 2022) oppure contatta il docente di riferimento Giacomo Alessandroni nel caso venissero rilevati contenuti non in linea con le linee guida della comunità. Se leggi questo avviso ad anno scolastico concluso puoi rimuoverlo. |
Questa lezione descrive come realizza una luce che si accende solo in caso sia buio.
Descrizione progetto
[modifica]Il progetto sfrutta una fotoresistenza che collegata in serie a una resistenza da 10kΩ (partitore di tensione) genera una differenza di potenziale che Arduino può leggere dai suoi input analogici. Se la fotoresistenza fosse collegata da sola a prescindere dal suo valore (che varia in base alla luce che la colpisce) su di lei cadrebbe tutta la tensione. Quando Arduino legge un valore sotto un soglia (sotto i 5 lux) il led si accende, in caso contrario rimane spento.
Sensori e attuatori
[modifica]Il progetto utilizza un fotoresistore che varia la resistenza ai suoi capi in base alla luce che lo colpisce.
Specifiche: Resistenza luce: 30-90K Ohm; Max Tensione (DC): 150V.
Link per acquistarla( I PREZZI NON COMPRENDONO I COSTI DI SPEDIZIONE)
Amazon(5.34€): https://www.amazon.it/dp/B01EZZMLOI
Ebay(1€): https://www.ebay.it/itm/123781021303?hash=item1cd1ec7e77:g:SpwAAOSwab5c6bHF
Wish(3€):https://www.wish.com/search/fotoresistore/product/56844550bdaf782a1f312011?source=
Schema di montaggio
[modifica]Il led viene alimentato dal pin 8 (solo in caso sia buio), poi passando attraverso un resistore da 220Ω arriva al GND. Invece il partitore di tensione, composto da fotoresistore e resistore da 10kΩ, viene alimentato dai 5V di Arduino e poi ricollegato al GND. Infine con un pin A5 Arduino misura la caduta di tensione che c'è sulla fotoresistenza e di conseguenza accende o meno il led.
Numero componenti | componenti |
---|---|
Led | 1 |
Fotoresitore | 1 |
Resistori | 2 |
Codice
[modifica]Questa è la parte che precede il setup dove si inizializzano le variabili
//inizializzo il pin 8 per il led
int led = 8;
//do un nome al valore letto da Arduino
int Lvl_luce = analogRead(A5);
//imposto un valore sotto il quale il led si accende
int soglia = 550;
//comunicazione seriale a 9600 caratteri al secondo
int serial = 9600;
Questo è il setup
void setup() {
//inizializzo il pin del led in output
pinMode(led,OUTPUT);
//inizializzo la comunicazione seriale in modo da poter leggere il livello di luminosità dal computer in caso di necessità
Serial.begin(serial);
}
Questo è il loop
void loop() {
//leggo il valore della tensione
analogRead(Lvl_luce);
//scrivo su seriale i valori di tenzione rilevati
Serial.println(Lvl_luce);
//il livello di luminosità può andare da 0 che corrisponde al minimo livello di luce possibile a 1024 che è al massimo della luce
if (Lvl_luce < soglia) {
//se la tensione misurata è minore della soglia nel quale è buio la luce si accende
digitalWrite(led,HIGH);
}
else{
//in caso contrario la luce si spegne
digitalWrite(led,LOW);
}
//imposto un breve ritardo in modo da non avere troppi valori insieme sulla comunicazione seriale
delay(100);
}
Espansioni suggerite
[modifica]Per migliorare il progetto si potrebbe aggiungere un sensore a infrarossi in modo da accendere la luce solo se vi fosse presente una persona. Usando infatti un semplice END la luce per potersi accendere necessiterebbe di due condizioni verificate assieme(persona presente e buio). Inoltre si potrebbe cambiare la soglia sotto la quale la luce si accende a proprio piacimento.