Arduino LilyPad – lezione 05: sensore di luce

In questa lezione vi mostrerò come utilizzare il sensore luminoso: LilyPad Light Sensor acquistato presso SparkFun.

Passo 1

Come per le lezioni precedenti utilizziamo un cartocino di forma circolare per proteggere il circuito e per aumentare la presa dei morsetti a coccodrillo.

Passo 2

Collegate come rappresentato nell’immagine il + del sensore luminoso a al + di LilyPad, il – del sensore luminoso al – di LilyPad e il piedino S del sensore al piedino A0 di LilyPad:

Passo 3

Avviate l’IDE Arduino

Passo 4

Copiate il codice allegato all’interno di una nuova finestra dell’IDE.

/* Arduino LilyPad: lezione 05: sensore di luce
 * Uso del modulo LilyPad Light Sensor
 * Michele Maffucci
 * https://www.maffucci.it/
 * Progetto originale:
 * http://web.media.mit.edu/~leah/LilyPad/08_sensors.html
 */

int ledPin = 13;	// il LED e' collegato al pin digitale 13
int sensorPin = 0;	// il sensore di luce e connesso al piedino analogico 0
int sensorValue;	// variabile per memorizzare il valore rilevato dal sensore

void setup()
{
         pinMode(ledPin, OUTPUT);	// imposta ledPin come pin di output
         Serial.begin(9600);	//inizializza la porta seriale
         digitalWrite(ledPin, HIGH);	// accende il LED
}	 

void loop()
{
          sensorValue = analogRead(sensorPin);	// legge il valore dal sensore
          Serial.println(sensorValue);	// invia il valore al computer
          delay(100);	// ritardo di 1/10 di secondo
}

Passo 5

Chiarimenti sul codice.

Vi ricordo che con l’istruzione:

Serial.begin(9600);

apriamo la porta seriale USB e la inizializziamo a 9600 bps.

Per una spiegazione esaustiva dell’utilizzo del “Serial monitor” vi invito alla lettura della lezione: Arduino – lezione 04: realizzare un programma che identifica le variazioni di stato

Sempre nella lezione sopra indicata potete trovare dettagli sull’uso di:

Serial.println(sensorValue);

stampa sulla console di uscita il testo o il valore specificato tra parentesi:

Serial.print(78) stampa “78″
Serial.print(1.23456) stampa “1.23″
Serial.print(byte(78)) stampa “N” (il cui valore ASCII e’ 78)
Serial.print(‘N’) stampa “N”
Serial.print(“Hello world.”) stampa “Hello world.”

nel nostro caso “Serial.print(sensorValue);” stamperà sulla console di uscita il valore memorizzato nella variabile “sensorValue“.

Ricordo inoltre, come spiegato nella lezione: Arduino – lezione 02: facciamo lampeggiare un led

delay() è un’istruzione molto semplice che non fa altro che interrompere per un determinato tempo l’esecuzione del programma.
L’istruzione ha un solo argomento numerico che indica il numero di millisecondi di attesa.

Quindi “delay(100)” vuol dire 100 millisecondi,
cioè 100/1000 secondi
ovvero 1/10 di secondo.

Passo 6

Compilate il codice ed effettuate l’upload su LilyPad, aprite la console di uscita:

Non appena il LED si accende su LilyPad, si vedranno i valori del sensore comparire nella console di uscita e l’intervallo di valori oscillerà tra 0 (buio assoluto) a 1024 (luce piena):

4 pensieri su “Arduino LilyPad – lezione 05: sensore di luce

    1. admin Autore articolo

      Ciao Alessandro.

      Scusa per il ritardo nella risposta,
      periodo intenso di lavoro e solo adesso sto riprendendo in mano i corsi e le lezioni sul mio blog.

      Si è possibile collegare LilyPad al web, credo che tu possa riuscirci con la seguente scheda: WiFly GSX 802.11b/g Serial Module – Roving Networks

      WiFly GSX 802.11b/g Serial Module - Roving Networks

      Poiché l’argomento mi interessa parecchio ne farò anche io una ricerca, se ho novità ti informo.

      Saluti.

      Rispondi
        1. admin Autore articolo

          Ciao Alessandro.

          Si sto concludendo due lezioni, in cui spiego come collegare altri sensori a LilyPad, spero di poter terminare in questi giorni di calma lavorativa.

          Un caro saluto.

          Rispondi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.