Conflitto comunicazione I2C e BLuetooth

Ciao,

ho realizzato un collegamento I2C tra due schede Arduino (mkrfox1200 e una con le caratteristiche di ATmega328p ) . La scheda ATmega328p comprende un modulo BLE, attraverso cui comunico con un’altra scheda uguale. Non riesco a far funzionare simultaneamente i due sistemi di comunicazione: per ricevere sulla mkrfox i dati ottenuti via Bluetooth, vengono bloccati gli altri dati inviati via I2C, e viceversa.

Questo è il codice:

MKRFOX

#include <Wire.h>

#define ADDRESS 8

int var1 = 0;    
int var2 = 0;
int var3 = 0;   


void setup(){
  Wire.begin();                 // Avvia il bus I2C, indirizzo opzionale per il master 
}

void loop(){
                   
  Wire.requestFrom(ADDRESS, 3);   // richiede 2 byte al dispositivo slave
  
  while (Wire.available()) {
    var1 = Wire.read();     // leggi il byte ricevuto
    var2 = Wire.read();     // leggi il byte ricevuto
    var3 = Wire.read();     // leggi il byte ricevuto
  }  

  Serial.print("var1 = ");
  Serial.println(var1);
  Serial.print("var2 = ");
  Serial.println(var2);
  Serial.print("var3 = ");
  Serial.println(var3);

  delay(10000);

}

ATMEGA 1 + BLuetooth

#include <Wire.h>


#define ADDRESS 8

int var1 = 0;    //variabile 
int var2 = 0;    //variabile 
int var3 = 0;    // variabile Bluetooth


void setup(){

  Serial.begin(115200);  // comunicazione Bluetooth
  pinMode(5,INPUT);    //dati in INPUT dal pin5, legge il sensore
  pinMode(6,INPUT);    //dati in INPUT dal pin6, legge il sensore

  Wire.begin(ADDRESS);
  Wire.onRequest(requestEvent); // esegue la funzione quando ha una richiesta

}

void loop(){
  var1 = digitalRead(5);
  var2 = digitalRead(6);
  delay(100);

  while(Serial.available()) {     
    var3 = Serial.read();              // dati Bluetooth
  }

}

void requestEvent(){
  Wire.write(var1); 
  Wire.write(var2);
  Wire.write(var3);

}

ATMEGA 2 + BLuetooth

int var3 = 5;    //variabile che memorizza il valore letto


void setup(){
  Serial.begin(115200);
  pinMode(5,INPUT);    //dati in INPUT dal pin5, legge il sensore
}

void loop(){
  var3 = digitalRead(5);
  delay(100);
  Serial.write(liv3);
  delay(1000); 
}

Avete dei suggerimenti da darmi? Grazie

Quale scheda é il master?
Ciao Uwe

Ciao,

mkrfox --> master reader

atmega328p --> slave sender