From: eaman Date: Mon, 17 Oct 2016 15:50:16 +0000 (+0200) Subject: RGB clean up X-Git-Url: http://git.piffa.net/web?p=sketchbook_andrea;a=commitdiff_plain;h=047e7a955898ee212e094636f02d4fb199880812 RGB clean up --- diff --git a/RGB_LED/rgb_4_array/rgb_4_array.ino b/RGB_LED/rgb_4_array/rgb_4_array.ino index 81f8928..39060d4 100644 --- a/RGB_LED/rgb_4_array/rgb_4_array.ino +++ b/RGB_LED/rgb_4_array/rgb_4_array.ino @@ -1,8 +1,8 @@ /* - Adafruit Arduino - Lesson 3. RGB LED + RGB Array - RGB LED: mpostare i colori per un LED RGB - common anode + RGB LED: impostare i colori per un LED RGB + common anode tramite array Schema: http://lab.piffa.net/schemi/rgb.jpg */ @@ -24,7 +24,7 @@ void loop() { analogWrite(pin[0], color[0]); analogWrite(pin[1], color[1]); - analogWrite(pin[2], color[1]); + analogWrite(pin[2], color[2]); } /* Domande: diff --git a/RGB_LED/rgb_5_struct/rgb_5_struct.ino b/RGB_LED/rgb_5_struct/rgb_5_struct.ino index 1372da7..03e8f7a 100644 --- a/RGB_LED/rgb_5_struct/rgb_5_struct.ino +++ b/RGB_LED/rgb_5_struct/rgb_5_struct.ino @@ -1,8 +1,8 @@ /* - Adafruit Arduino - Lesson 3. RGB LED + RGB struct LED RGB LED: mpostare i colori per un LED RGB - common anode + common anode utilizzando uno struct Schema: http://lab.piffa.net/schemi/rgb.jpg */ @@ -48,4 +48,34 @@ void loop() */ +/* Risposte: + * 1. +struct ledRGB { + byte r; + byte g; + byte b; + byte blue; + byte green; + byte red; +}; + +ledRGB led {0,255,255,9,10,11}; + + + +void setup() +{ + pinMode(led.blue, OUTPUT); + pinMode(led.green, OUTPUT); + pinMode(led.red, OUTPUT); +} + +void loop() +{ + analogWrite(led.red,led.r ); + analogWrite(led.green,led.g); + analogWrite(led.blue,led.b); +} +*/ + */ diff --git a/RGB_LED/rgb_6_obj/rgb_6_obj.ino b/RGB_LED/rgb_6_obj/rgb_6_obj.ino index 723b8cb..23c34e1 100644 --- a/RGB_LED/rgb_6_obj/rgb_6_obj.ino +++ b/RGB_LED/rgb_6_obj/rgb_6_obj.ino @@ -1,16 +1,17 @@ /* - Adafruit Arduino - Lesson 3. RGB LED + RGB Object - RGB LED: mpostare i colori per un LED RGB - common anode + Gestione di un LED RGB tramite programmazione a oggetti Schema: http://lab.piffa.net/schemi/rgb.jpg */ class RGBLed { - const byte redPin ; - const byte greenPin ; - const byte bluePin ; + // Classe rappresentativa di un LED RGB + + byte redPin ; + byte greenPin ; + byte bluePin ; byte redValue ; byte greenValue ; byte blueValue ; @@ -30,30 +31,39 @@ class RGBLed { pinMode(greenPin, OUTPUT); } - void Color (byte r, byte g, byte b) { + void Arrossa () { + // Metodo = funzione dell'oggetto + // Imposta il colore di un LED RGB a rosso + + analogWrite(redPin, 0); + analogWrite(greenPin, 255); + analogWrite(bluePin, 255); + } + + void SetColor (byte r, byte g, byte b) { // Imposta il colore di un LED RGB - byte redValue = r; - byte greenValue = g; - byte blueValue = b; - analogWrite(redPin, redValue); - analogWrite(greenPin, greenValue); - analogWrite(bluePin, blueValue); + analogWrite(redPin, r); + analogWrite(greenPin, g); + analogWrite(bluePin, b); } }; // Instanziamo un LED -RGBLed led(11, 10, 9); +RGBLed led(11, 10, 9); /* L'oggetto viene istanziato qui e non nella funzione di setup() - * perche' altrimenti la sua esistenza sarebbe legata solo + * perche' altrimenti la sua esistenza sarebbe legata solo * al contesto (scope) del setup(), non sarebbe disponibile nel loop() */ void setup() { - // I PIN mode vengono settati dal constructor - } + // I PIN mode vengono settati dal constructor +} +void loop() { + led.Arrossa(); + delay(1000); + led.SetColor(255, 0, 255) ; // Mettiamo il LED in Green + delay(1000); -void loop(){ -led.Color(0,255,255) ; // Mettiamo il LED in Rosso - } +} diff --git a/oggi/RGB_LED/README b/oggi/RGB_LED/README deleted file mode 100644 index 133660a..0000000 --- a/oggi/RGB_LED/README +++ /dev/null @@ -1,2 +0,0 @@ -Ottima lezione in italiano: -- http://www.maffucci.it/2014/09/27/arduino-lezione-09-uso-di-led-rgb-parte-1/ diff --git a/oggi/RGB_LED/rgb_0/rgb_0.ino b/oggi/RGB_LED/rgb_0/rgb_0.ino deleted file mode 100644 index d69d451..0000000 --- a/oggi/RGB_LED/rgb_0/rgb_0.ino +++ /dev/null @@ -1,46 +0,0 @@ -/* - Adafruit Arduino - Lesson 3. RGB LED - - RGB LED: mpostare i colori per un LED RGB - common anode - - Schema: http://lab.piffa.net/schemi/rgb.jpg - */ - -int redPin = 11; // 2v a 20ma: che resistenza dovro usare? -int greenPin = 10; // 3.5v a 20ma: che resistenza dovro usare? -int bluePin = 9; // 3.5v a 20ma: che resistenza dovro usare? - - - -void setup() -{ - pinMode(redPin, OUTPUT); - pinMode(greenPin, OUTPUT); - pinMode(bluePin, OUTPUT); -} - -void loop() -{ - analogWrite(redPin, 255); - analogWrite(greenPin,255); - analogWrite(bluePin, 255); -} - -/* Domande: - 1. Come scrivere le istruzioni analog Write in modo da sottrarre i valori? - 2. Accendere il LED nei vari colori - - http://i.stack.imgur.com/LcBvQ.gif - Soluzione: vedi lo sketch rgb_1_all_color - - 3. Scrivere una funzione che accetti 3 parametri per impostare i colori - 4. Scrivere una funzione che accetti come parametro il nome del colore - es "blue" e imposti il LED. - - Eventuale: - 5. Scrivere una funzione che accetti i colori in esadecimale - - http://www.yellowpipe.com/yis/tools/hex-to-rgb/color-converter.php - */ - - - diff --git a/oggi/RGB_LED/rgb_0_soluzione/rgb_0_soluzione.ino b/oggi/RGB_LED/rgb_0_soluzione/rgb_0_soluzione.ino deleted file mode 100644 index 5d46d7e..0000000 --- a/oggi/RGB_LED/rgb_0_soluzione/rgb_0_soluzione.ino +++ /dev/null @@ -1,66 +0,0 @@ -/* - Adafruit Arduino - Lesson 3. RGB LED - - RGB LED: mpostare i colori per un LED RGB - common anode - */ - -int redPin = 11; // 2v a 20ma: che resistenza dovro usare? -int greenPin = 10; // 3.5v a 20ma: che resistenza dovro usare? -int bluePin = 9; // 3.5v a 20ma: che resistenza dovro usare? - - -void setup() -{ - pinMode(redPin, OUTPUT); - pinMode(greenPin, OUTPUT); - pinMode(bluePin, OUTPUT); -} - -void loop() -{ - setColor(255,0,0) ; // imposta il LED in rosso - //setColor(0xFF,0x00,0x00) ; // imposta il LED in rosso in esadecimale - - // setName("green") ; -} - -// Funzioni: -void setColor(int red, int green, int blue) -// Imposta i colori di un LED RGB Common Anodote -// in esadecimale -{ - analogWrite(redPin, 255 -red); - analogWrite(greenPin, 255 - green); - analogWrite(bluePin, 255 - blue); -} - -void setName(String colorName) -// Imposta i colori di un LED RGB Common Anodote -// tramite una stringa -{ - if (colorName == "red") { - analogWrite(redPin, 0 ); - analogWrite(greenPin, 255 ); - analogWrite(bluePin, 255 ); - } - else if (colorName == "green") { - analogWrite(redPin, 255 ); - analogWrite(greenPin, 0 ); - analogWrite(bluePin, 255 ); - } - // ... -} -/* Hints: - -1. Per usare un solo valore esadecimale per settare i colori: - - http://ardx.org/src/code/CIRC12-code-MB-SPAR.txt - - */ - - - - - - - diff --git a/oggi/RGB_LED/rgb_1_all_color/rgb_1_all_color.ino b/oggi/RGB_LED/rgb_1_all_color/rgb_1_all_color.ino deleted file mode 100644 index a53a02a..0000000 --- a/oggi/RGB_LED/rgb_1_all_color/rgb_1_all_color.ino +++ /dev/null @@ -1,54 +0,0 @@ -/* - Adafruit Arduino - Lesson 3. RGB LED - - RGB LED: rotazione tra tutti i colori. - - Schema: http://lab.piffa.net/schemi/rgb.jpg - - */ - -int redPin = 11; -int greenPin = 10; -int bluePin = 9; - -//uncomment this line if using a Common Anode LED -#define COMMON_ANODE - -void setup() -{ - pinMode(redPin, OUTPUT); - pinMode(greenPin, OUTPUT); - pinMode(bluePin, OUTPUT); -} - -void loop() -{ - setColor(255, 0, 0); // red - delay(1000); - setColor(0, 255, 0); // green - delay(1000); - setColor(0, 0, 255); // blue - delay(1000); - setColor(255, 255, 0); // yellow - delay(1000); - setColor(80, 0, 80); // purple - delay(1000); - setColor(0, 255, 255); // aqua - delay(1000); -} - -void setColor(int red, int green, int blue) -{ -#ifdef COMMON_ANODE - red = 255 - red; - green = 255 - green; - blue = 255 - blue; -#endif - analogWrite(redPin, red); - analogWrite(greenPin, green); - analogWrite(bluePin, blue); -} - - - - diff --git a/oggi/RGB_LED/rgb_2_pwm/rgb_2_pwm.ino b/oggi/RGB_LED/rgb_2_pwm/rgb_2_pwm.ino deleted file mode 100644 index 8e712fc..0000000 --- a/oggi/RGB_LED/rgb_2_pwm/rgb_2_pwm.ino +++ /dev/null @@ -1,69 +0,0 @@ -// RGB LED PWM transizione - -// Transizione di un LED RGB tra rosso - blue -verde -// tramite PWM - -// This is meant for a Common Anodote RGB LED -// See all those (255 - val). - - -// Schema: http://lab.piffa.net/schemi/rgb.jpg - - -#define GREEN 10 -#define BLUE 9 -#define RED 11 -#define delayTime 20 - -void setup() { - - pinMode(GREEN, OUTPUT); - pinMode(BLUE, OUTPUT); - pinMode(RED, OUTPUT); - digitalWrite(GREEN, HIGH); - digitalWrite(BLUE, HIGH); - digitalWrite(RED, HIGH); -} - -int redVal; -int blueVal; -int greenVal; - -void loop() { - - int redVal = 255; - int blueVal = 0; - int greenVal = 0; - for( int i = 0 ; i < 255 ; i += 1 ){ - greenVal += 1; - redVal -= 1; - analogWrite( GREEN, 255 - greenVal ); - analogWrite( RED, 255 - redVal ); - - delay( delayTime ); - } - - redVal = 0; - blueVal = 0; - greenVal = 255; - for( int i = 0 ; i < 255 ; i += 1 ){ - blueVal += 1; - greenVal -= 1; - analogWrite( BLUE, 255 - blueVal ); - analogWrite( GREEN, 255 - greenVal ); - - delay( delayTime ); - } - - redVal = 0; - blueVal = 255; - greenVal = 0; - for( int i = 0 ; i < 255 ; i += 1 ){ - redVal += 1; - blueVal -= 1; - analogWrite( RED, 255 - redVal ); - analogWrite( BLUE, 255 - blueVal ); - - delay( delayTime ); - } -} diff --git a/oggi/button_state_3/button_state_3.ino b/oggi/button_state_3/button_state_3.ino deleted file mode 100644 index 2afa6d9..0000000 --- a/oggi/button_state_3/button_state_3.ino +++ /dev/null @@ -1,47 +0,0 @@ -/* - Stato di un bottone - - Legge lo stato di un input - - */ - -int switchPin = 2; // switch connesso al pin 2 - // Nota: le prossime due variabili sono - // solo "definite" e non "inizializzate" -int statoAttuale; // Variabile per leggere lo stato del bottone -int ultimoStato; // Variabile per registrare l'ultimo stato del bottone - -void setup() { - pinMode(switchPin, INPUT); // Set the switch pin as input - - Serial.begin(9600); // Set up serial communication at 9600bps - ultimoStato = digitalRead(switchPin); // read the initial state -} - - -void loop(){ - statoAttuale = digitalRead(switchPin); // Legge lo stato del bottone e - // lo resistra nella variabile - delay(20); // riduce l'effetto bounce - if (statoAttuale != ultimoStato) { - // verifica due condizioni che devono realizzarsi contemporaneamente - if (statoAttuale == HIGH) { // il bottone e' stato premuto - Serial.println("Bottone premuto"); - } - else { // il bottone non e' premuto... - Serial.println("Bottone rilasciato"); - } - } - - ultimoStato = statoAttuale; // Aggiorna lo stato finale al valore attuale -} - -/* Domande: - - 1. Cosa succde se non uso un delay(20) alla lettura del bottone? - 2. Implementare un LED che cambia stato quando viene premuto il bottone. - 3. Quanti stati ha il LED? - 4. Sarebbe possibile passare rapidamente da uno stato all'altro? - - */ - diff --git a/oggi/button_state_4_final/button_state_4_final.ino b/oggi/button_state_4_final/button_state_4_final.ino deleted file mode 100644 index 4c0593f..0000000 --- a/oggi/button_state_4_final/button_state_4_final.ino +++ /dev/null @@ -1,62 +0,0 @@ -/* - Stato di un bottone - - Legge lo stato di un input - - */ -const int led = 13; -const int buttonPin = 2; -boolean statoAttuale; // Variabile per leggere lo stato del bottone -boolean ultimoStato; // Variabile per registrare l'ultimo stato del bottone - -void setup() { - pinMode(buttonPin, INPUT); // Set the switch pin as input - pinMode(led, OUTPUT); - ultimoStato = digitalRead(buttonPin); // Prima lettura del bottone -} - -void loop(){ - statoAttuale = digitalRead(buttonPin); // Legge lo stato del bottone e lo resistra in val - delay(20); // riduce l'effetto bounce - if (statoAttuale != ultimoStato && statoAttuale == HIGH) { // due condizione contemporanee - // lo stato del bottone e' camabiato AND lo stato attuale e' HIGH - digitalWrite(led, !(digitalRead(led))); - // Il processore setta lo stato di un led - // impostando il relativo PIN: possiamo leggere il relativo registro - // allo stesso modo di un bottone. - } - - ultimoStato = statoAttuale; // Aggiorna lo stato finale al valore attuale -} - - - -/* Domande: - - 1. La variabile ledstatus serve per tenere traccia dello stato del LED: - si potrebbe fare a meno di questa? - Cosa fa Arduino quando deve accendere o spegnere un LED? - Come funziona DigiralRead() ? - - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - Soluzione: - - 1. Per accendere o spegnere un LED Arduino imposta il valore del registro corrispondente - al PIN: se questo e' 0 il circuito e' aperto mentre se e' 1 il circuito e' chiuso. - Allo stesso modo con DigitalRead() e' possibile leggere lo stato di quel regustro - e conoscere se il LED e' acceso o spento. - */ diff --git a/oggi/button_state_4_state/button_state_4_state.ino b/oggi/button_state_4_state/button_state_4_state.ino deleted file mode 100644 index 30a330b..0000000 --- a/oggi/button_state_4_state/button_state_4_state.ino +++ /dev/null @@ -1,49 +0,0 @@ -/* - Stato di un bottone - - Legge lo stato di un input - - */ -int led = 13; // Definizione delle variabili -int buttonPin = 2; - // Dichiarazione di variabili -int statoAttuale; // Variabile per leggere lo stato del bottone -int ultimoStato; // Variabile per registrare l'ultimo stato del bottone -int ledStatus; // varabile per mantenere lo stato del led - -void setup() { - pinMode(buttonPin, INPUT); - pinMode(led, OUTPUT); - Serial.begin(9600); // Attiva la comunicazione seriale a 9600bps - ultimoStato = digitalRead(buttonPin); // Prima lettura del bottone - ledStatus = 0; // Il LED viene inpostato come spento -} - -void loop(){ - statoAttuale = digitalRead(buttonPin); // Legge lo stato del bottone e - // lo registra nella variabile - delay(20); // riduce l'effetto bounce - if (statoAttuale != ultimoStato) { // lo stato del bottone e' cambiato - if (statoAttuale == HIGH) { // il bottone e' stato premuto - Serial.println("Button premuto"); - - ledStatus = !ledStatus ; // Inverte lo stato del LED - // ledStatus = 1 - ledStatus ; // Forma analoga - - Serial.print("Stato del LED: "); // DEBUG - Serial.println(ledStatus) ; - } - } - - ultimoStato = statoAttuale; // Aggiorna lo stato finale al valore attuale - digitalWrite(led, ledStatus); // setta il led allo stato richiesto - -} - -/* Domande: - - 1. I due cicli if verificano che due condizioni siano concomitanti: e' possibile - integrarli semplificando il codice? - - */ - diff --git a/oggi/button_state_4_state_and_condition/button_state_4_state_and_condition.ino b/oggi/button_state_4_state_and_condition/button_state_4_state_and_condition.ino deleted file mode 100644 index 5ac0879..0000000 --- a/oggi/button_state_4_state_and_condition/button_state_4_state_and_condition.ino +++ /dev/null @@ -1,72 +0,0 @@ -/* - Stato di un bottone - - Legge lo stato di un input - - */ -int led = 13; -int buttonPin = 2; -int statoAttuale; // Variabile per leggere lo stato del bottone -int ultimoStato; // Variabile per registrare l'ultimo stato del bottone -int ledStatus; // varabile per mantenere lo stato del led - -void setup() { - pinMode(buttonPin, INPUT); // Set the switch pin as input - pinMode(led, OUTPUT); - Serial.begin(9600); // Attiva la comunicazione seriale a 9600bps - ultimoStato = digitalRead(buttonPin); // Prima lettura del bottone - ledStatus = 0; // Il LED viene inpostato come spento -} - -void loop(){ - statoAttuale = digitalRead(buttonPin); // Legge lo stato del bottone e lo resistra in val - delay(20); // riduce l'effetto bounce - if (statoAttuale != ultimoStato && statoAttuale == HIGH) { // due condizione contemporanee - // lo stato del bottone e' camabiato AND lo stato attuale e' HIGH - Serial.println("Button premuto"); - - ledStatus = !ledStatus ; // Inverte lo stato del LED - // ledStatus = 1 - ledStatus ; // Forma analoga - - Serial.print("Stato del LED: "); // DEBUG - Serial.println(ledStatus) ; - } - - ultimoStato = statoAttuale; // Aggiorna lo stato finale al valore attuale - digitalWrite(led, ledStatus); // setta il led allo stato richiesto - -} - - - -/* Domande: - - 1. La variabile ledstatus serve per tenere traccia dello stato del LED: - si potrebbe fare a meno di questa? - Cosa fa Arduino quando deve accendere o spegnere un LED? - Come funziona DigiralRead() ? - - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - Soluzione: - - 1. Per accendere o spegnere un LED Arduino imposta il valore del registro corrispondente - al PIN: se questo e' 0 il circuito e' aperto mentre se e' 1 il circuito e' chiuso. - Allo stesso modo con DigitalRead() e' possibile leggere lo stato di quel registro - e conoscere se il LED e' acceso o spento. - - https://www.arduino.cc/en/Reference/PortManipulation - - http://www.instructables.com/id/Microcontroller-Register-Manipulation/ - */ diff --git a/oggi/loops/loop_0_rider/loop_0_rider.ino b/oggi/loops/loop_0_rider/loop_0_rider.ino deleted file mode 100644 index 1549668..0000000 --- a/oggi/loops/loop_0_rider/loop_0_rider.ino +++ /dev/null @@ -1,110 +0,0 @@ -/* Knight Rider 1 - * -------------- - * - * Basically an extension of Blink_LED. - * - * - * (cleft) 2005 K3, Malmo University - * @author: David Cuartielles - * @hardware: David Cuartielles, Aaron Hallborg - See: https://www.arduino.cc/en/Tutorial/KnightRider - - Schema semplificato: - - http://lab.piffa.net/schemi/8_led_single_res_bb.png - - http://lab.piffa.net/schemi/8_led_single_res_schem.png - */ - -int pin2 = 2; -int pin3 = 3; -int pin4 = 4; -int pin5 = 5; -int pin6 = 6; -int pin7 = 7; -int pin8 = 8; -int pin9 = 9; -int timer = 100; - -void setup(){ - pinMode(pin2, OUTPUT); - pinMode(pin3, OUTPUT); - pinMode(pin4, OUTPUT); - pinMode(pin5, OUTPUT); - pinMode(pin6, OUTPUT); - pinMode(pin7, OUTPUT); - pinMode(pin8, OUTPUT); - pinMode(pin9, OUTPUT); -} - -void loop() { - digitalWrite(pin2, HIGH); - delay(timer); - digitalWrite(pin2, LOW); - delay(timer); - - digitalWrite(pin3, HIGH); - delay(timer); - digitalWrite(pin3, LOW); - delay(timer); - - digitalWrite(pin4, HIGH); - delay(timer); - digitalWrite(pin4, LOW); - delay(timer); - - digitalWrite(pin5, HIGH); - delay(timer); - digitalWrite(pin5, LOW); - delay(timer); - - digitalWrite(pin6, HIGH); - delay(timer); - digitalWrite(pin6, LOW); - delay(timer); - - digitalWrite(pin7, HIGH); - delay(timer); - digitalWrite(pin7, LOW); - delay(timer); - - digitalWrite(pin8, HIGH); - delay(timer); - digitalWrite(pin8, LOW); - delay(timer); - - digitalWrite(pin9, HIGH); - delay(timer); - digitalWrite(pin9, LOW); - delay(timer); - - // Ding! Mezzo giro - - digitalWrite(pin8, HIGH); - delay(timer); - digitalWrite(pin8, LOW); - delay(timer); - - digitalWrite(pin7, HIGH); - delay(timer); - digitalWrite(pin7, LOW); - delay(timer); - - digitalWrite(pin6, HIGH); - delay(timer); - digitalWrite(pin6, LOW); - delay(timer); - - digitalWrite(pin5, HIGH); - delay(timer); - digitalWrite(pin5, LOW); - delay(timer); - - digitalWrite(pin4, HIGH); - delay(timer); - digitalWrite(pin4, LOW); - delay(timer); - - digitalWrite(pin3, HIGH); - delay(timer); - digitalWrite(pin3, LOW); - delay(timer); -} diff --git a/oggi/loops/loop_1_array_loop/loop_1_array_loop.ino b/oggi/loops/loop_1_array_loop/loop_1_array_loop.ino deleted file mode 100644 index bb9662e..0000000 --- a/oggi/loops/loop_1_array_loop/loop_1_array_loop.ino +++ /dev/null @@ -1,77 +0,0 @@ -/* Knight Rider 2 - * -------------- - * - * Array e uso dei cicli iterativi. - * - - - Schema semplificato: - - http://lab.piffa.net/schemi/8_led_single_res_bb.png - - http://lab.piffa.net/schemi/8_led_single_res_schem.png - */ - -int pinArray[8] = {2, 3, 4, 5, 6, 7, 8, 9}; -int timer = 100; - -void setup(){ - // we make all the declarations at once - for (int count=0;count<9;count++) { - pinMode(pinArray[count], OUTPUT); - } -} - -void loop() { - for (int count=0;count<8;count++) { // 8 e' un numero magico - digitalWrite(pinArray[count], HIGH); - delay(timer); - digitalWrite(pinArray[count], LOW); - delay(timer); - } - -// Ciclo inverso: dall'alto in basso - for (int count=8;count>=0;count--) { - digitalWrite(pinArray[count], HIGH); - delay(timer); - digitalWrite(pinArray[count], LOW); - delay(timer); - } -} - -/* Domande: - - 1. Come posso fare per saltare un elemento del loop? - 2. Come posso fare per uscire completamente dal loop? - 3. 8 e' un numero magico: come posso evitarlo? - -. -. -. -. -. -. -. -. -. -. -. -. -. -. -. -. -. -. -. -. -. -Soluzioni: - 1. utilizzare continue - 2. utilizzare break - 3. Utilizzare un variabile sarebbe gia' un inizio, ancora meglio estrarre il - valore tramite la funzione sizeof(). -Links: -- http://www.tutorialspoint.com/cprogramming/c_continue_statement.htm -- https://www.arduino.cc/en/Reference/Sizeof -*/ - - diff --git a/oggi/loops/loop_2_array_loop_serial/loop_2_array_loop_serial.ino b/oggi/loops/loop_2_array_loop_serial/loop_2_array_loop_serial.ino deleted file mode 100644 index 3b5ddef..0000000 --- a/oggi/loops/loop_2_array_loop_serial/loop_2_array_loop_serial.ino +++ /dev/null @@ -1,63 +0,0 @@ -/* - For Loop Iteration - - Demonstrates the use of a for() loop. - Lights multiple LEDs in sequence, then in reverse. - - The circuit: - * LEDs from pins 2 through 9 to ground - - 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[8] = { // Domanda: cosa succede se uso int? - 2,3,4,5,6,7,8,9} -; //Array -int timer = 100; // Pausa per far brillare i LED - -void setup() { - Serial.begin(9600); - // use a for loop to initialize each pin as an output: - for (int thisPin = 0; thisPin < sizeof(ledPins); thisPin++) { - pinMode(ledPins[thisPin], OUTPUT); - Serial.print("Inizializzato pin n. "); - Serial.println( thisPin); - } - - Serial.print("Dimesione array: "); - Serial.println(sizeof(ledPins)); -} - -void loop() { - // loop from the lowest pin to the highest: - for (int thisPin = 0; thisPin < sizeof(ledPins); thisPin++) { - Serial.print("Accensione pin n. "); - Serial.println(thisPin); - // turn the pin on: - digitalWrite(ledPins[thisPin], HIGH); - delay(timer); - // turn the pin off: - digitalWrite(ledPins[thisPin], LOW); - // Debug - - } - - // loop from the highest pin to the lowest: - for (int thisPin = sizeof(ledPins) -1 ; thisPin > 0; thisPin--) { - Serial.print("Accensione pin n. "); // Gli array sono indicizzati da 0 - Serial.println(thisPin); - // ><