esempio numero 07 – leggere un sensore di luce ed accendere un led quando si trova la luce

by / lunedì, 17 Agosto 2015 / Published in Esempi di Robotica, Francesco, Il blog


ESEMPIO 07 – LEGGERE UN SENSORE DI LUCE e SEGNALARE QUANDO LA

LUCE E’ TROVATA

 

Verrà letto il valore di un sensore di luce, esterno alla scheda Arduino, e verrà stampato il valore letto sul monitor. In più si deve accendere un Led quando viene trovata la luce.

Per realizzare questo esempio troviamo due difficoltà rispetto all’esempio precedente (il numero 6):

  1. – spesso non si conosce a priori se il valore acquisito aumenterà o diminuirà alla variazione della luce.

  2. – bisogna tarare in modo opportuno il valore della SOGLIA per la luce.

Il modo più comodo per risolvere il problema è quello pratico. Una volta che abbiamo finito l’esempio lo mandiamo in esecuzione e vediamo i valori acquisiti sul monitor. In questo caso, nelle condizioni di luce del test, avremo che con poca luce i valori sono intorno a 650 mentre con tanta luce avremo dei valori intorno a 300. l’ipotesi di partenza che la luce è trovata quando la luce letta è minore della soglia E’ CORRETTA e NON NECESSITA di aggiustamenti.

Successivamente poniamo l’illuminatore alla distanza voluta e leggiamo il valore sul monitor. Nelle stesse condizioni precedenti leggeremo il valore che oscilla intorno a 360. l’ipotesi di partenza che la luce è trovata quando la luce letta è uguale a 500 (valore mediano della scala) NON E’ CORRETTA e NECESSITA di essere aggiustata. La fissiamo al valore di 360 e ricarichiamo il programma sulla board Arduino (ovviamente il programma in modo automatico e ricompilato prima di essere caricato).

Per questo esempio è richiesto oltre alla board Arduino UNO un circuito con un sensore sensibile alla luce, un cavetto USB e un PC con istallato il programma Arduino.

Il programma:

/**************************************************************

* LEGGERE 1 SENSORI DI LUCE

*

* SCRIVERE IL VALORE DELLA LUCE SUL MONITOR

*

* ACCENDERE UN LED QUANDO SI TROVA LA LUCE

*

**************************************************************/

int val_luce;

int sensorPin = A4;

int led = 6;

int SOGLIA = 500;

void setup()

{

Serial.begin(9600);

pinMode (led,OUTPUT);

digitalWrite(led,LOW); // SPEGNI LED

delay(50);

}

void loop()

{

val_luce=analogRead(sensorPin); // leggere il sensore di luce

delay(5);

Serial.print(” Valore letto sensore di luce = “);

Serial.println(val_luce);

delay(300);

if (val_luce<=SOGLIA) // CERCO LA LUCE

{

digitalWrite(led,HIGH); // TROVATA LA LUCE

Serial.println(” TROVATA LUCE”);

delay(100);

}

else

{

digitalWrite(led,LOW); // NON TROVATA LA LUCE

Serial.println(” “);

delay(100);

}

}

con questo esempio il valore della luce sul sensore collegato al piedino analogico n° 4 viene letto e viene acceso il led quando si trova la luce sotto alla distanza minima fissata.

Dopo la corretta TARATURA, come descritta in precedenza, troviamo che se l’illuminatore è posto ad una distanza superiore a quella scelta il programma non trova la luce e di conseguenza non viene acceso il led (si vede in secondo piano il led verde quando viene acceso). Ricordiamo che il convertitore analogico digitale interno ad Arduino ci potrebbe fornire dei valori che possono in teoria andare da minimo di 0 ad un massimo di 1023.

(104)

Tagged under: ,
TOP