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
}
--- /dev/null
+
+// ////////////
+// 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.
+
+ */
--- /dev/null
+
+/*
+ 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
+ */
--- /dev/null
+/*
+ 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
+}
+
--- /dev/null
+/*
+ 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
+}
+++ /dev/null
-
-/*
- 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
- */
+++ /dev/null
-/*
- 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);
-}
-*/
--- /dev/null
+/*
+ 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);
+}
+*/
--- /dev/null
+/*
+ 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
+}
+++ /dev/null
-/*
- 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
-}
-