From: eaman Date: Fri, 30 Sep 2016 12:33:17 +0000 (+0200) Subject: oggi X-Git-Url: http://git.piffa.net/web?p=sketchbook_andrea;a=commitdiff_plain;h=b3b834b9e512718c9ea40b56276e6e22ca097571 oggi --- diff --git a/oggi/blink_2_2_funzioni_argomenti/blink_2_2_funzioni_argomenti.ino b/oggi/blink_2_2_funzioni_argomenti/blink_2_2_funzioni_argomenti.ino deleted file mode 100644 index aa9074e..0000000 --- a/oggi/blink_2_2_funzioni_argomenti/blink_2_2_funzioni_argomenti.ino +++ /dev/null @@ -1,54 +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? - * - * 2. velocita' ora e' una variabile o una costante ? - * - * Esercizi sucessivi sulle funzioni: blink_5 e 6 - */ diff --git a/oggi/blink_2_funzioni/blink_2_funzioni.ino b/oggi/blink_2_funzioni/blink_2_funzioni.ino deleted file mode 100644 index 92db22b..0000000 --- a/oggi/blink_2_funzioni/blink_2_funzioni.ino +++ /dev/null @@ -1,65 +0,0 @@ - -// //////////// -// 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 -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() { - rapido(); // accende e spegne rapidamente il LED - rapido(); // accende e spegne rapidamente il LED - 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 - - // 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); -} - -/* Domande: - 1. I valori delle variabili led, breve, lunga cambiano durante - l'esecuzione del programma? Sono variabili? - - 2. Le dichiarazioni delle variabili breve e lunga possono essere - accorpate nelle rispettive funzioni? - - 3. Esercizio: creare una funzione per effettuare un S.O.S. : ...---... - */ diff --git a/oggi/blink_3_1_while_veloce/blink_3_1_while_veloce.ino b/oggi/blink_3_1_while_veloce/blink_3_1_while_veloce.ino deleted file mode 100644 index 2409e27..0000000 --- a/oggi/blink_3_1_while_veloce/blink_3_1_while_veloce.ino +++ /dev/null @@ -1,47 +0,0 @@ -/* - 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 programma -const int acceleratore = 30 ; -int tempo ; // - -// ///////////////// -// 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 - - tempo = acceleratore * iterator ; // Varia il tempo di blink - brilla(tempo); // 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/oggi/blink_3_ciclo_while/blink_3_ciclo_while.ino b/oggi/blink_3_ciclo_while/blink_3_ciclo_while.ino deleted file mode 100644 index cef6207..0000000 --- a/oggi/blink_3_ciclo_while/blink_3_ciclo_while.ino +++ /dev/null @@ -1,53 +0,0 @@ -/* - Blink v4: while loop - - Accensione e spegnimanto di un LED utilizzando un ciclo - iterativo while per comandare il lampeggio. - - */ - -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/oggi/blink_6_doppio_leds/blink_6_doppio_leds.ino b/oggi/blink_6_doppio_leds/blink_6_doppio_leds.ino new file mode 100644 index 0000000..60615a4 --- /dev/null +++ b/oggi/blink_6_doppio_leds/blink_6_doppio_leds.ino @@ -0,0 +1,65 @@ +/* + Blink v5 + + Accensione e spegnimanto di 2 LED. + Nel circuito oltre al LED montato direttamente sul pin 13 + viene aggiunto un altro LED pilotato dal PIN 12. + + Ricordarsi di usare una resistenza da ~320ohms per il secondo LED. + Resistenza = (Voltaggio_Arduino - Forward_voltage_LED) / (ampere utilizzati) + R = (5v-1.8v) / 0.010a + R =320ohms + + + Schema: http://lab.piffa.net/schemi/led_single_bb.png + - http://lab.piffa.net/schemi/led_single_schem.png + + This example code is in the public domain. + */ + + +int led = 13; // Il LED onboard corrisponde al PIN 13 + // Ha una resistenza premontata +int red = 12; // Definiamo un altro led +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); // Abilitaiamo entrambi i LED + pinMode(red, OUTPUT); +} + +// /////////////// +// loop: Le istruzioni vengono eseguite all'infinito +void loop() { + 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 + + digitalWrite(red, HIGH); // turn the LED on (HIGH is the voltage level) + delay(lunga); // wait for a second + digitalWrite(red, LOW); // turn the LED off by making the voltage LOW + delay(lunga); +} + +/* Domande + * + * 1. Creare una funzione che sia slegata dal PIN con cui interagisce. + * + * 2. Come procede il flusso delle istruzioni per far brillare i LED? + * E' possibile far brillare i LED indipendentemente l'uno dall'altro? + * + * + * Nota: la risposta alla domanda 2 arrivera' a fine corso! + */ + + + + + + + diff --git a/oggi/button_1/button_1.ino b/oggi/button_1/button_1.ino new file mode 100644 index 0000000..6ea60b2 --- /dev/null +++ b/oggi/button_1/button_1.ino @@ -0,0 +1,45 @@ +/* + Input Condizionale + + Accensione e spegnimanto di un LED utilizzando un pin come input. + + Utilizzare un jumper per collegare il PIN Input + alternativamente a +5 o GND . + +Schema: +- http://lab.piffa.net/schemi/led_condizionale.png + + */ + +// Pin 13 has an LED connected on most Arduino boards. +// give it a name: +int led = 12; +int input = 2; + +// the setup routine runs once when you press reset: +void setup() { + // initialize the digital pin as an output. + pinMode(led, OUTPUT); // Il PIN e' attivato come output + pinMode(input, INPUT); // Il PIN e' attivato come output +} + +// the loop routine runs over and over again forever: +void loop() { + if (digitalRead(input) == HIGH) { // Verifica se il PIN input e' +5V + digitalWrite(led, HIGH); + } + if (digitalRead(input) == LOW) { // Verifica se il PIN input e' 0V + digitalWrite(led, LOW); + } +} + +/* Domande: + 1. Invertire il programma facendo in modo che il led si spenga + quando il bottone e' premuto. Considerare come ottenere lo stesso risultato + modificando il circuito. + 2. Modificare il programma per far brillare il led cinque volte al secondo + quando il bottone e' premuto. + 3. Si potrebbe usare un ciclo iterativo while invece che + un ciclo condizonale if? Che differenza c'e' tra il ciclo while e for? + 4. Domanda: cosa succede se il jumper input non e' collegato ne al +5 ne al ground? + */ diff --git a/oggi/button_2_serial_debug/button_2_serial_debug.ino b/oggi/button_2_serial_debug/button_2_serial_debug.ino new file mode 100644 index 0000000..9a5057c --- /dev/null +++ b/oggi/button_2_serial_debug/button_2_serial_debug.ino @@ -0,0 +1,50 @@ +/* + Input serial debug + + + Accensione e spegnimanto di un LED utilizzando un pin come input. + Utilizzare un bottone momentaneo per attivare il LED. + + Schemi del circuito per bottone in pull down: + - http://lab.piffa.net/schemi/button_1_bb.png + - http://lab.piffa.net/schemi/button_1_schem.png + +Tutorial: +- + */ + +int led = 12; +int input = 2; + +// the setup routine runs once when you press reset: +void setup() { + pinMode(led, OUTPUT); // Il PIN e' attivato come output + pinMode(input, INPUT); // Il PIN e' attivato come output + + Serial.begin(9600); // Attivazione seriale +} + +// the loop routine runs over and over again forever: +void loop() { + if (digitalRead(input) == HIGH) { // Verifica se il PIN input e' +5v + digitalWrite(led, HIGH); + Serial.println("Bottone premuto: circuito chiuso"); // Debug seriale + delay(200); + } + else { // Alterativa: se non e' +5v + digitalWrite(led, LOW); + Serial.println("Bottone libero: circuito aperto"); // Debug seriale + delay(200); + } +} + +/* Domande: + 1. invertire il programma facendo in modo che il led si spenga + quando il bottone e' premuto. Consoderare come ottenere lo stesso risultato + modificando il circuito. + 2. Modificare il programma per far brillare il led cinque volte al secondo + quando il bottone e' premuto. + 3. Si potrebbe usare un ciclo iterativo while invece che + un ciclo condizonale if? Che differenza c'e' tra il ciclo while e for? + 4. Domanda: cosa succede se il jumper input non e' collegato ne al +5 ne al gound? + */ diff --git a/oggi/serial_hello_world/serial_hello_world.ino b/oggi/serial_hello_world/serial_hello_world.ino new file mode 100644 index 0000000..7f8e814 --- /dev/null +++ b/oggi/serial_hello_world/serial_hello_world.ino @@ -0,0 +1,32 @@ +/* + * Hello World! + * + * This is the Hello World! for Arduino. + * It shows how to send data to the computer trough the serial connection + */ + +void setup() +{ + Serial.begin(9600); // Inposta la seriale a 9600 bps + // Se Arduino manda 9600 bit per secondo e devi manandare 12 Bytes di dati + // quanto tempo serve per mandare i dati? + + // Try to change bond rate in the monitor + + Serial.println("Hello World!"); // scrive hello world e ritorna a capo + + +// Serial.print("Il mio nome e': "); // Scrive senza ritorno a capo +// Serial.println("Andrea"); // Scrive con ritorno a capo +// Serial.flush(); // Assicura che tutto il testo venga scritto + +} + +void loop() +{ + // Provate a mettere i Serial.printl() qui, magari con un delay() +} + + + + diff --git a/oggi/switch_test_serial/switch_test_serial.ino b/oggi/switch_test_serial/switch_test_serial.ino new file mode 100644 index 0000000..9fa2b7d --- /dev/null +++ b/oggi/switch_test_serial/switch_test_serial.ino @@ -0,0 +1,19 @@ +/* + * Switch test program + */ + +int switchPin = 2; // Switch connected to digital pin 2 + +void setup() // run once, when the sketch starts +{ + Serial.begin(9600); // set up Serial library at 9600 bps + pinMode(switchPin, INPUT); // sets the digital pin as input to read switch +} + + +void loop() // run over and over again +{ + Serial.print("Read switch input: "); + Serial.println(digitalRead(switchPin)); // Read the pin and display the value + delay(200); +}