Hallo!
Vielleicht kann mir jemand helfen!
Habe eine Master-Slave via I2C realisiert und kann mir folgendes nicht ganz erklären.
Wenn ich bei dem Master-Sketch die Laufvariable i mit einer geraden Zahl initialisiere (z.B. i = 8, 10) dann geht gar nichts - Led's an Pin 10, 11, 12, 13 blinken nicht mehr.
Bei einer ungeraden Zahl z.B. i= 3, i=9 funktioniert die ganze Sache gut.
Habe schon mal den Code beigelegt - vielleicht findet jemand den Fehler auf Anhieb.
Danke Papua

+++++++ Master Sketch +++++++++

Code:
#include <Wire.h>
int i = 0;

void setup()
{
  //Teilnehmer am I2C-Bus
  //keine Adresse, da Master
  Wire.begin();
}
void loop()
{  
    delay(10);  // Durchlaufzeit
    //Datenübertragung an Empfänger mit Ardesse 3 starten
    Wire.beginTransmission(3);
    // Wert zum Senden
    int dataval = i;
    // Daten senden
    Wire.write(dataval);
    // Datenübertragung stoppen
    Wire.endTransmission();
    //weitere Anweisungen    
    i++;    
    
    if(i == 14)  // nur Pin 10 - 13 werden für die Led's verwendet 
    {
      i = 9;
    } 
  }
++++++++ Slave-Sketch ++++++++

Code:
#include <Wire.h>
boolean running = false;  // Var. zum toggeln
int TasterPin = 2;        // Taster für die Freigabe LED blinken am Slave

void setup()
{
  // Teilnehemer am Bus als Slave mit der Adresse #3
  Wire.begin(3);   
  // falls Daten empfangen wurden, Funktion 
  Wire.onReceive(receiveData); 
  
  pinMode(10, OUTPUT);  // Led an Pin 10
  pinMode(11, OUTPUT);  // Led an Pin 11
  pinMode(12, OUTPUT);  // Led an Pin 12
  pinMode(13, OUTPUT);  // Led on Board

  pinMode(TasterPin, INPUT);    // Taster als Eingang def.
  digitalWrite(TasterPin, HIGH);  // Pullup ein  
}
void loop()
{
  // delay(100);
}

// Funktion ausführen, falls Daten empfangen
void receiveData(int AnzahlBytes)
{
  //Daten empfangen und in Variable ablegen
  int recData = Wire.read();
  //Verarbeitung der empfangenen Daten
  if(digitalRead(TasterPin) == LOW)    // Ist Taster gedrückt (Pin 0 auf Masse)
  {  
    running = !running;                // Wert der Variablen hin- und herschalten (toggle)
    digitalWrite(recData, running);    // toggle LED's
  }
}