]> git.piffa.net Git - sketchbook_andrea/blobdiff - programming/structured_data_types/array_loop/array_loop.ino
Loop e data type strutturati
[sketchbook_andrea] / programming / structured_data_types / array_loop / array_loop.ino
diff --git a/programming/structured_data_types/array_loop/array_loop.ino b/programming/structured_data_types/array_loop/array_loop.ino
new file mode 100644 (file)
index 0000000..0026508
--- /dev/null
@@ -0,0 +1,77 @@
+/* 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
+ 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
+*/
+
+