]> git.piffa.net Git - sketchbook_andrea/commitdiff
Blinks with iterators, reorder
authorAndrea Manni <andrea@piffa.net>
Mon, 7 Mar 2016 17:49:44 +0000 (18:49 +0100)
committerAndrea Manni <andrea@piffa.net>
Mon, 7 Mar 2016 17:49:44 +0000 (18:49 +0100)
basic/blinks/blink_0/blink_0.ino
basic/blinks/blink_2_1_sos/blink_2_1_sos.ino [new file with mode: 0644]
basic/blinks/blink_2_2_funzioni_argomenti/blink_2_2_funzioni_argomenti.ino [new file with mode: 0644]
basic/blinks/blink_3_1_while_veloce/blink_3_1_while_veloce.ino [new file with mode: 0644]
basic/blinks/blink_3_ciclo_while/blink_3_ciclo_while.ino [new file with mode: 0644]
basic/blinks/blink_3_funzioni_argomenti/blink_3_funzioni_argomenti.ino [deleted file]
basic/blinks/blink_4_1_ciclo_for/blink_4_1_ciclo_for.ino [deleted file]
basic/blinks/blink_4_1_ciclo_for_veloce/blink_4_1_ciclo_for_veloce.ino [new file with mode: 0644]
basic/blinks/blink_4_ciclo_for/blink_4_ciclo_for.ino [new file with mode: 0644]
basic/blinks/blink_4_ciclo_while/blink_4_ciclo_while.ino [deleted file]

