Cari ragazzi, sono felice che questo post abbia finito col porre le basi di tanti fecondi sviluppi.
Comunque, ieri sera sono riuscito con un po' di culo a fare quel che mi serviva in modo piuttosto semplice, senza comporre e scomporre stringhe.
È molto banale ma bastava spedire un byte alla volta in sequenza e leggerne uno alla volta.
Una cosa così per il master :
byte x1 = map(analogRead(A0),0,1023,0,255);
byte x2 = map(analogRead(A1),0,1023,0,255);
byte x3 = map(analogRead(A2),0,1023,0,255);
{
Wire.beginTransmission(5); // transmit to device #4
Wire.write(x1); // sends one byte
Wire.write(x2); // sends one byte
Wire.write(x3); // sends one byte
Wire.endTransmission(); // stop transmitting
}
E una cosa così per lo slave :
void receiveEvent(int howMany)
{
while(1 < Wire.available()) // loop through all but the last
{
byte x1 = Wire.read();
byte x2 = Wire.read();
byte x2 = Wire.read();
Serial.print(x1);
Serial.print(",");
Serial.print(x2);
Serial.print(",");
Serial.println(x3);
} // print the integer
Non pensavo fosse così semplice, non so se la cosa si complessifichi molto mandando valori differenti da quello che é un byte per volta, come qui, ma per fortuna è quello che serviva a me per ora.
Poi vedrò come implementare meglio un sistema di richieste e risposte. Se a qualcuno servisse, così dovrebbe funzionare. ;-)