if-else-Anweisung?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
int counter = 0;
void loop(){
  String steinfarbe;
  steinfarbe = String SteinfarbeErkennen();
  if (steinfarbe == "Rot"){
  void steinInBox_1Legen ();
  }
  else{steinInBox_2Legen ();
  }
  delay(2000);
  counter++;
  String text = "Stein Nr. " + counter + "wurde abgelegt."
  Serial.println(text);
}

String SteinfarbeErkennen(){

  if(farbesensor() == Rot){
     return "Rot";
  }
  else{return "Blau";}
  }

void steinInBox_1Legen (){
  servo.winkel(100);
  servo.winkel(0);
}

void steinInBox_2Legen (){
    servo.drive(200);
    servo.winkel(0);
}

Kann man nicht genau beantworten, denn folgende Dinge sind nicht klar:

  1. Woran wird erkannt, dass ein Stein blau oder rot ist?
  2. Kann geschlossen werden, dass es nur rote und blaue Steine gibt?
  3. Wie erfolgt das "Ablegen" steuerungsmäßig?
  4. Wo soll die Ausgabe erfolgen?

Generell folgt der Code, basierend auf der Annahme, dass 2) gilt, folgendem Schema:

if (steingefunden) {
  if (steinfarbe == rot) {
    legeSteinInBox1();  
  }
  else {
    legeSteinInBox2();
  }

  gibAnzahlSteineInBoxenAus();
}

"steingefunden" gibt an, ob aktuell ein Stein betrachtet wird. Da Arduino-Programme in einem Loop laufen, soll das Ablegen und Ausgeben natürlich nur geschehen, wenn auch ein Stein zum Ablegen vorhanden ist.