.. meta:: :language: it :description language=it: Embedded Systems Architecture: Esercitazione Timer e serial monitor :description language=en: Embedded Systems Architecture: Practice Timer and serial monitor :keywords: Embedded Systems Architecture, Practice Timer and serial monitor :author: Luciano De Falco Alfano Sheet arduino n.1.1 (timer e serial monitor) =============================================== .. contents:: :local: [*Lezione del 05 nov 2019*] Scrivere su linea seriale ------------------------------------- La `scheda della esercitazione n.1.1 `_ ci richiede di scrivere sul monitor seriale dell'IDE di ARDUINO il tempo di reazione all'accensione di un segnale randomico. Il seguente video mostra lo schema montato e l'esecuzione dello sketch. .. raw:: html Il dettaglio dello sketch è il seguente: .. literalinclude:: ./exercises/sketch_20191111.ino :language: c :linenos: Qui la novità è l'inizializzazione della seriale alla linea n.11 del codice, e la relativa scrittura del tempo misurato, che eseguiamo alla linea n.27 dello sketch. La logica nel ``void loop()`` è lineare: * si attende randomicamente da un minimo di 5 ad un massimo di 10 secondi (linea 19); * quindi si accende il led (linea 20); * e si contano i millisecondi durante i quali il button è aperto; questo avviene con un ciclo ``while`` (linee da 22 a 25) che usa la variabile ``a`` come accumulatore di millisecondi; il ciclo dura finché la lettura di ``BUTTON`` è ``LOW`` (circuito aperto); * quando si esce dal ciclo, l'utente ha spinto il pulsante mandando in ``HIGH`` la lettura del pin ``BUTTON``; in tal caso si spegne il led (linea 26) e si scrive sulla seriale il valore in accumulatore (che può andare in overflow se si attende troppo :-) Dopo di che il tutto ricomincia (c'è un motivo se ``void loop()`` si chiama in tal modo).