-// ////////////
-// Commento iniziale
/*
Blink v2
This example code is in the public domain.
*/
-// //////////////
// Dichiarazione variabili
// Pin 13 has an LED connected on most Arduino boards.
pinMode(led, OUTPUT);
}
-// ///////////////
// loop
void loop() {
brilla(300);
brilla(600);
}
-// ///////////////
// Funzioni create dall'utente:
void brilla(int velocita) {
*
* 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 ch 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
- 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);
-}
-
-
/*
- Blink v3
+ Blink v4: while loop
+
Accensione e spegnimanto di un LED utilizzando un ciclo
iterativo while per comandare il lampeggio.
*/
-int led = 13;
-int breve = 200;
-int lunga = 1000;
+const int led = 13; // Il valore non cambia
+ // durante l'esecuzione del programm
// /////////////////
// ///////////////
// 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
+ 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
}
- 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
+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(lunga); // wait for a second
+ delay(velocita); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
- delay(lunga);
+ delay(velocita); // wait for a second
}
-
-/* Domande
- *
- * 1. Creare una funziona lampeggia() che accetti come parametro
- * il nuomero di ripetizioni da eseguire.
- *
- */
-
-
-