]> git.piffa.net Git - sketchbook_andrea/commitdiff
Blinks reorder, all functions before loops
authorAndrea Manni <andrea@piffa.net>
Thu, 26 Nov 2015 15:09:43 +0000 (16:09 +0100)
committerAndrea Manni <andrea@piffa.net>
Thu, 26 Nov 2015 15:09:43 +0000 (16:09 +0100)
15 files changed:
basic/blinks/blink_0/blink_0.ino
basic/blinks/blink_1_variabili/blink_1_variabili.ino
basic/blinks/blink_2_funzioni/blink_2_funzioni.ino
basic/blinks/blink_3_2_ciclo_while_funzione_argomento/blink_3_2_ciclo_while_funzione_argomento.ino [deleted file]
basic/blinks/blink_3_ciclo_while/blink_3_ciclo_while.ino [deleted file]
basic/blinks/blink_3_funzioni_argomenti/blink_3_funzioni_argomenti.ino [new file with mode: 0644]
basic/blinks/blink_4_1_ciclo_for/blink_4_ciclo_for.ino [new file with mode: 0644]
basic/blinks/blink_4_ciclo_for/blink_4_ciclo_for.ino [deleted file]
basic/blinks/blink_4_ciclo_while/blink_4_ciclo_while.ino [new file with mode: 0644]
basic/blinks/blink_5_2_leds/blink_5_2_leds.ino [deleted file]
basic/blinks/blink_5_funzioni/blink_5_funzioni.ino [deleted file]
basic/blinks/blink_5_while_funzione_argomento/blink_5_while_funzione_argomento.ino [new file with mode: 0644]
basic/blinks/blink_6_doppio_leds/blink_6_doppio_leds.ino [new file with mode: 0644]
basic/blinks/blink_6_funzioni_argomenti/blink_6_funzioni_argomenti.ino [deleted file]
multitasking/millis/loop_array_millis/loop_array_millis.ino [new file with mode: 0644]

index 6c260711172498393829d88d85ba56d8055ac2a5..9253d5889a8fa00d404ed769ba918450f1e2a84f 100644 (file)
@@ -22,8 +22,7 @@ void setup() {
 }
 
 // ///////////////
