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
15 // Seconda scheda: output
17 int led = 13; // Questa scheda ha spolo l'output
18 int ledState = 0; // stato attuale del LED
19 int incomingByte; // Dato ricevuto via seriale
22 // the setup routine runs once when you press reset:
24 // initialize the digital pin as an output.
25 pinMode(led, OUTPUT); // Il PIN e' attivato come output
27 Serial.begin(9600); // Attiviamo la seriale
30 // the loop routine runs over and over again forever:
32 if (Serial.available() > 0) {
33 incomingByte = Serial.read();
34 if (incomingByte == 1) { // Verifica se viene ricevuto il dato 1
35 ledState = !ledState ; // Cambia lo stato del LED
38 Serial.print("I received: ");
39 Serial.println(incomingByte);
42 digitalWrite(led, ledState); // Aggiorna lo stato del LED
47 1. Che differenza c'e' tra Serial.write() e Serial.print()?
48 2. Qual'e' il codice ASCII per indicare il numero decimale 1?
49 3. Servono entrambi i cavi per la connessione?
50 4. Potrei attaccare una terza arduino?
51 4.1 Posso avere piu' trasmittenti sullo stesso canale?
52 4.2 Posso avere piu' riceventi sullo stesso canale?
55 - http://www.arduino.cc/en/Serial/Print
56 - http://www.arduino.cc/en/Tutorial/ASCIITable
68 1. Vedere i links proposti: .write scrive un byte mentre
69 .print manda un codice ASCII
71 3. No, dato solo il cavo dalla TX alla RX .
72 Provare a fare un script con comunicazione bilaterale
73 4. No perche' non ci sarebbe sincronia tra i segnali,
74 vedere gli esercizi su I2C