]> git.piffa.net Git - sketchbook_andrea/blob - serial/serial_3_rx_state/serial_3_rx_state.ino
serial + i2c
[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
52 Links:
53 - http://www.arduino.cc/en/Serial/Print
54 - http://www.arduino.cc/en/Tutorial/ASCIITable
55
56
57
58
59
60
61
62
63
64
65 Risposte in fondo:
66 1. Vedere i links proposti: .write scrive un byte mentre
67    .print manda un codice ASCII
68 2. 49
69 3. No, dato solo il cavo dalla TX alla RX .
70    Provare a fare un script con comunicazione bilaterale
71 4. No perche' non ci sarebbe sincronia tra i segnali,
72    vedere gli esercizi su I2C
73 */
74
75
76
77