Hallo,

ich habe einen Uno (Teilnehmer B) mit einem Mega (Teilnehmer A) über ihre seirellen SS's verbunden (beim Mega die SS2). Der Mega soll, wenn er vom Uno ein "ja" empfängt, nur Pin 13 auf HIGH setzen, ein "nein" an den Uno senden und 1 s warten. Wenn er vom Uno ein "nein" empfängt, Pin 13 auf LOW setzen, ein "ja" an den Uno senden und 1 s warten.
Der Uno soll immer umgekehrt sofort mit einem Telegramm antworten. Mehr haben die zwei nicht zu tun.

Das sollte m.E. bei den an den Pin's 13 angeschlossenen LED's eine Zykluszeit von ca. 2s ergeben.
Real zeigen die aber eine von ca. 8s!!!

Versteht das jemand?

Der Sketch vom Mega ist das:

Code:
void loop() {

  if (Serial2.available())       //   Abfrage, ob ein Signal von Teilnehmer B verfügbar?
  {

    Blinken = Serial2.readStringUntil('\n');      //   der String enthält vor dem gesendeeten Text ein Steuerzeichen
    Blinken.replace("\r", "\0");                  // ersetzt das störende Steuerzeichen durch ein Nullzeichen, wird ignoriert
                                                  // danach enthält Blinken nur den gesendeten Text
  }    //**********************   ENDE    if (Serial.available())    ****************************


  if (Blinken == "ja") {     //    Hat Teilnehmer B ein ja gesendet, dann  >>>>
    digitalWrite(ausgang, HIGH);
    Serial2.println("nein");   //    A sendet an B  ein     nein
    delay(1000);


  }   //******************     ENDE   if(Blinken == "ja")

  if (Blinken == "nein") {    //   Hat Teilnehmer B ein nein gesendet, dann  >>>>
    digitalWrite(ausgang, LOW);
    Serial2.println("ja");    //    A sendet an B  ein     ja
    delay(1000);

  }   //******************     ENDE   if(Blinken == "nein")     



}   //******************     ENDE LOOP    *******************************
Der Sketch vom Uno ist das:

Code:
void loop() {
   
  if (Serial.available())       //   Abfrage, ob ein Signal von Teilnehmer A verfügbar?
  {
    Blinken = Serial.readStringUntil('\n');      //   der String enthält vor dem gesendeeten Text ein Steuerzeichen
    Blinken.replace("\r", "\0");                 // ersetzt das störende Steuerzeichen durch ein Nullzeichen, wird daher ignoriert
                                                 // danach enthält Blinken nur den gesendeten Text
  }    //**********************   ENDE    if (Serial.available())    ****************************


  if (Blinken == "ja") {     //    Hat Teilnehmer A ein ja gesendet, dann  >>>>
    digitalWrite(ausgang, HIGH);

    Serial.println("ja");    //    B sendet an A  ein     ja


  }   //******************     ENDE   if(Blinken == "ja")

  if (Blinken == "nein") {     //    Hat Teilnehmer A ein nein gesendet, dann  >>>>
    digitalWrite(ausgang, LOW);

    Serial.println("nein");    //    B sendet an A  ein     nein

  }   //******************     ENDE   if(Blinken == "nein")


}    //   ******************************    ENDE LOOP
vG

fredyxx