-// loop
-// Le istruzioni vengono eseguite all'infinito
+// loop: Le istruzioni vengono eseguite all'infinito
 void loop() {
   digitalWrite(led, HIGH);  // Mette il PIN del LED in stato acceso
   delay(1000);              // Aspetta un secondo (mille millisecondi)
index 975d59a87768b3f5f62d2c2ca651b1ded510fe60..dc03e53ab67bb9fa73667e4d4c65c963bd47f9ef 100644 (file)
@@ -18,15 +18,14 @@ int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
 int lunga = 1000;
 
 // /////////////////
-// Setup: eseguita una volta sola
+// Setup: eseguita una volta sola all'accensione della scheda
 void setup() {                
   // initialize the digital pin as an output.
   pinMode(led, OUTPUT);     
 }
 
 // ///////////////
-// loop
-// the loop routine runs over and over again forever:
+// loop: Le istruzioni vengono eseguite all'infinito
 void loop() {
   digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
   delay(breve);               // wait for a second
index e1a6066275f1111c4be2e9b8f85ef95c1e7ad0b3..d01b759863f7e87361660e47d18f2815427afd55 100644 (file)
 // //////////////
 // Dichiarazione variabili
 
-// Pin 13 has an LED connected on most Arduino boards.
-// give it a name:
-int led = 13;
+int led = 13; // LED onboard sulla scheda
 int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
 int lunga = 1000;
 
 // /////////////////
-// Setup
+// Setup: eseguita una volta sola all'accensione della scheda
 void setup() {                
   // initialize the digital pin as an output.
   pinMode(led, OUTPUT);     
 }
 
 // ///////////////
-// loop
+// loop: Le istruzioni vengono eseguite all'infinito
 void loop() {
   rapido(); // accende e spegne rapidamente il LED
   rapido(); // accende e spegne rapidamente il LED
@@ -40,9 +38,9 @@ void rapido() {
   // Accende e spegne rapidamente il LED
 
   // sequenze di istruzione: accendere e spegnere il LED
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  digitalWrite(led, HIGH);    // turn the LED on (HIGH is the voltage level)
   delay(breve);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  digitalWrite(led, LOW);     // turn the LED off by making the voltage LOW
   delay(breve);               // wait for a second
 }
 
@@ -50,10 +48,16 @@ void lento() {
   // Accende e spegne lentamente il LED
 
   // sequenze di istruzione: accendere e spegnere il LED
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  digitalWrite(led, HIGH);    // turn the LED on (HIGH is the voltage level)
   delay(lunga);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  digitalWrite(led, LOW);     // turn the LED off by making the voltage LOW
   delay(lunga); 
 }
 
-
+/* Domande:
+ *  1. I valori delle variabili led, breve, lunga cambiano durante
+ *  l'esecuzione del programma? Sono variabili?
+ *  
+ *  2. Le dichiarazioni delle variabili breve e lunga possono essere
+ *  accorpate nelle rispettive funzioni?
+ */
diff --git a/basic/blinks/blink_3_2_ciclo_while_funzione_argomento/blink_3_2_ciclo_while_funzione_argomento.ino b/basic/blinks/blink_3_2_ciclo_while_funzione_argomento/blink_3_2_ciclo_while_funzione_argomento.ino
deleted file mode 100644 (file)
index 1f43d12..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-  Blink v3
- Accensione e spegnimanto di un LED utilizzando un ciclo
- iterativo while per comandare il lampeggio.
- Questa volta il ciclo while() e' relegato in una funzione
- che accetta come argomento il numero di ripetizionei da effettuare.
- This example code is in the public domain.
- */
-
-// Pin 13 has an LED connected on most Arduino boards.
-// give it a name:
-int led = 13;
-int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
-int lunga = 1000;
-
-// the setup routine runs once when you press reset:
-void setup() {                
-  // initialize the digital pin as an output.
-  pinMode(led, OUTPUT);     
-}
-
-// the loop routine runs over and over again forever:
-void loop() {
-  lampeggia(8);
-  lento();  // accende e spegne lentamente il LED
-  // Domanda: a quanto equivale iterator ora?
-}
-
-// Funzioni create dall'utente:
-
-void rapido() {
-  // Accende e spegne rapidamente il LED
-
-  // sequenze di istruzione: accendere e spegnere il LED
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(breve);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
-  delay(breve);               // wait for a second
-}
-
-void lento() {  
-  // Accende e spegne lentamente il LED
-
-  // sequenze di istruzione: accendere e spegnere il LED
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(lunga);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
-  delay(lunga); 
-}
-
-void lampeggia(int ripetizioni) {
-  // Accende un LED per un numero stabilito di volte
-
-  // Questa funziona accetta un parametro: ripetizioni
-  int i = 0;
-  while (i < ripetizioni) {
-    rapido();   // accende e spegne rapidamente il LED
-    i = i + 1 ; // incrementa l'iteratore
- // i++ ;       // equivalente
-  }
-}
-
-
-
-
-
diff --git a/basic/blinks/blink_3_ciclo_while/blink_3_ciclo_while.ino b/basic/blinks/blink_3_ciclo_while/blink_3_ciclo_while.ino
deleted file mode 100644 (file)
index ceb3cfe..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-  Blink v3
- Accensione e spegnimanto di un LED utilizzando un ciclo
- iterativo while per comandare il lampeggio.
- This example code is in the public domain.
- */
-
-// Pin 13 has an LED connected on most Arduino boards.
-// give it a name:
-int led = 13;
-int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
-int lunga = 1000;
-
-// the setup routine runs once when you press reset:
-void setup() {                
-  // initialize the digital pin as an output.
-  pinMode(led, OUTPUT);     
-}
-
-// the loop routine runs over and over again forever:
-void loop() {
-  int iterator = 0; // Defniamo un variabile per controllare un ciclo iterativo
-  while (iterator <10) {
-    rapido(); // accende e spegne rapidamente il LED
-    iterator = iterator + 1 ; // incrementa l'iteratore
-    // iterator++ ; // equivalente
-  }
-  lento();  // accende e spegne lentamente il LED
-}
-
-// Funzioni create dall'utente:
-
-void rapido() {
-  // Accende e spegne rapidamente il LED
-
-  // sequenze di istruzione: accendere e spegnere il LED
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(breve);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
-  delay(breve);               // wait for a second
-}
-
-void lento() {  
-  // Accende e spegne lentamente il LED
-
-  // sequenze di istruzione: accendere e spegnere il LED
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(lunga);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
-  delay(lunga); 
-}
-
-
-
-
diff --git a/basic/blinks/blink_3_funzioni_argomenti/blink_3_funzioni_argomenti.ino b/basic/blinks/blink_3_funzioni_argomenti/blink_3_funzioni_argomenti.ino
new file mode 100644 (file)
index 0000000..f4b603b
--- /dev/null
@@ -0,0 +1,61 @@
+
+// ////////////
+// Commento iniziale
+/*
+  Blink v2
+ Accensione e spegnimanto di un LED utilizzando funzioni
+ per comandare il lampeggio.
+ This example code is in the public domain.
+ */
+// //////////////
+// Dichiarazione variabili
+
+// Pin 13 has an LED connected on most Arduino boards.
+// give it a name:
+int led = 13;
+// Le variabili lunga e breve non sono piu' necessarie
+
+// /////////////////
+// Setup
+void setup() {                
+  // initialize the digital pin as an output.
+  pinMode(led, OUTPUT);     
+}
+
+// ///////////////
+// loop
+void loop() {
+  brilla(300);
+  brilla(300);
+  brilla(600);
+}
+
+// ///////////////
+// Funzioni create dall'utente:
+
+void brilla(int velocita) {
+  // Accende e spegne il LED accetando un argomento 
+  // per impostare la velocita'.
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(velocita);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(velocita);               // wait for a second
+}
+
+
+
+/* Domande:
+ *  1. Come si potrebbe fare per poter utilizzare la funzione brilla
+ *   con PIN diversi rispetto a LED?
+ *  
+ *  2. Le dichiarazioni delle variabili breve e lunga possono essere
+ *  accorpate nelle rispettive funzioni?
+ *  
+ *  Esercizi sucessivi sulle funzioni: blink_5 e 6
+ */
+ */
diff --git a/basic/blinks/blink_4_1_ciclo_for/blink_4_ciclo_for.ino b/basic/blinks/blink_4_1_ciclo_for/blink_4_ciclo_for.ino
new file mode 100644 (file)
index 0000000..2322b56
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+  Blink v4
+ Accensione e spegnimanto di un LED utilizzando un ciclo
+ iterativo for per comandare il lampeggio.
+ */
+
+// Pin 13 has an LED connected on most Arduino boards.
+// give it a name:
+int led = 13;
+int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
+int lunga = 1000;
+
+// Setup: eseguita una volta sola all'accensione della scheda
+void setup() {                
+  // initialize the digital pin as an output.
+  pinMode(led, OUTPUT);     
+}
+
+// loop: Le istruzioni vengono eseguite all'infinito
+void loop() {
+  for (int i = 0, i <10, i++) { 
+// (Definizione iteratore, condizione di verifica, gestione dell'iteratore)
+// Operatore ternario (3 elementi)
+      rapido(); // accende e spegne rapidamente il LED
+  }
+  
+  lento();  // accende e spegne lentamente il LED
+  // Domanda: dobbiamo preoccuparci dell'iteratore?
+}
+
+// Funzioni create dall'utente:
+
+void rapido() {
+  // Accende e spegne rapidamente il LED
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(breve);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(breve);               // wait for a second
+}
+
+void lento() {  
+  // Accende e spegne lentamente il LED
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(lunga);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(lunga); 
+}
+
+
diff --git a/basic/blinks/blink_4_ciclo_for/blink_4_ciclo_for.ino b/basic/blinks/blink_4_ciclo_for/blink_4_ciclo_for.ino
deleted file mode 100644 (file)
index 99a0419..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-  Blink v4
- Accensione e spegnimanto di un LED utilizzando un ciclo
- iterativo for per comandare il lampeggio.
- This example code is in the public domain.
- */
-
-// Pin 13 has an LED connected on most Arduino boards.
-// give it a name:
-int led = 13;
-int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
-int lunga = 1000;
-
-// the setup routine runs once when you press reset:
-void setup() {                
-  // initialize the digital pin as an output.
-  pinMode(led, OUTPUT);     
-}
-
-// the loop routine runs over and over again forever:
-void loop() {
-  for (int i = 0, i <10, i++) { 
-// (Definizione iteratore, condizione di verifica, gestione dell'iteratore)
-      rapido(); // accende e spegne rapidamente il LED
-  }
-  
-  lento();  // accende e spegne lentamente il LED
-  // Domanda: dobbiamo preoccuparci dell'iteratore?
-}
-
-// Funzioni create dall'utente:
-
-void rapido() {
-  // Accende e spegne rapidamente il LED
-
-  // sequenze di istruzione: accendere e spegnere il LED
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(breve);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
-  delay(breve);               // wait for a second
-}
-
-void lento() {  
-  // Accende e spegne lentamente il LED
-
-  // sequenze di istruzione: accendere e spegnere il LED
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(lunga);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
-  delay(lunga); 
-}
-
-
diff --git a/basic/blinks/blink_4_ciclo_while/blink_4_ciclo_while.ino b/basic/blinks/blink_4_ciclo_while/blink_4_ciclo_while.ino
new file mode 100644 (file)
index 0000000..d950a98
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+  Blink v3
+ Accensione e spegnimanto di un LED utilizzando un ciclo
+ iterativo while per comandare il lampeggio.
+ */
+
+int led   = 13;
+int breve = 200;  
+int lunga = 1000;
+
+
+// /////////////////
+// Setup: eseguita una volta sola all'accensione della scheda
+void setup() {                
+  // initialize the digital pin as an output.
+  pinMode(led, OUTPUT);     
+}
+
+// ///////////////
+// loop: Le istruzioni vengono eseguite all'infinito
+void loop() {
+  int iterator = 0; // Defniamo un variabile per controllare un ciclo iterativo
+  while (iterator < 10) {
+    rapido(); // accende e spegne rapidamente il LED
+    iterator = iterator + 1 ; // incrementa l'iteratore
+    // iterator++ ; // equivalente
+  }
+  lento();  // accende e spegne lentamente il LED
+}
+
+// Funzioni create dall'utente:
+void rapido() {
+  // Accende e spegne rapidamente il LED
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(breve);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(breve);               // wait for a second
+}
+
+void lento() {  
+  // Accende e spegne lentamente il LED
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(lunga);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(lunga); 
+}
+
+
+/* Domande
+ *  
+ *  1. Creare una funziona lampeggia() che accetti come parametro
+ *  il nuomero di ripetizioni da eseguire.
+ *  
+ */
+
+
+
diff --git a/basic/blinks/blink_5_2_leds/blink_5_2_leds.ino b/basic/blinks/blink_5_2_leds/blink_5_2_leds.ino
deleted file mode 100644 (file)
index 34b0c94..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-  Blink v5
- Accensione e spegnimanto di 2 LED.
- Nel circuito oltre al LED montato direttamente sul pin 13
- viene aggiunto un altro LED pilotato dal PIN 12.
- Ricordarsi di usare una resistenza da ~320ohms per il secondo LED.
- Resistenza = (Voltaggio_Arduino - Forward_voltage_LED) / (ampere utilizzati)
- R = (5v-1.8v) / 0.010a 
- R =320ohms
-
- Schema: http://lab.piffa.net/schemi/led_single_bb.png
- - http://lab.piffa.net/schemi/led_single_schem.png
-
-  This example code is in the public domain.
- */
-
-// Pin 13 has an LED connected on most Arduino boards.
-// give it a name:
-int led = 13;
-int red = 12; // Definiamo un altro led
-int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
-int lunga = 1000;
-
-// the setup routine runs once when you press reset:
-void setup() {                
-  // initialize the digital pin as an output.
-  pinMode(led, OUTPUT); // Abilitaiamo entrambi i LED     
-  pinMode(red, OUTPUT);
-}
-
-// the loop routine runs over and over again forever:
-void loop() {
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(breve);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
-  delay(breve);               // wait for a second
-
-  digitalWrite(red, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(lunga);               // wait for a second
-  digitalWrite(red, LOW);    // turn the LED off by making the voltage LOW
-  delay(lunga); 
-}
-
-
diff --git a/basic/blinks/blink_5_funzioni/blink_5_funzioni.ino b/basic/blinks/blink_5_funzioni/blink_5_funzioni.ino
deleted file mode 100644 (file)
index 1308bec..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Blink v6
- Due LEDs con funzioni.
- */
-
-// Pin 13 has an LED connected on most Arduino boards.
-// give it a name:
-int led = 13;
-int red = 12;
-int breve = 200;
-int lunga = 1000;
-
-// the setup routine runs once when you press reset:
-void setup() {                
-  // initialize the digital pin as an output.
-  pinMode(led, OUTPUT);     
-  pinMode(red, OUTPUT);
-}
-
-// the loop routine runs over and over again forever:
-void loop() {
-  lightRed();
-  lightGreen();
-}
-
-void lightRed() {
-  digitalWrite(red, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(lunga);               // wait for a second
-  digitalWrite(red, LOW);    // turn the LED off by making the voltage LOW
-  delay(lunga); 
-}
-
-void lightGreen() {
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(breve);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
-  delay(breve);               // wait for a second
-}
-
-
diff --git a/basic/blinks/blink_5_while_funzione_argomento/blink_5_while_funzione_argomento.ino b/basic/blinks/blink_5_while_funzione_argomento/blink_5_while_funzione_argomento.ino
new file mode 100644 (file)
index 0000000..1f43d12
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+  Blink v3
+ Accensione e spegnimanto di un LED utilizzando un ciclo
+ iterativo while per comandare il lampeggio.
+ Questa volta il ciclo while() e' relegato in una funzione
+ che accetta come argomento il numero di ripetizionei da effettuare.
+ This example code is in the public domain.
+ */
+
+// Pin 13 has an LED connected on most Arduino boards.
+// give it a name:
+int led = 13;
+int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
+int lunga = 1000;
+
+// the setup routine runs once when you press reset:
+void setup() {                
+  // initialize the digital pin as an output.
+  pinMode(led, OUTPUT);     
+}
+
+// the loop routine runs over and over again forever:
+void loop() {
+  lampeggia(8);
+  lento();  // accende e spegne lentamente il LED
+  // Domanda: a quanto equivale iterator ora?
+}
+
+// Funzioni create dall'utente:
+
+void rapido() {
+  // Accende e spegne rapidamente il LED
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(breve);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(breve);               // wait for a second
+}
+
+void lento() {  
+  // Accende e spegne lentamente il LED
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(lunga);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(lunga); 
+}
+
+void lampeggia(int ripetizioni) {
+  // Accende un LED per un numero stabilito di volte
+
+  // Questa funziona accetta un parametro: ripetizioni
+  int i = 0;
+  while (i < ripetizioni) {
+    rapido();   // accende e spegne rapidamente il LED
+    i = i + 1 ; // incrementa l'iteratore
+ // i++ ;       // equivalente
+  }
+}
+
+
+
+
+
diff --git a/basic/blinks/blink_6_doppio_leds/blink_6_doppio_leds.ino b/basic/blinks/blink_6_doppio_leds/blink_6_doppio_leds.ino
new file mode 100644 (file)
index 0000000..60615a4
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+  Blink v5
+ Accensione e spegnimanto di 2 LED.
+ Nel circuito oltre al LED montato direttamente sul pin 13
+ viene aggiunto un altro LED pilotato dal PIN 12.
+ Ricordarsi di usare una resistenza da ~320ohms per il secondo LED.
+ Resistenza = (Voltaggio_Arduino - Forward_voltage_LED) / (ampere utilizzati)
+ R = (5v-1.8v) / 0.010a 
+ R =320ohms
+
+ Schema: http://lab.piffa.net/schemi/led_single_bb.png
+ - http://lab.piffa.net/schemi/led_single_schem.png
+
+  This example code is in the public domain.
+ */
+
+
+int led = 13;     // Il LED onboard corrisponde al PIN 13
+                  // Ha una resistenza premontata
+int red = 12;     // Definiamo un altro led
+int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
+int lunga = 1000;
+
+// /////////////////
+// Setup: eseguita una volta sola all'accensione della scheda
+void setup() {                
+  // initialize the digital pin as an output.
+  pinMode(led, OUTPUT); // Abilitaiamo entrambi i LED     
+  pinMode(red, OUTPUT);
+}
+
+// ///////////////
+// loop: Le istruzioni vengono eseguite all'infinito
+void loop() {
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(breve);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(breve);               // wait for a second
+
+  digitalWrite(red, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(lunga);               // wait for a second
+  digitalWrite(red, LOW);    // turn the LED off by making the voltage LOW
+  delay(lunga); 
+}
+
+/* Domande
+ *  
+ *  1. Creare una funzione che sia slegata dal PIN con cui interagisce.
+ *  
+ *  2. Come procede il flusso delle istruzioni per far brillare i LED?
+ *     E' possibile far brillare i LED indipendentemente l'uno dall'altro?
+ *     
+ *     
+ *     Nota: la risposta alla domanda 2 arrivera' a fine corso!
+ */
+
+
+
+
+
+
diff --git a/basic/blinks/blink_6_funzioni_argomenti/blink_6_funzioni_argomenti.ino b/basic/blinks/blink_6_funzioni_argomenti/blink_6_funzioni_argomenti.ino
deleted file mode 100644 (file)
index 270d3ca..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-  Blink v6
-  
- Due LEDs con funzioni che accettano argomenti:
- gli argomenti permettono di modificar il comportamento
- delle funzioni.
- */
-
-// Pin 13 has an LED connected on most Arduino boards.
-// give it a name:
-int led = 13;
-int red = 12;
-int breve = 200;
-int lunga = 1000;
-
-// the setup routine runs once when you press reset:
-void setup() {                
-  // initialize the digital pin as an output.
-  pinMode(led, OUTPUT);     
-  pinMode(red, OUTPUT);
-}
-
-// the loop routine runs over and over again forever:
-void loop() {
-lightRed(lunga);
-lightRed(breve);
-
-lightGreen(breve);
-lightGreen(lunga);
-}
-
-void lightRed(int length) { // Argomento
-  digitalWrite(red, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(length);               // wait for a second
-  digitalWrite(red, LOW);    // turn the LED off by making the voltage LOW
-  delay(length); 
-}
-
-void lightGreen(int  length) {
-  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
-  delay(length);               // wait for a second
-  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
-  delay(length);               // wait for a second
-}
-  
-  // Test: creare una funzione generica che permetta di accendere
-  // qualunque LED per un periodo di tempo impostabile
-  
-  // Suggerimento: quanti parametri deve accettare?
diff --git a/multitasking/millis/loop_array_millis/loop_array_millis.ino b/multitasking/millis/loop_array_millis/loop_array_millis.ino
new file mode 100644 (file)
index 0000000..c3b5d8c
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+  For Loop with millis()
+  
+Blink di un array di led in sucessione,
+utilizzando millis() per non blocking.
+L'array puo' contenere un numero arbitrario di led
+(l'ordine in cui compaiono e' l'ordine in cui brillano).
+
+ Schemi:
+ - http://lab.piffa.net/schemi/8_led_single_res_bb.png
+ - http://lab.piffa.net/schemi/8_led_single_res_schem.png
+
+ http://www.arduino.cc/en/Tutorial/ForLoop
+ */
+
+byte ledPins[] = {  // Domanda: cosa succede se uso int?
+  9, 10, 11, 12
+}
+; //Array
+
+long previousMillis ;
+long interval = 1000;
+byte i = 0;
+
+
+void setup() {
+  for (int thisPin = 0; thisPin < sizeof(ledPins); thisPin++) {
+    pinMode(ledPins[thisPin], OUTPUT);
+  }
+  previousMillis = millis();
+}
+
+void loop() {
+  if (millis() - previousMillis > interval) {
+    previousMillis = millis();
+
+    if ( i < sizeof(ledPins) - 1 ) {
+      // Spegni precedente led
+      digitalWrite(ledPins[i], LOW);
+
+      // Accendi successivo led
+      digitalWrite(ledPins[++i], HIGH);
+    }
+
+    else if  (i == sizeof(ledPins) - 1 )   {
+      // Ultimo caso
+      i = 0;
+      previousMillis = millis();
+      digitalWrite(ledPins[i], HIGH);
+      digitalWrite(ledPins[ sizeof(ledPins) - 1 ], LOW);
+    }
+  }
+}
+
+
+