witam serdecznie,
Oto mój program z pracy domowej, nie wiem gdzie robię błąd, gdyż zapala i gasi się tylko dioda czerwona , a zielona i komunikaty o błędnym kolorze nie działają. Z góry dziękuje za odpowiedź i pomoc.
#define zielona 2
#define czerwona 4
String odebraneDane = ""; //Pusty ciąg odebranych danych
boolean zielonaon =false;
boolean czerwonaon =false;
void setup() {
Serial.begin(9600); //start komunikacji
pinMode(zielona, OUTPUT); //ustawienie wyjść
pinMode(czerwona, OUTPUT);
digitalWrite(zielona, LOW); //Wyłączamy diody
digitalWrite(czerwona, LOW);
Serial.print("Wybierz kolor");
delay(1000);
Serial.print(".");
delay(1000);
Serial.print(".");
delay(1000);
Serial.println(".");
delay(5000);
}
void loop() {
if(Serial.available() > 0) { //czy odebrano dane
odebraneDane = Serial.readStringUntil('\n'); //jesli tak zapisz do odebraneDane
if (odebraneDane == "czerwony") { //Jeśli wpisano czerwony
digitalWrite(czerwona, HIGH); //To włączamy diodę czerwoną
if(czerwonaon==false){
czerwonaon=true;
Serial.println("zapalam czerwona!");
}else{ digitalWrite(czerwona, LOW);
Serial.println("gasze czerwona!");
czerwonaon=false;
if (odebraneDane == "zielony") { // jesli wpisano zielony
digitalWrite(zielona, HIGH); //załącz diodę zieloną
if(zielonaon ==false){
zielonaon=true;
Serial.println("zapalam zielona!"); //Wyślij komunikat
}else{digitalWrite(zielona, LOW); // wyłącz zieloną
Serial.println("gasze zielona!");
zielonaon=false;
if(odebraneDane != "zielony" && odebraneDane != "czerwony"){ //komunikaty błędnie wpisanego koloru
Serial.println("niepoprawny kolor");
delay(500);
}
}
}
}
}
}
}