92 lines
2.3 KiB
C++
92 lines
2.3 KiB
C++
// 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);
|
|
} |