Mehrere Probleme:
- Nach Serial.read() liefert das folgende Serial.available() eins weniger.
Mit umgekehrter Reihenfolge geht es besser:
if ( Serial.available() > 0 )
{
char c = Serial.read();
}
- Vergleiche im if gehen mit == oder !=
Ein einfaches = ist eine Zuweisung. Das ist syntaktisch (leider) auch richtig, das if ist true wenn etwas != 0 zugewiesen wurde. - Wenn du ( z.B. mit SerialMonitor ) eine '1' sendest, kommt ein Buchstabe '1' an, das ist etwas anderes als die Zahl 1
if (incoming == '1')
( 4. Du erleichterst dir (vermutlich) das Leben wenn z.B. '1' einschaltet und '0' ausschaltet. Dann musst du dir nicht merken, was vorher war )