1// Definiere Pin-Verbindungen
2const int ENA = 9; // Enable-Pin fUEr Motor A (PWM)
3const int IN1 = 8; // Steuer-Pin 1 fUEr Motor A
4const int IN2 = 7; // Steuer-Pin 2 fUEr Motor A
5
6// Definiere Konstanten fUEr die Motordrehrichtung
7const int VORWAERTS = 1;
8const int RUECKWAERTS = -1;
9const int STOPP = 0;
10
11void setup() {
12 // Setze alle Motorsteuerungs-Pins auf Ausgang
13 pinMode(ENA, OUTPUT);
14 pinMode(IN1, OUTPUT);
15 pinMode(IN2, OUTPUT);
16}
17
18void loop() {
19 // Drehe den Motor im Uhrzeigersinn mit halber Geschwindigkeit
20 setMotor(VORWAERTS, 128); // Richtung VORWAERTS, Geschwindigkeit 128 von 255
21 delay(2000); // Laufen fUEr 2 Sekunden
22
23 // Stoppe den Motor
24 setMotor(STOPP, 0);
25 delay(1000); // Stoppe fUEr 1 Sekunde
26
27 // Drehe den Motor gegen den Uhrzeigersinn mit viertel Geschwindigkeit
28 setMotor(RUECKWAERTS, 64); // Richtung RUECKWAERTS, Geschwindigkeit 64 von 255
29 delay(2000); // Laufen fUEr 2 Sekunden
30
31 // Stoppe den Motor
32 setMotor(STOPP, 0);
33 delay(1000); // Stoppe fUEr 1 Sekunde
34
35 // Drehe den Motor im Uhrzeigersinn mit voller Geschwindigkeit
36 setMotor(VORWAERTS, 255); // Richtung VORWAERTS, Geschwindigkeit 255 von 255
37 delay(2000); // Laufen fUEr 2 Sekunden
38
39 // Stoppe den Motor
40 setMotor(STOPP, 0);
41 delay(1000); // Stoppe fUEr 1 Sekunde
42}
43
44// Funktion zur Einstellung der Motordrehrichtung und -geschwindigkeit
45void setMotor(int richtung, int geschwindigkeit) {
46 if (richtung == VORWAERTS) {
47 digitalWrite(IN2, LOW);
48 digitalWrite(IN1, HIGH);
49 } else if (richtung == RUECKWAERTS) {
50 digitalWrite(IN1, LOW);
51 digitalWrite(IN2, HIGH);
52 } else { // STOPP oder anderer Wert
53 digitalWrite(IN1, LOW);
54 digitalWrite(IN2, LOW);
55 }
56 analogWrite(ENA, geschwindigkeit);
57}