4 Comunicazione I2C tra due schede Arduino.
5 La scheda master ha un bottone come input e
6 comunica con altre schede che monta un LED come output.
7 Il led della seconda si accende quando rileva
8 la pressione del bottone della prima.
10 Schema: http://lab.piffa.net/schemi/i2c_bb.jpg
16 int led = 13; // Questa scheda ha spolo l'output
17 int ledState = 0; // stato attuale del LED
18 int incomingByte; // Dato ricevuto via seriale
21 // the setup routine runs once when you press reset:
23 // initialize the digital pin as an output.
24 pinMode(led, OUTPUT); // Il PIN e' attivato come output
26 Serial.begin(9600); // Attiviamo la seriale per debug
28 Serial.println("Slave / RX Debug:");
30 Wire.begin(2); // join i2c bus (address optional for master)
31 Wire.onReceive(receiveEvent); // Evento in ricezione
36 digitalWrite(led, ledState); // Aggiorna lo stato del LED
41 void receiveEvent(int howMany)
43 Serial.print("Lo slave ha ricevuto il seguente messaggio: ");
44 while( Wire.available()) // loop through all but the last
46 incomingByte = Wire.read(); // receive byte as a character
47 Serial.print(incomingByte, DEC); // print the character
49 if (incomingByte == 49) { // Verifica se viene ricevuto il dato 1
50 ledState = !ledState ; // Cambia lo stato del LED
58 1. Implementare piu' bottoni per controllare piu' schede
59 2. Implementare un messaggio di feedback dallo slave al master per uk cambio di stato del led