GUIDA 8: Arduino, Sensore di luminosità

Vediamo come fare accendere un LED in base alla luminosità dell’ambiente. Per “leggere” la luminosità usiamo una fotoresistenza. Una fotoresistenza è un conduttore la cui resistenza è inversamente proporzionale alla quantità di luce che lo colpisce. I collegamenti non sono complessi: collega a un pin digitale il LED, come visto nelle precedenti guide; colleghiamo poi la fotoresistenza: un piedino andrà collegato al positivo, mentre l’altro si collegherà a una resistenza da 10k e a un pin analogico di Arduino. La resistenza da 10k è infine collegata a massa. Questa resistenza serve nel caso in cui la resistività della fotoresistenza sia (quasi) nulla e quindi per evitare un cortocircuito tra +5v e massa, con conseguente danneggiamento della scheda.

temperatura

Arduino riceverà una tensione che varia da 0 a 5v sul pin A0. Questa tensione, grazie alla funzione “analogRead()“, che sarà immessa nel codice, viene convertita in un numero, che varia da 0 a 1023. Arduino possiede infatti un convertitore analogico-digitale a 10 bit, e 1023 è il numero massimo che possiamo rappresentare con questa quantità di bit. Questo accade per tutti i segnali immessi in in pin analogico. Nella guida 4 avevo spiegato come ciò avvenisse con un potenziometro.

Ecco quindi lo sketch:

int luminosita=0;
int pinLed=2;
int pinSensore=0;

void setup(){
pinMode(pinLed, OUTPUT);
pinMode(pinSensore,INPUT);
}

void loop(){
luminosita=analogRead (0);
if (sensore<500){
digitalWrite(pinLed, HIGH);
}
else{
digitalWrite(pinLed, LOW);
}
}

all’inizio definisci due costanti: quella per il LED  e quella per il pin  a cui è collegato il sensore. Dichiara poi una terza variabile che assumerà il valore, che varia da 0 a 1023, e che rappresenta la luminosità. Nel setup inizializza il pin analogico come pin di INPUT e il pin del LED come pin di OUTPUT.

Nel loop, come accennato precedentemente, fai assumere alla variabile il valore letto sul pin analogico. Con la funzione “if comunichi ad Arduino che se la variabile contiene un valore minore di 500, il led si accende, in quanto la luminosità è bassa; altrimenti (else) si spegne.

Non mi sono soffermato molto sulla spiegazione della sintassi delle funzioni usate nel codice, in quanto la ho già spiegata nelle precedenti (7^ e 6^) guide.

Nelle prossime guide useremo questo sensore per creare qualcosa di più complesso, come una scala di led che indica la luminosità dell’ambiente.

2 Risposte a “GUIDA 8: Arduino, Sensore di luminosità”

  1. ciao, nel caso io volessi collegare più led ad una sola fotoresistenza, in modo da accendere più led quando la luce cambia, lo sketch cambierebbe o rimarrebbe intatto?

    1. Lo sketch rimarrebbe lo stesso, dovresti solo collegare in parallelo altri LED. Attenzione però a non superare la corrente massima che Arduino eroga per ogni pin digitale: 40ma.

I commenti sono chiusi.