I/O digitale
ESERCIZIO 1
Collegare ad Arduino tre led colorati e realizzare un semaforo con le seguenti tempistiche:
Rosso 5 secondi
Verde 5 secondi
Giallo 2 secondi
Si chiede di realizzare l'algoritmo in modalità non-blocking mode. In Matlab un intervallo di tempo può essere individuato tramite la coppia di funzioni "tic" e "toc". La funzione tic registra l'ora corrente e la funzione toc utilizza il valore registrato per calcolare il tempo trascorso. Per esempio
Il tempo trascorso può essere anche inserito in una variabile al fine di fare un confronto con un intervallo predefinito per vedere se questo è trascorso. Per esempio:
tic; pause(1); elapsedTime = toc; if (elapsedTime > 2){ disp('trascorso troppo tempo'); }
Se invece vi sono più timer è possibile utilizzare la scrittura
>> timerVal = tic
che memorizza l'ora corrente in timerVal in modo da poterla passare esplicitamente alla funzione toc. Il passaggio di questo valore è utile quando sono presenti più chiamate a tic per cronometrare parti diverse dello stesso codice. timerVal è un numero intero che ha significato solo per la funzione toc.
ESERCIZIO 2
Collegare un tasto e un led ad Arduino e comandarne l'accensione e lo spegnimento dal tasto
Alla prima pressione del tasto il led si accende, alla seconda pressione si spegne.
Se il led viene lasciato. acceso per più di 10 secondi, si spegne automaticamente.