Errore: considerare la “,” come separatore di istruzioni e non come separatore di valori. In C una scrittura del tipo: (a, b, c) è una sequenza di espressioni separate da virgola che valuta l’ultima espressione c, mentre {a; b; c;} è una sequenza di istruzioni che non valuta nulla.
La virgola si inserisce solamente tra due espressioni a differenza del punto e virgola che si inserisce alla fine di un’istruzione (ma non di un’istruzione di blocco come: if, for, while, do while).
Esempio non corretto
digitalWrite ((5, 6, 7), HIGH);
Esempio corretto
digitalWrite (5, HIGH); digitalWrite (6, HIGH); digitalWrite (7, HIGH);
O ancora meglio usando un ciclo for:
for (byte i = 5; i<= 7; i++) digitalWrite(i, HIGH);
Domanda che in genere faccio ai ragazzi:
“perché ho dichiarato i come byte e non come int?”
La risposta la trovate in: Appunti di programmazione su Arduino: tipi di dati in cui viene evidenziato che la dimensione del tipo byte è di 8 bit (1 byte) e rappresenta interi (senza decimali) ed hanno un range da 0 a 255, mentre gli int sono dei tipi di dato usati per memorizzare numeri senza decimali e memorizzano valori a 16 bit (2 byte) nel range da 32.767 a -32.768, quindi usando il tipo byte occupiamo meno spazio in memoria.
Buon Coding a tutti 🙂