/* 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); } */