Eine Frage zu Serial.read

Guten abend,

Ich bin aktuell mit der Kommunikation zwischen 2 Arduinos beschäftigt und habe ein kleines Problem.

int incomingByte = 0; 
void setup() {
        Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {              
         incomingByte = Serial.read();
         
          if(incomingByte = 2) {
            Serial.println("Test1");
           }
           
          if(incomingByte = 50) {
            Serial.println("Test2"); 
           }   
  }
      Serial.flush();        

}

Soweit der Code.

Das Problem dabei ist, dass egal was ich mit dem zweiten Arduino schicke, beides ( Test1 & Test2 ) ausgegeben wird. Falls ich grad komplett auf dem Schlauch stehe, seid mir nicht böse :slight_smile: Aber mir fällt grad keine andere Lösung ein, außer hier zu fragen. Falls ihr für die Lösung meines Problems noch den Code des Sende-Arduinos braucht schreibt einfach :).

MfG

if(incomingByte = 2)
if(incomingByte = 50)

Warum überschreibst du incomingByte?
:o :o :o

Tipp:
Wenn man die Konstante nach links setzt, dann ist ein solcher Fehler leichter zu bemerken

if(2 = incomingByte) // der Kompiler nörgelt

Erstmal vielen dank für den Tipp.

Ich hatte das erst mit einem doppel "=", dass hat auch nicht funktioniert.
Das mit dem "incomingByte = 50" hatte ich aus einem Forum genommen und daher gedacht es funktioniert.

Wie kann ich das umgehen, dass der Kompiler nörgelt?

Ich hatte das erst mit einem doppel "=", dass hat auch nicht funktioniert.

Ach so, du probierst einfach so rum...

Wie kann ich das umgehen, dass der Kompiler nörgelt?

  • Meldung lesen!
  • Meldung verstehen
  • Fehler beheben

Hi

Das 'Umgehen' ist nicht nötig, da der Kompiler bei '2=incomingByte' meckert, da Du versuchst, einer FESTEN ZAHL einen neuen Wert zuzuweisen.
DABEI wird Dir auffallen: Oha - DA muß ja ein == hin Hand->Stirn
Dann ist der Kompiler auch schon wieder ruhig, da ein Vergleich Variable und Konstante 'voll ok' ist.
Wenn's dann immer noch nicht funktioniert - Fehler im Programm.

MfG

@Combie Danke für den kleinen Denkanstoß, es funktioniert jetzt :slight_smile:
@postmaster-ino Ja, das habe ich beim zweiten mal durchlesen auch gemerkt, dass das mit "=" nicht geht :slight_smile:

Danke euch beiden für die schnelle Hilfe :slight_smile: