Arduinos finden sich nicht über I2C

HotSystems:
Kein Problem, da ich aktuell keinen Schlips trage, fühle ich mich auch nicht draufgetreten.

Is ja auch Wochenende :sunglasses:

HotSystems:
In deinem I2C-Master vermisse ich ein "Wire.beginTransmission(x);

Funktion:

void sendRPM(int x){
  Wire.beginTransmission(slaveAddress);  // begin transmission to slave device
  Wire.write(x & 0xff);       // send first byte
  Wire.write(x >> 8);         // send second byte shiftet by 8 bits
  Wire.endTransmission();     // stop transmitting
}

Aufruf:

//calculate the RPM
  if (ignitionCount > 20){ 
       
    detachInterrupt(digitalPinToInterrupt(interPin1));//Disable interrupt when calculating
    
    fCrank = (1/(((millis()-t)/ignitionCount)/1000.0)); 
    rpm = fCrank * 60;
    ignitionCount = 0;
    
//    Serial.print("Crank frequency  ");
//    Serial.println(fCrank);
//    Serial.print("RPM  ");
//    Serial.println(rpm);
//    Serial.println("-------------");
    
    sendRPM(rpm);     ////////////////////////////// <-DA
  

    //drive the LED-Bar
    val = map(rpm, 0, 12000, 0, 8);
    digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, MSBFIRST, data[val]);
    digitalWrite(latchPin, HIGH);

        
    attachInterrupt(digitalPinToInterrupt(interPin1),isIgnition,RISING);
    t=millis();
  }

Tommy56:
Der Mega wird als Master bezeichnet, fungiert aber als I2C-Slave. Er bekommt die Daten vom Nano (I2C-Slave) hin geknallt, egal ob er Zeit hat sie zu verarbeiten oder nicht. Besonders während der Delay(2000) kann er nichts verarbeiten. Nach weiteren Delays habe ich nicht gesucht.

Guter Einwand.
Das Delay ist übrigens weit und breit das einzige und ist nur dafür da, den Intro-Screen lange genug zu erhalten um ihn zu sehen :smiley:
Diese if Schleife (?) wird, bedingt durch state = false; danach auch nie wieder durchlaufen.

Und in dem Pulsgeber ist nichtmal die Wire.h eingebunden.
Geschweige denn entsprechnder Code vorhanden.
Noch dazu ist er nicht an den I2C Bus angeschlossen, sondern direkt an die Interrupt-Pins vom Sensor.

Ich habe inzwischen auch neue Erkenntnisse.
Die U8g.lib scheint die Wurzel allen Übels zu sein.
Aber ich kann dazu noch nichts definitives sagen...bin noch am testen.

Da ich aber zum jetzigen Zeitpunkt bereits Daten auf dem Mega erhalte und auch auf dem Display dargestellt kriege kann man sagen, dass die Kommunikation also möglich ist.
Allerdings noch sehr hakelig.

Werde mich gleich nochmal melden.

Gruß

schUk0