home - tutorial - TUTORIAL - LA FOTORESISTENZA ED IL LED RGB CON ARDUINO

TUTORIAL - LA FOTORESISTENZA ED IL LED RGB CON ARDUINO

In questo tutorial vedremo come realizzare un semplice prototipo di un sistema domotico con Arduino! Utilizzeremo una fotoresistenza, necessaria per acquisire informazioni sulla luce ambientale, ed un led RGB, che rappresenterà l'output del nostro sistema...

  by Weturtle Team
Arduino

Introduzione

In questo tutorial vedremo come realizzare un semplice prototipo di un sistema domotico con Arduino per il controllo della luce ambientale! Utilizzeremo una fotoresistenza, necessaria per acquisire informazioni sulla luce ambientale, ed un led RGB, che rappresenterà l'output del nostro sistema cambiando luce a seconda dei valori rilevati dalla fotoresistenza.

Strumenti

  • 1 breadboard
  • 2 resistenze da 100 Ohm
  • 1 resistenza da 220 Ohm
  • 1 resistenza da 100 kOhm
  • 1 led RGB
  • 1 fotoresistenza
  • Fili di collegamento per breadboard
  • 1 scheda Arduino UNO

Fotoresistenza

Le fotoresistenze sono particolari resistenze, i cui valori sono inversamente proporzionali alla quantità di luce da cui vengono colpiti. In questo tutorial il nostro obiettivo è quello di utilizzarle per analizzare la quantità di luce ambientale per distinguere il giorno dalla notte. Come quasi ogni tipo di resistenza possiedono due pin intercambiabili, non fa dunque differenza il verso in cui vengono utilizzati all’interno del circuito.

Led RGB

I led RGB sono una particolare tipologia di led, formati da tre sorgenti luminose (Red, Green, Blue) grazie alle quali, essendo i colori primari della luce, è possibile generare più di 16 milioni di combinazioni di colori. La maggior parte dei led RGB (come quello utilizzato in questo tutorial) possiedono 4 pin di collegamento, tre per controllare ciascuno dei colori, e uno che va collegando al polo negativo, nel nostro caso, la porta GND di Arduino. In questo tutorial verrà utilizzato per produrre due differenti colorazioni in base alla quantità di luce rilevata dalla fotoresistenza.

Circuito

Per la realizzazione del circuito è sufficiente seguire lo schema proposto, facendo cura di inserire la resistenza da 100 kOhm in serie con la fotoresistenza, quella da 220 Ohm prima del pin RED del led RGB, e quelle da 100 Ohm prima dei pin GREEN e BLUE.

Codice

Una volta assemblato il circuito, si potrà iniziare la scrittura del codice che controllerà la scheda. La parte più sensibile di questo processo sarà la taratura della fotoresistenza, la quale, ci ritornerà dei valori numerici corrispondenti al livello di luminosità registrato, starà quindi a noi, analizzando questi valori al variare della luminosità, stabile la soglia che determinerà la differenza tra luce e buio.

Il codice inizia con la dichiarazione dei pin della scheda ai quali è collegato ciascun colore del led RGB (Red, Green, Blue).

const int Red = 3;
const int Green = 4;
const int Blue = 5;

Successivamente all’interno della funzione setup() dichiararemo che i 3 pin a cui è connesso il led funzioneranno come output, mentre quello della fotoresistenza con input.

void setup() {
pinMode(Red,OUTPUT);
pinMode(Green,OUTPUT);
pinMode(Blue,OUTPUT);
pinMode(A1,INPUT);

Serial.begin(9600);
}

La funzione Serial.begin(9600) serve per inizializzare il monitor seriale, lo strumento, ovvero, attraverso il quale leggeremo i valori della fotoresistenza per poter effettuare la taratura.
Una volta chiuso il setup() inizia la funziona loop(), quella ovvero, che si ripeterà ciclicamente fino allo spegnimento della scheda. Creiamo una variabile light, all’interno della quale salvare il valore registrato dalla fotoresistenza, tramite la funzione analogRead().
Ora tramite la struttura di controllo condizionale if() else(), decidiamo il valore della soglia che deciderà il comportamento del led (nel nostro esempio troverai 8).

void loop() {
int light;
light = analogRead(A1)/100;
if (light>8) {
colora(200,150,150);
}else{
colora(255,0,0);
}

Serial.println(light);
delay(100);
}

Per semplificare la colorazione del led, a fine codice è stata inserita una funzione colora(), a cui potremo direttamente passare i valori RGB di cui abbiamo bisogno (quindi 3 numeri da 0 a 255) .

void colora(int R, int G, int B){
analogWrite(Red, R);
analogWrite(Green, G);
analogWrite(Blue, B);
}

Le funzioni Serial.println() e delay() serviranno rispettivamente per far apparire nel monitor seriale il valore rilevato dalla fotoresistenza, e per inserire un ritardo tra una misura e l’altra, in questo caso 100ms. Di seguito il codice completo!

Ti è piaciuto il tutorial?

Se vuoi maggiori informazioni o una consulenza o se vuoi far parte della famiglia We Turtle scrivi all'indirizzo email: info@weturtle.org
Per restare sempre aggiornato iscriviti alla piattaforma e segui We Turtle e Talent su Facebook.

Vuoi leggere il tutorial quando vuoi, anche offline?





Hai letto la lezione? Che cosa ne pensi? Lascia un commento qui sotto!

Clara Lucano

Lezione molto chiara complimenti. Spero di usarla con i miei studenti. Se proprio dovessi aggiungere qualcosa, metterei qualche informazione in più sul collaudo, qualche foto o video che mostrino il circuito in funzione. Ps non sono riuscita a scaricare il pdf che invece sarebbe molto utile, anche da fornire agli studenti ( se è possibile senza violare le leggi di copyright ).

Francesco Caruso