Questa lezione ha lo scopo di realizzare un sistema che rilevi il cambiamento di stato e per far ciò costruiremo un rudimentale pulsante con due fili alle cui estremità vi sono delle pinzette a coccodrillo, quando i due fili saranno collegati, vorrà dire che il pulsante è chiuso, quando i due fili saranno scollegati il pulsante sarà aperto.
Per questo esperimento utilizzeremo due connettori alle cui estremità sono collegati dei morsetti a coccodrillo, prima di procedere vi consiglio di ritagliare una cartoncino di forma circolare con stesse dimensioni di LilyPad, ciò eviterà che le pinzette scivolino e che grattino la base inferiore isolata della scheda.
Passo 1
avrete bisogno di:
- un cartoncino
- una matita
- un paio di forbici
tracciate una circonferenza prendendo come riferimento LilyPad
Passo 2
ritagliate lungo il bordo, fate in modo che la circonferenza tagliata sia leggermente più grande.
Passo 3
In questo modo il morsetto a coccodrillo dovrebbe avere una presa sicura senza il pericolo di scivolare e buon contatto elettrico.
Procedete allo stesso modo per i sensori e gli attuatori che collegherete a LilyPad mediante le pinzette a coccodrillo, anche per essi ritagliate dei cartoncini anti scivolamento.
Programmazione
Passo 1
Collegate un coccodrillo nero al morsetto negativo (indicato con -) ed il coccodrillo bianco al morsetto digitale 2, come indicato nell’immagine:
Quando collegate i due coccodrilli insieme vorrà dire che chiudete il circuito (interruttore chiuso) ed elettricamente vuol dire che collegate il pin digitale 2 direttamente a terra o “-“.
Vi ricordo che in Arduino “-” vuol dire “terra” e in Processing viene rappresentato con “LOW”, mentre “+” o “+5V” e in Processing viene indicato con “HIGH”.
Passo 2
copiate il codice che segue in una finestra vuota:
int ledPin = 13; // il LED e' connesso al pin digitale 13 int switchPin = 2; // switch e' connesso al pin digitale 2 int switchValue; // una variabile che tiene traccia quando il pulsante viene premuto void setup() { pinMode(ledPin, OUTPUT); // ledPin viene definito come pin di output pinMode(switchPin, INPUT); // switchPin viene definito come pin di input digitalWrite(switchPin, HIGH); // poniamo di default switchPin ad HIGH (non premuto) } void loop() // loop del programma { switchValue = digitalRead(switchPin); // verifica se il pulsante e' premuto if (switchValue == LOW) { // se il pulsante e' premuto allora, digitalWrite(ledPin, HIGH); // accende il LED } else { // altrimenti, digitalWrite(ledPin, LOW); // il led viene spento } }
All’interno del loop:
viene memorizzato lo stato del pulsante in switchValue con
switchValue = digitalRead(switchPin);
Se il pulsante non è premuto switchValue assumerà il valore assegnato nel setup():
digitalWrite(switchPin, HIGH);
Poiché il circuito non è chiuso verso terra il LED rimarrà spento.
La condizione dell’IF:
..(switchValue == LOW)..
non risulta vera e quindi sarà eseguita la parte else dell’IF
digitalWrite(ledPin, LOW);
cioè il LED risulterà spento.
Se colleghiamo i coccodrilli, switchValue assumerà il valore “LOW” in quanto collegato direttamente alla terra (morsetto nero) e la condizione dell’IF
if (switchValue == LOW)
risulterà verà e quindi sarà eseguita la parte del codice:
digitalWrite(ledPin, HIGH);
e quindi il LED verrà acceso.
Bene! avete realizzato il vostro secondo scketch per LilyPad.
Nelle successive lezioni vedremo come collegare altri sensori ed attuatori a LilyPad.
Grazie mille dei tutorial che pubblica e per favore non smetta mai di scriverli.
Invidio i suoi studenti…
Grazie Fabio, sei molto gentile.
Un caro saluto.
salve, e se volessi con un pulsante dare lo start o stop allo sketch che fa funzionare un led rgb? come dovrei fare?
Ho guardato in giro ma non riesco a capire bene, mi sto dilettando da poco con arduino.
Grazie mille e complimenti per l’ottimo sito da cui ho preso già spunto per altri lavori.