Hallo,
so würde ich das machen - im Prinzip. Habs nicht getestet, im Groben müsste es aber funktionieren...
Eine Funktion fürs gehen,
eine Funktion fürs drehen,
und eine Funktion mit dem gehen / drehen Ablauf fürs komplette Rechteck, die dann aufgerufen wird.
Beste Grüße!
int motorPinLinks = 9;
int motorPinRechts = 8;
void setup() {
digitalWrite(motorPinLinks, LOW);
digitalWrite(motorPinRechts, LOW);
}
void loop() {
rechteckGehen();
delay (1000);
}
// Funktion - damit sich beide Räder drehen mit der Variable dauer für die Fahrtzeit
void gehen(int dauer){
digitalWrite(motorPinLinks, HIGH);
digitalWrite(motorPinRechts, HIGH);
delay(dauer);
digitalWrite(motorPinLinks, LOW);
digitalWrite(motorPinRechts, LOW);
}
// Funktion - damit sich nur das linke Rad dreht mit der Variable dauer für die Drehzeit
void drehen(int dauer){
digitalWrite(motorPinLinks, HIGH);
delay(dauer);
digitalWrite(motorPinLinks, LOW);
}
// Funktion für das Rechteck
void rechteckGehen(){
// Schleife, um den Ablau drinnen 4 mal auszuführen
for(int i = 1 ; i <= 4; i++) {
gehen(1000);
delay(10); // 10 Millisekunden warten zwischen gehen und drehen
drehen(100);
delay(10); // 10 Millisekunden warten zwischen gehen und drehen
}
}