From: eaman Date: Thu, 1 Dec 2016 11:25:57 +0000 (+0100) Subject: oggi X-Git-Url: http://git.piffa.net/web?a=commitdiff_plain;h=cb6841d61dc7b6e25912b2510926ef0715098730;p=sketchbook_andrea oggi --- diff --git a/oggi/analogInput_1/analogInput_1.ino b/oggi/analogInput_1/analogInput_1.ino new file mode 100644 index 0000000..231a9ab --- /dev/null +++ b/oggi/analogInput_1/analogInput_1.ino @@ -0,0 +1,54 @@ +/* + Analog Input + Demonstrates analog input by reading an analog sensor on analog pin 0 and + turning on and off a light emitting diode(LED) connected to digital pin 13. + The amount of time the LED will be on and off depends on + the value obtained by analogRead(). + + The circuit: + * Potentiometer attached to analog input 0 + * center pin of the potentiometer to the analog pin + * one side pin (either one) to ground + * the other side pin to +5V + * LED anode (long leg) attached to digital output 13 + * LED cathode (short leg) attached to ground + + * Note: because most Arduinos have a built-in LED attached + to pin 13 on the board, the LED is optional. + + + Created by David Cuartielles + modified 30 Aug 2011 + By Tom Igoe + + This example code is in the public domain. + + http://arduino.cc/en/Tutorial/AnalogInput + + Schema: http://lab.piffa.net/schemi/potenziometro_bb.png + + */ + +const int sensorPin = A0; // select the input pin for the potentiometer +const int ledPin = 13; // select the pin for the LED +int sensorValue = 0; // variable to store the value coming from the sensor + +void setup() { + // declare the ledPin as an OUTPUT: + pinMode(ledPin, OUTPUT); + // Non e' necessario dichiarare un pin come input: + // tutti i pin di default sono input +} + +void loop() { + // read the value from the sensor: + sensorValue = analogRead(sensorPin); + // turn the ledPin on + digitalWrite(ledPin, HIGH); + // stop the program for milliseconds: + delay(sensorValue); + // turn the ledPin off: + digitalWrite(ledPin, LOW); + // stop the program for for milliseconds: + delay(sensorValue); +} diff --git a/oggi/analogInput_2_serial/analogInput_2_serial.ino b/oggi/analogInput_2_serial/analogInput_2_serial.ino new file mode 100644 index 0000000..fa03276 --- /dev/null +++ b/oggi/analogInput_2_serial/analogInput_2_serial.ino @@ -0,0 +1,57 @@ +/* + Analog Input + Demonstrates analog input by reading an analog sensor on analog pin 0 and + turning on and off a light emitting diode(LED) connected to digital pin 13. + The amount of time the LED will be on and off depends on + the value obtained by analogRead(). + + The circuit: + * Potentiometer attached to analog input 0 + * center pin of the potentiometer to the analog pin + * one side pin (either one) to ground + * the other side pin to +5V + * LED anode (long leg) attached to digital output 13 + * LED cathode (short leg) attached to ground + + * Note: because most Arduinos have a built-in LED attached + to pin 13 on the board, the LED is optional. + + + Created by David Cuartielles + modified 30 Aug 2011 + By Tom Igoe + + This example code is in the public domain. + + http://arduino.cc/en/Tutorial/AnalogInput + + */ + +const int sensorPin = A0; // select the input pin for the potentiometer +const int ledPin = 13; // select the pin for the LED +int sensorValue = 0; // variable to store the value coming from the sensor + +void setup() { + // declare the ledPin as an OUTPUT: + pinMode(ledPin, OUTPUT); + // initialize serial communications at 9600 bps: + Serial.begin(9600); +} + +void loop() { + // read the value from the sensor: + sensorValue = analogRead(sensorPin); + // turn the ledPin on + digitalWrite(ledPin, HIGH); + // stop the program for milliseconds: + delay(sensorValue); + // turn the ledPin off: + digitalWrite(ledPin, LOW); + // stop the program for for milliseconds: + // print the results to the serial monitor: + Serial.print("sensor = " ); + Serial.print(sensorValue); + Serial.print("\t delay = "); + Serial.println(sensorValue); + delay(sensorValue); +} 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 7a92d6b..0000000 --- a/oggi/blink_3_1_while_veloce/blink_3_1_while_veloce.ino +++ /dev/null @@ -1,43 +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. - Introduzione const. - - */ - -const int led = 13; // Il valore non cambia - // durante l'esecuzione del programma -const int acceleratore = 30 ; -int tempo ; // - -void setup() { - pinMode(led, OUTPUT); -} - -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 48065db..0000000 --- a/oggi/blink_3_ciclo_while/blink_3_ciclo_while.ino +++ /dev/null @@ -1,52 +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_4_1_ciclo_for_veloce/blink_4_1_ciclo_for_veloce.ino b/oggi/blink_4_1_ciclo_for_veloce/blink_4_1_ciclo_for_veloce.ino deleted file mode 100644 index a330935..0000000 --- a/oggi/blink_4_1_ciclo_for_veloce/blink_4_1_ciclo_for_veloce.ino +++ /dev/null @@ -1,85 +0,0 @@ -/* - 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); -} -*/ diff --git a/oggi/blink_4_ciclo_for/blink_4_ciclo_for.ino b/oggi/blink_4_ciclo_for/blink_4_ciclo_for.ino deleted file mode 100644 index 70e4ef2..0000000 --- a/oggi/blink_4_ciclo_for/blink_4_ciclo_for.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. - - */ - -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 -} diff --git a/oggi/blink_5_while_funzione_argomento/blink_5_while_funzione_argomento.ino b/oggi/blink_5_while_funzione_argomento/blink_5_while_funzione_argomento.ino deleted file mode 100644 index 1f43d12..0000000 --- a/oggi/blink_5_while_funzione_argomento/blink_5_while_funzione_argomento.ino +++ /dev/null @@ -1,67 +0,0 @@ -/* - Blink v3 - Accensione e spegnimanto di un LED utilizzando un ciclo - iterativo while per comandare il lampeggio. - Questa volta il ciclo while() e' relegato in una funzione - che accetta come argomento il numero di ripetizionei da effettuare. - - This example code is in the public domain. - */ - -// 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; - -// the setup routine runs once when you press reset: -void setup() { - // initialize the digital pin as an output. - pinMode(led, OUTPUT); -} - -// the loop routine runs over and over again forever: -void loop() { - lampeggia(8); - lento(); // accende e spegne lentamente il LED - // Domanda: a quanto equivale iterator ora? -} - -// 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); -} - -void lampeggia(int ripetizioni) { - // Accende un LED per un numero stabilito di volte - - // Questa funziona accetta un parametro: ripetizioni - int i = 0; - while (i < ripetizioni) { - rapido(); // accende e spegne rapidamente il LED - i = i + 1 ; // incrementa l'iteratore - // i++ ; // equivalente - } -} - - - - - diff --git a/oggi/button_1/button_1.ino b/oggi/button_1/button_1.ino new file mode 100644 index 0000000..f409028 --- /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, if 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..5dbcf80 --- /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/operator_1_basic/operator_1_basic.ino b/oggi/operator_1_basic/operator_1_basic.ino new file mode 100644 index 0000000..1a8bd6b --- /dev/null +++ b/oggi/operator_1_basic/operator_1_basic.ino @@ -0,0 +1,63 @@ +/* + Operatori base + + */ + +int a = 5; +int b = 10; +int c = 20; + +void setup() // run once, when the sketch starts +{ + Serial.begin(9600); // set up Serial library at 9600 bps + + Serial.println("Here is some math: "); + + Serial.print("a = "); + Serial.println(a); + Serial.print("b = "); + Serial.println(b); + Serial.print("c = "); + Serial.println(c); + + Serial.print("a + b = "); // add + Serial.println(a + b); + + Serial.print("a * c = "); // multiply + Serial.println(a * c); + + Serial.print("c / b = "); // divide + Serial.println(c / b); + + Serial.print("b - c = "); // subtract + Serial.println(b - c); + + Serial.print("b modulo a = "); // Calculates the remainder when one integer is divided by another. + Serial.println(b % a); + + Serial.print("8 modulo 3 = "); // Calculates the remainder when one integer is divided by another. + Serial.println(8 % 3); + + Serial.print("a incrementato ++ = "); // Increments + Serial.println(a++); // Increments AFTER the call + Serial.print("valore attuale di a: "); + Serial.println(a); + Serial.print("++a incrementato = "); + Serial.println(++a); // Increments BEFORE the call + + + Serial.print("b decrementato -- = "); // Decrement + Serial.println(b--); + Serial.print("valore attuale di b: "); + Serial.println(b); + Serial.print("--b decrementato = "); + Serial.println(--b); + +} + +void loop() // we need this to be here even though its empty +{ +} + + + 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); +}