i2C "Master" soll Array an "Slave" senden

Master
Ja, die sizeof(Array) ist gut.

Slave

volatile byte Array[3];
volatile bool newData = false;

void receiveEvent(int howMany)
{
  if(howMany == 3)  // 3 oder sizeof(Array)
  {
    for(int i=0; i<3; i++)  // 3 oder sizeof(Array) oder howMany
    {
      Array[i] = Wire.read();
    }
    newData = true;
  }
}

oder:

void receiveEvent(int howMany)
{
  if(howMany == 3)
  {
    Wire.readBytes( Array, 3);
    newData = true;
  }
}

und:

void loop()
{
  if(newData)
  {
    for(int i=0; i<3; i++)
    {
      Serial.println(Array[i]);
    }
    Serial.println();
    newData = false;
  }
}
1 Like