/* Knight Rider 2 * -------------- * * Array e uso dei cicli iterativi. * Schema semplificato: - http://lab.piffa.net/schemi/8_led_single_res_bb.png - http://lab.piffa.net/schemi/8_led_single_res_schem.png */ int pinArray[8] = {2, 3, 4, 5, 6, 7, 8, 9}; int timer = 100; void setup() { // we make all the declarations at once for (int count = 0; count < 9; count++) { pinMode(pinArray[count], OUTPUT); } } void loop() { for (int count = 0; count < 8; count++) { // 8 e' un numero magico digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(timer); } // Ciclo inverso: dall'alto in basso for (int count = 8; count >= 0; count--) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(timer); } } /* Domande: 1. Come posso fare per saltare un elemento del loop? 2. Come posso fare per uscire completamente dal loop? 3. 8 e' un numero magico: come posso evitarlo? . . . . . . . . . . . . . . . . . . . . . Soluzioni: 1. Utilizzare continue con un ciclo if, oppure eliminare un elemento dall'Array. 2. Utilizzare break 3. Utilizzare un variabile sarebbe gia' un inizio, ancora meglio estrarre il valore tramite la funzione sizeof(). Links: - http://www.tutorialspoint.com/cprogramming/c_continue_statement.htm - https://www.arduino.cc/en/Reference/Sizeof */