--- /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); // set up Serial library at 9600 bps
+ // If the Arduino transfers data at 9600 bits per second
+ // and you're sending 12 bytes of data, how long does it take to send over this information?
+
+ // Try to change bond rate in the monitor
+
+ Serial.println("Hello World!"); // prints hello with ending line break
+
+
+ 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() // run over and over again
+{
+ // Try to put the Serial.printl() statenent in here, with a delay maybe
+}
+
+
+
+
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
-int input = 8;
+int input = 2;
// the setup routine runs once when you press reset:
void setup() {
}
}
+// Modifiche:
+// 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.
-// Funzioni create dall'utente:
+// Domanda: cosa succede se il jumper input non e' collegato ne al +5 ne al gound?
--- /dev/null
+/*
+ Input serial
+
+
+ Accensione e spegnimanto di un LED utilizzando un pin come input.
+
+ Schemi del circuito:
+ - http://lab.piffa.net/schemi/button_1_bb.png
+ - http://lab.piffa.net/schemi/button_1_schem.png
+ */
+
+// Pin 13 has an LED connected on most Arduino boards.
+// give it a name:
+int led = 13;
+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
+
+ 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);
+ }
+}
+
+// Modifiche:
+// 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.
+
+// Domanda: cosa succede se il jumper input non e' collegato ne al +5 ne al gound?
+
+
+
*/
int switchPin = 2; // switch is connected to pin 2
-int val; // variable for reading the pin status
-int buttonState; // variable to hold the last button state
+int statoAttuale; // variable for reading the pin status
+int ultimoStato; // variable to hold the last button state
int buttonPresses = 0; // Counter for the button
void setup() {
pinMode(switchPin, INPUT_PULLUP); // Set the switch pin as input
Serial.begin(9600); // Set up serial communication at 9600bps
- buttonState = digitalRead(switchPin); // read the initial state
+ ultimoStato = digitalRead(switchPin); // read the initial state
}
void loop(){
- val = digitalRead(switchPin); // read input value and store it in val
- delay(100); // Debounce
- if ((val != buttonState) && (val == HIGH)) { // check if the button is pressed
+ statoAttuale = digitalRead(switchPin); // read input value and store it in val
+ delay(100); // Debounce, sort of...
+ if ((statoAttuale != ultimoStato) && (statoAttuale == HIGH)) { // check if the button is pressed
buttonPresses++ ;
Serial.print("Button has been pressed ");
Serial.print(buttonPresses);
Serial.println(" times.");
}
- buttonState = val; // save the new state in our variable
+ ultimoStato = statoAttuale; // save the new state in our variable
}
/*
- * Alternating switch
+ Stato di un bottone
+
+ Legge lo stato di un input
+
*/
int switchPin = 2; // switch is connected to pin 2
-int val; // variable for reading the pin status
-int buttonState; // variable to hold the last button state
+int statoAttuale; // variable for reading the pin status
+int ultimoStato; // variable to hold the last button state
void setup() {
pinMode(switchPin, INPUT); // Set the switch pin as input
Serial.begin(9600); // Set up serial communication at 9600bps
- buttonState = digitalRead(switchPin); // read the initial state
+ ultimoStato = digitalRead(switchPin); // read the initial state
}
void loop(){
- val = digitalRead(switchPin); // read input value and store it in val
-
- if (val != buttonState) { // the button state has changed!
- if (val == LOW) { // check if the button is pressed
- Serial.println("Button just pressed");
- } else { // the button is -not- pressed...
- Serial.println("Button just released");
+ statoAttuale = digitalRead(switchPin); // read input value and store it in val
+ // delay(20) // riduce leffetto bounce
+ if (statoAttuale != ultimoStato) { // the button state has changed!
+ if (statoAttuale == HIGH) { // check if the button is pressed
+ Serial.println("Bottone premuto");
+ }
+ else { // the button is -not- pressed...
+ Serial.println("Bottone rilasciato");
}
}
- buttonState = val; // save the new state in our variable
+ ultimoStato = statoAttuale; // save the new state in our variable
}
+
--- /dev/null
+/*
+ Stato di un bottone
+
+ Legge lo stato di un input
+
+ */
+int led = 13;
+int buttonPin = 2;
+int statoAttuale; // variable for reading the pin status
+int ultimoStato; // variable to hold the last button state
+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); // Set up serial communication at 9600bps
+ ultimoStato = digitalRead(buttonPin); // read the initial state
+ ledStatus = 0;
+}
+
+void loop(){
+ statoAttuale = digitalRead(buttonPin); // read input value and store it in var
+ delay(20); // riduce l'effetto bounce
+ if (statoAttuale != ultimoStato) { // the button state has changed!
+ if (statoAttuale == HIGH) { // check if the button is pressed
+ 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; // save the new state in our variable
+ digitalWrite(led, ledStatus); // setta il led allo stato richiesto
+
+}
+
+
+
--- /dev/null
+/*
+ Stato di un bottone
+
+ Legge lo stato di un input
+
+ */
+int led = 13;
+int buttonPin = 2;
+int statoAttuale; // variable for reading the pin status
+int ultimoStato; // variable to hold the last button state
+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); // Set up serial communication at 9600bps
+ ultimoStato = digitalRead(buttonPin); // read the initial state
+ ledStatus = 0;
+}
+
+void loop(){
+ statoAttuale = digitalRead(buttonPin); // read input value and store it in var
+ delay(20); // riduce l'effetto bounce
+ if (statoAttuale != ultimoStato && statoAttuale == HIGH) {
+ // the button state has changed AND the button is pressed
+ 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; // save the new state in our variable
+ digitalWrite(led, ledStatus); // setta il led allo stato richiesto
+
+}
+
+
+
--- /dev/null
+/*
+ Stato di un bottone
+
+ Modifica lo stato di un led in base all'input di un bottone.
+ Viene usato un ciclo condizionale ramificato
+ e due variabili per confrontare il periodo di pressione del bottone.
+
+ */
+int led = 13;
+int buttonPin = 2;
+int statoAttuale; // variable for reading the pin status
+int ultimoStato; // variable to hold the last button state
+int ledStatus = 0; // varabile per mantenere lo stato del led
+
+long ultimoCambio = 0; // Momento in cui e' stato attivato il PIN input
+long debounceDelay = 30; // Tempo di debounce
+
+void setup() {
+ pinMode(buttonPin, INPUT); // Set the switch pin as input
+ pinMode(led, OUTPUT);
+ Serial.begin(9600); // Set up serial communication at 9600bps
+ ultimoStato = digitalRead(buttonPin); // read the initial state
+}
+
+void loop(){
+ int lettura = digitalRead(buttonPin); // read input value and store it in var
+ if (lettura != ultimoStato) { // controlla se il bottone ha cambiato stato
+ ultimoCambio = millis() ; // Registra il tempo attuale
+ }
+
+ if ((millis() - ultimoCambio) > debounceDelay) { // controllo che il periodo di tempo sia sufficente
+ if (lettura != statoAttuale) { // Il bottone ha cambiato stato
+ statoAttuale = lettura; // Evitiamo che la precedente condizione si ripeta ad oltranza
+ if (statoAttuale == HIGH) { // check if the button is pressed
+ Serial.println("Button premuto");
+
+ ledStatus = !ledStatus ; // Inverte lo stato del LED
+ Serial.print("Stato del LED: "); // DEBUG
+ Serial.println(ledStatus) ;
+ }
+ }
+ }
+ ultimoStato = lettura; // save the new state in our variable
+ digitalWrite(led, ledStatus); // setta il led allo stato richiesto
+
+}
+
+
+
+
+
+
--- /dev/null
+/*
+ Stato di un bottone
+
+ Legge lo stato di un input
+
+ */
+int led = 13;
+int buttonPin = 2;
+int statoAttuale; // variable for reading the pin status
+int ultimoStato; // variable to hold the last button state
+int ledStatus = 0; // varabile per mantenere lo stato del led
+
+long ultimoCambio = 0; // Momento in cui e' stato attivato il PIN input
+long debounceDelay = 100; // Tempo di debounce
+
+void setup() {
+ pinMode(buttonPin, INPUT); // Set the switch pin as input
+ pinMode(led, OUTPUT);
+ Serial.begin(9600); // Set up serial communication at 9600bps
+ ultimoStato = digitalRead(buttonPin); // read the initial state
+}
+
+void loop(){
+ statoAttuale = digitalRead(buttonPin); // read input value and store it in var
+
+ if (statoAttuale == HIGH && statoAttuale != ultimoStato && millis() - ultimoCambio > debounceDelay ) {
+ //
+ Serial.println("Button premuto");
+
+ ledStatus = !ledStatus ; // Inverte lo stato del LED
+ Serial.print("Stato del LED: "); // DEBUG
+ Serial.println(ledStatus) ;
+ ultimoCambio = millis() ; // Registra il tempo attuale
+ }
+
+ // Serial.print("statoAttuale ");
+ // Serial.println(statoAttuale);
+ // Serial.println(ultimoStato);
+ //delay(400);
+ ultimoStato = statoAttuale; // save the new state in our variable
+ digitalWrite(led, ledStatus); // setta il led allo stato richiesto
+
+
+}
+
+
+
+
+
+
+
+
/*
Analog comm: RX
- Comunicazione seriale tra due schede arduino.
+ Comunicazione analogica tra due schede arduino.
La prima scheda ha un bottone come input e
comunica con un altra scheda che monta un LED come output.
Il led della seconda si accende quando rileva
--- /dev/null
+/*
+ Debug con macro per il preprocessore
+
+ Blink v1
+
+ Accensione e spegnimanto di un LED utilizzando variabili
+ per impostare la velocita' del lampeggio.
+
+ Turns on an LED on for one second, then off for one second, repeatedly.
+
+ 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
+
+#define DEBUG
+// Debug
+#ifdef DEBUG
+ #define DEBUG_PRINT(x) Serial.print (x)
+ #define DEBUG_PRINTDEC(x) Serial.print (x, DEC)
+ #define DEBUG_PRINTLN(x) Serial.println (x)
+#else
+ #define DEBUG_PRINT(x)
+ #define DEBUG_PRINTDEC(x)
+ #define DEBUG_PRINTLN(x)
+#endif
+
+// the setup routine runs once when you press reset:
+void setup() {
+ // initialize the digital pin as an output.
+ pinMode(led, OUTPUT);
+ Serial.begin(9600);
+}
+
+// the loop routine runs over and over again forever:
+void loop() {
+ digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
+ DEBUG_PRINTLN("Stato HIGHT");
+ delay(breve); // wait for a second
+ digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
+ DEBUG_PRINTLN("Stato LOW");
+ delay(breve); // wait for a second
+}
+
+