index 09efff8c9e2b7746ce84fe40d818a44f24f3ef80..f26f96d7fa5255e6740cce52b38ae15ad3f8fc34 100644 (file)
@@ -26,6 +26,6 @@ void setup() {
 void loop() {
   digitalWrite(led, HIGH);  // Mette il PIN del LED in stato acceso
   delay(1000);              // Aspetta un secondo (mille millisecondi)
-  digitalWrite(led, LOW);   // Mette il PIN del LED in stato acceso
+  digitalWrite(led, LOW);   // Mette il PIN del LED in stato spento
   delay(500);               // Aspetta mezzo secondo
 }
diff --git a/basic/blinks/blink_2_1_sos/blink_2_1_sos.ino b/basic/blinks/blink_2_1_sos/blink_2_1_sos.ino
new file mode 100644 (file)
index 0000000..aa53006
--- /dev/null
@@ -0,0 +1,159 @@
+
+// ////////////
+// 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
+
+int led = 13; // LED onboard sulla scheda
+
+
+// /////////////////
+// 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() {
+  // S
+  rapido(); // accende e spegne rapidamente il LED
+  rapido();
+  rapido();
+
+  // O
+  lento();  // accende e spegne lentamente il LED
+  lento();
+  lento();
+
+  // S
+  rapido(); // accende e spegne rapidamente il LED
+  rapido();
+  rapido();
+
+
+  //Funzione apposita:
+  esse();
+  ooo();
+  esse();
+}
+
+
+  // ///////////////
+  // Funzioni create dall'utente:
+
+void rapido() {
+  // Accende e spegne rapidamente il LED
+  int breve = 200;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+}
+
+void lento() {
+  // Accende e spegne lentamente il LED
+  int lunga = 1000;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+}
+
+void esse() {
+  // Emette una lettera S in Morse
+
+  int breve = 200;
+  
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+}
+
+void ooo() {
+  // Emette una lettera o in Morse
+
+  int lunga = 1000;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+
+}
+
+void sos() {
+  // Emette un segnale di S.O.S
+
+}
+
+//////////////////
+/* Domande:
+    1. Che differenza c'e' tra le funzioni esse() e sos()?
+
+    2. Esercizio: creare uno sketch per far brillare un led 10 volte lentamente
+       e dieci volte rapidamente.
+ Soluzioni a fondo pagina.
+
+
+ Risposta:
+
+ 1. esse() e' una funzione autonoma, puo' essere copiata/incollata in qualunque
+ sketch e funzionera' autonomamente.
+ sos() invece e' composta da altre funzioni: anche queste dovranno essere disponibili.
+
+ */
diff --git a/basic/blinks/blink_2_2_funzioni_argomenti/blink_2_2_funzioni_argomenti.ino b/basic/blinks/blink_2_2_funzioni_argomenti/blink_2_2_funzioni_argomenti.ino
new file mode 100644 (file)
index 0000000..aa9074e
--- /dev/null
@@ -0,0 +1,54 @@
+
+/*
+  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. velocita' ora e' una variabile o una costante ?
+ *  
+ *  Esercizi sucessivi sulle funzioni: blink_5 e 6
+ */
diff --git a/basic/blinks/blink_3_1_while_veloce/blink_3_1_while_veloce.ino b/basic/blinks/blink_3_1_while_veloce/blink_3_1_while_veloce.ino
new file mode 100644 (file)
index 0000000..4e86c4d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+  Blink v4: while loop
+
+ Accensione e spegnimanto di un LED utilizzando un ciclo
+ iterativo while per comandare il lampeggio.
+
+ Iterazione modificata da una variabile.
+ */
+
+const int led   = 13;   // Il valore non cambia
+                        // durante l'esecuzione del programm
+
+
+// /////////////////
+// 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 una variabile per controllare il ciclo iterativo
+  while (iterator < 10) {       // Condizione del ciclo
+    iterator = iterator + 1 ;   // incrementa l'iteratore
+    brilla(30 * iterator);      // accende e spegne rapidamente il LED 
+                                // la pausa e' in funzione della variabile iteratore
+  }
+}
+
+// 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);       // Mette il PIN del LED in stato acceso)
+  delay(velocita);               // Pausa
+  digitalWrite(led, LOW);       // Mette il PIN del LED in stato spento
+  delay(velocita);              // Pausa
+}
+
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
new file mode 100644 (file)
index 0000000..ad4bb60
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+  Blink v4: while loop
+
+ Accensione e spegnimanto di un LED utilizzando un ciclo
+ iterativo while per comandare il lampeggio.
+
+ */
+
+const int led   = 13;   // LED OnBoard
+
+
+
+// /////////////////
+// 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 una variabile per controllare il ciclo iterativo
+  while (iterator < 10) {     // Condizione del ciclo
+
+   rapido();
+    iterator = iterator + 1 ;   // incrementa l'iteratore
+  }
+
+lento();
+}
+
+// Funzioni create dall'utente:
+void rapido() {
+  // Accende e spegne rapidamente il LED
+  int breve = 200;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+}
+
+
+void lento() {
+  // Accende e spegne lentamente il LED
+  int lunga = 1000;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+}
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
deleted file mode 100644 (file)
index cfa0210..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*
-  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?
- *  
- *  
- *  Esercizi sucessivi sulle funzioni: blink_5 e 6
- */
diff --git a/basic/blinks/blink_4_1_ciclo_for/blink_4_1_ciclo_for.ino b/basic/blinks/blink_4_1_ciclo_for/blink_4_1_ciclo_for.ino
deleted file mode 100644 (file)
index a330935..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
-  Blink v4: for loop
-
- Accensione e spegnimanto di un LED utilizzando un ciclo
- iterativo while per comandare il lampeggio.
-
- Reference: http://arduino.cc/en/Reference/for
- Altri esempi: sketchbook_andrea/programming/loops/
-
- */
-
-const int led   = 13;   // Il valore non cambia
-                        // durante l'esecuzione del programma
-
-
-// /////////////////
-// 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)
-// i++ incrementa di uno la variabile
-    brilla(30 * i);      // accende e spegne rapidamente il LED
-    // la pausa e' in funzione della variabile iteratore
-}
-}
-
-// 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.  Che differenza c'e' nella gestione dell'iteratore tra un ciclo
-    while e for ?
-2.  In quali casi si usa un ciclo for piuttosto che uno while?
-
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-.
-    Soluzioni
-1.  Nel ciclo for l'iteratore e tutta la sua gestione avviene al di fuori
-    del corpo della struttura del ciclo. Questa viene esplicitamente definita.
-2.  Un ciclo for e' indicato per casi in cui si conosce e si vuole controllare
-    il numero delle iterazioni. 
-    Un ciclo while quando basta controllare
-    il perdurare di una situazione di durata indefinita ad es. lo stato
-    di un bottone. Es:
-
-    while (stato_bottone = HIGH) {
-    digitalWrite(LED, HI);
-}
-*/
diff --git a/basic/blinks/blink_4_1_ciclo_for_veloce/blink_4_1_ciclo_for_veloce.ino b/basic/blinks/blink_4_1_ciclo_for_veloce/blink_4_1_ciclo_for_veloce.ino
new file mode 100644 (file)
index 0000000..a330935
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+  Blink v4: for loop
+
+ Accensione e spegnimanto di un LED utilizzando un ciclo
+ iterativo while per comandare il lampeggio.
+
+ Reference: http://arduino.cc/en/Reference/for
+ Altri esempi: sketchbook_andrea/programming/loops/
+
+ */
+
+const int led   = 13;   // Il valore non cambia
+                        // durante l'esecuzione del programma
+
+
+// /////////////////
+// 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)
+// i++ incrementa di uno la variabile
+    brilla(30 * i);      // accende e spegne rapidamente il LED
+    // la pausa e' in funzione della variabile iteratore
+}
+}
+
+// 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.  Che differenza c'e' nella gestione dell'iteratore tra un ciclo
+    while e for ?
+2.  In quali casi si usa un ciclo for piuttosto che uno while?
+
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+    Soluzioni
+1.  Nel ciclo for l'iteratore e tutta la sua gestione avviene al di fuori
+    del corpo della struttura del ciclo. Questa viene esplicitamente definita.
+2.  Un ciclo for e' indicato per casi in cui si conosce e si vuole controllare
+    il numero delle iterazioni. 
+    Un ciclo while quando basta controllare
+    il perdurare di una situazione di durata indefinita ad es. lo stato
+    di un bottone. Es:
+
+    while (stato_bottone = HIGH) {
+    digitalWrite(LED, HI);
+}
+*/
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
new file mode 100644 (file)
index 0000000..70e4ef2
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+  Blink v4: while loop
+
+ Accensione e spegnimanto di un LED utilizzando un ciclo
+ iterativo while per comandare il lampeggio.
+
+ */
+
+const int led   = 13;   // LED OnBoard
+
+
+
+// /////////////////
+// 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(); // Unica istruzione
+  }
+
+lento();
+}
+
+// Funzioni create dall'utente:
+void rapido() {
+  // Accende e spegne rapidamente il LED
+  int breve = 200;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+}
+
+
+void lento() {
+  // Accende e spegne lentamente il LED
+  int lunga = 1000;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+}
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
deleted file mode 100644 (file)
index e647bfd..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Blink v4: while loop
-
- Accensione e spegnimanto di un LED utilizzando un ciclo
- iterativo while per comandare il lampeggio.
- */
-
-const int led   = 13;   // Il valore non cambia
-                        // durante l'esecuzione del programm
-
-
-// /////////////////
-// 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 una variabile per controllare il ciclo iterativo
-  while (iterator < 10) {       // Condizione del ciclo
-    iterator = iterator + 1 ;   // incrementa l'iteratore
-    brilla(30 * iterator);      // accende e spegne rapidamente il LED 
-                                // la pausa e' in funzione della variabile iteratore
-  }
-}
-
-// 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
-}
-