i2c Daten in Loop übernehmen

Guten Tag,
dass ich Anfänger bin, werdet ihr anhand meine Frage wohl erkennen.

Ich übertrage von einem Arduino Nano Texte zu einem weiteren Nano.
Wie bekomme ich die Texte in "void loop" um diese auszuwerten?

Master:

#include <Wire.h>

void setup() {
 Serial.begin(9600);
 Wire.begin();
}


void loop() {

 String text2 = String(x, DEC);
 String text3 = String(y, DEC);


 Wire.beginTransmission(9);
 Wire.write("Hallo Leute" );
 Wire.endTransmission();

 delay(500);

}

Slave:

#include <Wire.h>

void setup() {
 Serial.begin(9600);
  Wire.begin(9);
  Wire.onReceive(receiveEvent);
}

void receiveEvent(int bytes) 
{
 while (1 < Wire.available()) 
 {
   char buchstabe = Wire.read();    
   Serial.print(buchstabe);
  
 }
 char buchstabe = Wire.read();
 Serial.println(buchstabe);
}

void loop() {

 
   delay(100);

   char text3[32] = "Hallo Leute";
   if (!strcmp(buchstabe, text3)) {
     digitalWrite(4, HIGH);
   }

 }

Danke schon mal im Voraus

Wire.onReceive(receiveEvent);
Diese Funktion wird in einer ISR aufgerufen.

Darum ist dieses darin verboten:

Serial.print(buchstabe);

Und jetzt zum Problem!
Du benötigst eine als volatile deklarierte Übergabevariable, welche dann in loop() atomar ausgelesen wird.

Danke und AHA - aber was bedeutet das - wie habe ich das einzurichten?

Lesestoff:

Einführung in den I2C-Bus und I2C - Two-Wire Peripheral Interface - for Arduino