4 Comunicazione seriale tra due schede arduino.
5 La prima scheda ha un bottone come input e
6 comunica con un altra scheda che monta un LED come output.
7 Il led della seconda si accende quando rileva
8 la pressione del bottone della prima.
10 Scema: http://lab.piffa.net/schemi/serial_common_bb.png
11 http://lab.piffa.net/schemi/serial_common_schem.png
14 // Seconda scheda: output
16 int led = 13; // Questa scheda ha spolo l'output
18 // the setup routine runs once when you press reset:
20 // initialize the digital pin as an output.
21 pinMode(led, OUTPUT); // Il PIN e' attivato come output
23 Serial.begin(9600); // Attiviamo la seriale
26 // the loop routine runs over and over again forever:
28 if (Serial.read() == 1) { // Verifica i dati ricevuti
29 digitalWrite(led, HIGH);
32 else if (Serial.read() == 0) { // Alterativa
33 digitalWrite(led, LOW);
39 Una connessione analogica permette di passare un solo tipo di segnale
40 con eventuale modulazione (8bit in output da PWM e 10bit di scansione
43 1. Quanti tipi di dati permette di trasmettere la seriale?
44 2 Comandare un LED RGB via PWM via seriale (da una Arduino o da un PC).
45 2.1 Come si comportano le latenze?
46 2.2 C'e' perdita di segnale?
47 3. Rifare lo sketch utilizzando una STATE MACHINE: quando il
48 il LED viene ACCESO / SPENTO alternativamente alla pressione
50 - Dove dovremo implementare il DEBOUNCE?
51 - Dove implementare la gestione dello STATO?
71 1. Qualunque tipo di dati, anche lunghi flussi di dati
72 2. Si dovra' trasmettere un segnale da 0-255 e sulla ricevente
73 interpretarlo con http://www.arduino.cc/en/Reference/ParseInt
74 2.1 Tra buffer di trasmissione, timeout e conversione dei valori
75 ci sara' una latenza nel trasferimento dei dati,
76 a differenza di una connessione analigica che e' instantanea
77 ma soggetta a degradazione del segnale.
78 2.2 Non c'e' degradazione o perdita del segnale essendo una
79 trasmissione di dati digitale (fin tanto che non si deteriora
81 3. Vedere lo sketch sucessivo, basandosi su gli sketch della
82 state machine per il bottne: basic/buttons/button_state_4_state_and_condition/