- kleine veränderung bzw. optimierung

- inf: ka
This commit is contained in:
danielvici123
2024-10-23 10:20:44 +02:00
parent 9881bf3e1a
commit 8949abf1b4
2 changed files with 109 additions and 4 deletions

View File

@@ -0,0 +1,92 @@
// Variablen werden deklariert
const int L1 = 5, L2 = 18, L3 = 19, L4 = 23;
int Zeit_pro_Schritt = 20; // wird eig. berechnet
char links_rechts_serial;
// Die Pins werden als OUTPUT gesetzt und
// die Baudrate wird auf 9600
void setup() {
pinMode(L1, OUTPUT);
pinMode(L2, OUTPUT);
pinMode(L3, OUTPUT);
pinMode(L4, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Es wird die Funktion "drehen" aufgerufen
// und es wird die Variable "Zeit_pro_Schritt"
// durchgegeben
drehen(Zeit_pro_Schritt);
}
void drehen(int zeit) {
// solange i unter 48 ist wird die Funktion "rechDrehen" ausgeführt
for (int i = 0; i < 48; i++) {
rechtsDrehen(zeit);
}
delay(1000);
// solange i unter 48 ist wird die Funktion "linksDrehen" ausgeführt
for (int i = 0; i < 48; i++) {
linksDrehen(zeit);
}
delay(1000);
}
// Funktion "rechtsDrehen" wird deklariert
// Die Funktion schaltet die Pins mit der gegebenen Zeit
// Der Motor dreht sich nach rechts
void rechtsDrehen(int zeit) {
//Schritt 1: 1 0 0 1 ausgeben
digitalWrite(L4, HIGH);
digitalWrite(L3, LOW);
digitalWrite(L2, LOW);
digitalWrite(L1, HIGH);
delay(zeit);
//Schritt 2: 0 1 0 1 ausgeben
digitalWrite(L4, LOW);
digitalWrite(L3, HIGH);
digitalWrite(L2, LOW);
digitalWrite(L1, HIGH);
delay(zeit);
//Schritt 3: 0 1 1 0 ausgeben
digitalWrite(L4, LOW);
digitalWrite(L3, HIGH);
digitalWrite(L2, HIGH);
digitalWrite(L1, LOW);
delay(zeit);
//Schritt 4: 1 0 1 0 ausgeben
digitalWrite(L4, HIGH);
digitalWrite(L3, LOW);
digitalWrite(L2, HIGH);
digitalWrite(L1, LOW);
delay(zeit);
}
// Funktion "linksDrehen" wird deklariert
// Die Funktion schaltet die Pins mit der gegebenen Zeit
// Der Motor dreht sich nach links
void linksDrehen(int zeit) {
//Schritt 3: 0 1 1 0 ausgeben
digitalWrite(L4, LOW);
digitalWrite(L3, HIGH);
digitalWrite(L2, HIGH);
digitalWrite(L1, LOW);
delay(zeit);
//Schritt 2: 0 1 0 1 ausgeben
digitalWrite(L4, LOW);
digitalWrite(L3, HIGH);
digitalWrite(L2, LOW);
digitalWrite(L1, HIGH);
delay(zeit);
//Schritt 1: 1 0 0 1 ausgeben
digitalWrite(L4, HIGH);
digitalWrite(L3, LOW);
digitalWrite(L2, LOW);
digitalWrite(L1, HIGH);
delay(zeit);
//Schritt 4: 1 0 1 0 ausgeben
digitalWrite(L4, HIGH);
digitalWrite(L3, LOW);
digitalWrite(L2, HIGH);
digitalWrite(L1, LOW);
delay(zeit);
}