Salve arduiniani :D, da qualche giorno che leggo e studio la comunicazione I2C.
Attraverso la libreria "Wire" sono riuscito a far comunicare 2 arduini, uno da master e l'altro da slave.
Il passo successivo che vorrei fare è quello di far comunicare attraverso questa comunicazione un'altra scheda non arduino, con già delle resistenze di pull-up, quindi da codice ho disattivato le "resistenze" di arduino e ho collegato in modo penso in modo corretto le due schede. la scheda arduino si dovrà comportare da slave quindi ho caricato il seguente codice
void setup()
{
Wire.begin(0xa0); // Start I2C on Address 0x0A
digitalWrite(SCL,0);
digitalWrite(SDA,0);
Wire.onReceive(receiveI2C); // Receive Event from Master
Serial.begin(9600); // We will spit it back out on the serial line.
}
void loop()
{
delay(1);
}
// When data is received, this function is called.
void receiveI2C(int bytesIn)
{
while(1 < Wire.available()) // loop through all but the last
{
char c = Wire.read(); // Receive the incoming byte
Serial.print(c); // Print the incoming byte as a character on the Serial line.
}
int x = Wire.read(); // Read the incoming byte
Serial.println(x); // Print the incoming byte
}
Premetto che l'altra scheda "non arduino" già ha funzionato con questa determinata comunicazione ma purtroppo con questa non va.