if-else-Anweisung?
Eine Maschine sortiert rote und blaue Steine. Die roten Steine werden in Box 1 abgelegt, die blauen in Box 2. Gleichzeitig zählt die Maschine die Anzahl der in die jeweiligen Boxen abgelegten Steine und gibt die Zahl in einem verständlichen Satz aus. Nach jedem abgelegten Stein pausiert die Maschine für 2 Sekunden. Wie würde ein beispiel Sketch in Tinkercad dazu aussehen ?
2 Antworten
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Arduino
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);
}
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren
Kann man nicht genau beantworten, denn folgende Dinge sind nicht klar:
- Woran wird erkannt, dass ein Stein blau oder rot ist?
- Kann geschlossen werden, dass es nur rote und blaue Steine gibt?
- Wie erfolgt das "Ablegen" steuerungsmäßig?
- 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.