--- /dev/null
+/*
+ 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 <sensorValue> milliseconds:
+ delay(sensorValue);
+ // turn the ledPin off:
+ digitalWrite(ledPin, LOW);
+ // stop the program for for <sensorValue> milliseconds:
+ delay(sensorValue);
+}
--- /dev/null
+/*
+ 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 <sensorValue> milliseconds:
+ delay(sensorValue);
+ // turn the ledPin off:
+ digitalWrite(ledPin, LOW);
+ // stop the program for for <sensorValue> milliseconds:
+ // print the results to the serial monitor:
+ Serial.print("sensor = " );
+ Serial.print(sensorValue);
+ Serial.print("\t delay = ");
+ Serial.println(sensorValue);
+ delay(sensorValue);
+}
+++ /dev/null
-/*
- 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
-}
-
+++ /dev/null
-/*
- 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
-}
+++ /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 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);
-}
-*/
+++ /dev/null
-/*
- 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
-}
+++ /dev/null
-/*
- 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
- }
-}
-
-
-
-
-
--- /dev/null
+/*
+ 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?
+ */
--- /dev/null
+/*
+ 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?
+ */
--- /dev/null
+/*
+ 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
+{
+}
+
+
+
--- /dev/null
+/*
+ * 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()
+}
+
+
+
+
--- /dev/null
+/*
+ * 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);
+}