if, else, else if
Prendere Decisioni
Section titled “Prendere Decisioni”Fino ad ora il codice che abbiamo visto è sequenziale: Arduino esegue le istruzioni una dopo l’altra, sempre, senza eccezioni. Ma un programma utile deve saper reagire a situazioni diverse in modo diverso.
Un termostato deve accendere il riscaldamento se fa freddo e spegnerlo se fa caldo. Un allarme deve suonare se rileva movimento e stare silenzioso altrimenti. Per fare questo esiste il costrutto if.
if significa letteralmente “se”. Permette di eseguire un blocco di codice solo se una certa condizione è vera.
Se temperatura è 30, la condizione 30 > 25 è vera (true) e il messaggio viene stampato. Se temperatura fosse 20, la condizione 20 > 25 sarebbe falsa (false) e il blocco verrebbe completamente saltato.
Gli Operatori di Confronto
Section titled “Gli Operatori di Confronto”All’interno della condizione si usano questi operatori per confrontare valori:
| Operatore | Significato | Esempio |
|---|---|---|
== | Uguale a | stato == HIGH |
!= | Diverso da | stato != LOW |
> | Maggiore di | temp > 30 |
< | Minore di | temp < 0 |
>= | Maggiore o uguale a | livello >= 100 |
<= | Minore o uguale a | livello <= 0 |
else: altrimenti
Section titled “else: altrimenti”else si aggiunge dopo un if e contiene il codice da eseguire quando la condizione è falsa. È il ramo “altrimenti”.
Non vengono mai eseguiti entrambi i blocchi. È come un bivio: si prende sempre una strada, mai tutte e due insieme.
else if: altrimenti se
Section titled “else if: altrimenti se”Quando le situazioni possibili sono più di due, si usa else if per aggiungere condizioni intermedie.
Arduino valuta le condizioni dall’alto verso il basso e si ferma alla prima che risulta vera. Il blocco else finale è opzionale e cattura tutti i casi non coperti dalle condizioni precedenti.
Esempio Pratico: Controllo di un LED con un Pulsante
Section titled “Esempio Pratico: Controllo di un LED con un Pulsante”if Annidati
Section titled “if Annidati”Un if può stare dentro un altro if. Si parla di if annidati. Tornando alla metafora dei blocchi padre e figlio: il blocco del secondo if è figlio del primo.