]> git.piffa.net Git - sketchbook_andrea/blob - serial/serial_3_rx_state/serial_3_rx_state.ino
multiple serials
[sketchbook_andrea] / serial / serial_3_rx_state / serial_3_rx_state.ino
1 /*
2   Serial comm: RX
3  
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.
9  
10   Scema: http://lab.piffa.net/schemi/serial_common_bb.png
11         http://lab.piffa.net/schemi/serial_common_schem.png
12  */
13
14
15 // Seconda scheda: output
16 // PIN 0 = RX
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
20
21
22 // the setup routine runs once when you press reset:
23 void setup() {                
24   // initialize the digital pin as an output.
25   pinMode(led, OUTPUT);       // Il PIN e' attivato come output
26
27   Serial.begin(9600); // Attiviamo la seriale
28 }
29
30 // the loop routine runs over and over again forever:
31 void loop() {
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
36
37       // debug
38       Serial.print("I received: ");
39       Serial.println(incomingByte);
40     }
41   }
42   digitalWrite(led, ledState); // Aggiorna lo stato del LED
43 }
44
45 /* Domande
46
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?
53
54 Links:
55 - http://www.arduino.cc/en/Serial/Print
56 - http://www.arduino.cc/en/Tutorial/ASCIITable
57
58
59
60
61
62
63
64
65
66
67 Risposte in fondo:
68 1. Vedere i links proposti: .write scrive un byte mentre
69    .print manda un codice ASCII
70 2. 49
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
75 */
76
77
78
79