


1 - esempi --> Basic --> Blink

-- analizziamo la struttura del codice
-- quello che notiamo e' che nel loop si fa uso del delay, 
   quindi interrompiamo l'esecuzione del codice. Questo e' 
   un utilizzo da evitare per principio.


2 - BlinkAdvanced

-- in questo esempio vediamo come modificare il 
   codice affinche' non vi siano mai sospensioni 
   nell'esecuzione di quanto contenuto nel loop.


3 - BlinkAdvanced2

-- vediamo come personalizzare l'esempio usando un 
   pin digitale di nostra scelta.



4 - SerialSimple

-- partiamo da BlinkAdvanced2 e inseriamo una comunicazione seriale.
-- l'arduino invia un feedback via comunicazione seriale ogni volta 
   che si verifica il cambio di stato di pin.

5 - SerialAdvanced 

-- partiamo da SerialSimple e aggiungiamo alcune funzionalita'.
-- implementiamo una macchina a stati: con una variabile state decidiamo quale funzione svolgere 
   ripetutamente all'interno del loop
-- aggiungiamo una funziona che controlla se ci sono messaggi seriali in 
   ingresso all'arduino
-- interpretiamo il messaggio ed eseguiamo lo stato corrispondente.

6 - SerialAdvancedEEPROM

- Aggiungiamo a SerialAdvanced la funzionalita' di leggere da EEPROM lo sleepTime
  e la scrittura su EEPROM quando eseguiamo la funzione set.



7 - SwitchINPUT


- partiamo da SerialSimple e vediamo come monitorare un input digitale per vedere quando cambia lo stato
  all'interno del loop.



8 - SwitchINTERRUPT

- https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/

- partiamo dall'esempio SwitchINPUT e vediamo come implementare il detect del cambio dello switch in 
parallelo al loop usando la funzione interrupt.


