bb9662ecd1b1eaa0a60348ee77bbf2c5b064681d
[sketchbook_andrea] / programming / loops / loop_1_array_loop / loop_1_array_loop.ino
1 /* Knight Rider 2
2  * --------------
3  * 
4  * Array e uso dei cicli iterativi.
5  *
6
7
8    Schema semplificato: 
9    - http://lab.piffa.net/schemi/8_led_single_res_bb.png
10    - http://lab.piffa.net/schemi/8_led_single_res_schem.png
11  */
12
13 int pinArray[8] = {2, 3, 4, 5, 6, 7, 8, 9};
14 int timer = 100;
15
16 void setup(){
17   // we make all the declarations at once
18   for (int count=0;count<9;count++) {
19     pinMode(pinArray[count], OUTPUT);
20   }
21 }
22
23 void loop() {
24   for (int count=0;count<8;count++) { // 8 e' un numero magico
25    digitalWrite(pinArray[count], HIGH);
26    delay(timer);
27    digitalWrite(pinArray[count], LOW);
28    delay(timer);
29   }
30
31 // Ciclo inverso: dall'alto in basso  
32   for (int count=8;count>=0;count--) {
33    digitalWrite(pinArray[count], HIGH);
34    delay(timer);
35    digitalWrite(pinArray[count], LOW);
36    delay(timer);
37   }
38 }
39
40 /* Domande:
41  
42  1. Come posso fare per saltare un elemento del loop? 
43  2. Come posso fare per uscire completamente dal loop? 
44  3. 8 e' un numero magico: come posso evitarlo?
45
46 .
47 .
48 .
49 .
50 .
51 .
52 .
53 .
54 .
55 .
56 .
57 .
58 .
59 .
60 .
61 .
62 .
63 .
64 .
65 .
66 .
67 Soluzioni: 
68  1. utilizzare continue
69  2. utilizzare break
70  3. Utilizzare un variabile sarebbe gia' un inizio, ancora meglio estrarre il
71     valore tramite la funzione sizeof().
72 Links: 
73 - http://www.tutorialspoint.com/cprogramming/c_continue_statement.htm
74 - https://www.arduino.cc/en/Reference/Sizeof
75 */
76
77