Il primo esperimento da realizzare con Arduino è sempre il led lampeggiante: si tratta di collegare un led alla scheda e di programmarla in modo che il led si accenda e spenga ogni secondo. L’esperimento è noto anche col nome “Blinking led” e si trova sul sito ufficiale a questo indirizzo. Un led è una piccola lampadina che funziona con poca potenza: in genere i led con colore più chiaro consumano un po’ di potenza in più di quelli con colore scuro. La differenza fondamentale con una lampadina è che in un led il polo positivo e quello negativo non possono essere scambiati, altrimenti non si illumina. Il polo positivo è facile da riconoscere: è il piedino più lungo del led. I led sono dei diodi particolari che emettono luce ed hanno la propria tensione di funzionamento, che di solito è circa 1,5/2 Volt, a seconda del colore.
Occorrente: il computer, il progammino IDE di Arduino, la scheda Arduino, la bread board, un led, due cavetti.
Costruiamo il circuito.
Disponiamo l’occorrente sulla scrivania, e cominciamo a collegare la scheda con la tavoletta forata (breadboard). Utilizziamo il pin 13 (che trasmette un segnale digitale) ed il pin GND (ground) che è il pin di massa sulla scheda Arduino. Per prima cosa individuateli sulla scheda, aiutandovi con questa figura:
La resistenza in serie al led.
Il led non va collegato direttamente alla scheda ma c’è bisogno di una resistenza messa in serie. Infatti, siccome i pin di uscita del microcontrollore arrivano a 5 volt, mentre il led ne necessita di meno di 2V, è necessario inserire in serie al led una resistenza per evitare di far scorrere eccessiva corrente nel circuitino e quindi rischiare di danneggiare sia il led che il microcontrollore.
Alcune versioni di Arduino posseggono un pin (il n.13) con in serie già una resistenza da 1kOhm, abbastanza alta da proteggere la scheda, ma non tutte le schede sono protette e comunque non lo sono tutti i pin. In genere, tuttavia, anche i led sono abbastanza robusti da sopportare una corrente eccessiva.
In definitiva, se si vuole collegare un led esterno, occorre inserire anche una resistenza in serie da 200 -1000 ohm, su qualsiasi pin di uscita si decida di usarlo. A questo link, potete leggere delle osservazioni sul calcolo della resistenza.
Prendete allora la scheda Arduino, il led, la resistenza da 1KOm e 2 fili e collegateli come in figura.
Ora collegate la scheda alla porta usb e scrivete il seguente codice nel IDE di Arduino: nel ciclo di setup () dobbiamo abilitare il pin 13 come pin di output e, per far ciò ci vuole il comando pinMode(a,b) che ha 2 parametri, il primo indica il numero del pin, il secondo la modalità “OUTPUT” o “INPUT” a seconda degli usi. Nel nostro caso bisogna far uscire una corrente da Arduino (Output), quindi l’istruzione da usare è pinMode(13, OUTPUT);
void setup() {
pinMode(13, OUTPUT);
}
Di seguito ci vule il ciclo di loop, che è il ciclo che il controllore esegue continuamente. Bisogna, ciclicamente, accendere il led, cioè mandare una corrente sul pin 13 digitalWrite(13, HIGH), poi aspetare 1000 millisecondi delay(1000), poi spegnere il led, cioè abbassare la corrente sul pin 13 digitalWrite(13, LOW), infine aspettare altri 1000 millisecondi delay(1000).
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Se vi registrate sul sito ThinkerCad potete realizzare in modo virtuale il circuito e simulare il funzionamento con il codice. Nella figura sotto si è usata la programmazione a blocchi, più intuitiva. Il codice di prima si scrive solo con i blocchi seguenti:
ed il risultato è quello in figura.
Esercizi da svolgere.
Esercizio 1. Simulate un segnalatore di porta in fase di chiusura: variate il tempo di accensione ed impostatelo a 250 millisecondi mentre il tempo di led spento 2 secondi.
Esercizio 2. Accelerate la frequenza di lampeggio: quando la durata del fenomeno è T= 1sec + 1 sec = 2 secondi allora vuol dire che la frequenza è f=1/T = 0,5 Herz. Aumentate la frequenza di 10 volte a 5 Hz e poi 50Hz.
Esercizio 3. Calcolare il valore corretto della resistenza da porre in serie nel caso di un LED di colore: giallo e verde e provate il circuito.
Esercizio 4. Provate a mettere altre resistenze in serie alla prima: cosa accade?.
Il Semaforo.
Adesso realizziamo un semaforo: un led verde deve restare acceso per 4 secondi, poi si aggiunge quello giallo per 1 secondo, poi si spengono entrambi e si accende quello rosso per 4 secondi. Infine tutti restano spenti per altri 4 secondi.
void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(4000); digitalWrite(12, HIGH); delay(1000); digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, HIGH); delay(4000); digitalWrite(11, LOW); delay(4000); }
N.B: I resistori usati sono da 200 Ohm.