Arduino Motorsteuerung mit Relais – Motor in beide Richtungen steuern

Ich zeige dir heute, wie du mit einem Arduino und zwei Relais einen Motor in beide Richtungen steuern kannst. Diese Arduino Motorsteuerung Relais ist perfekt für Projekte wie automatische Türen, Roboterarme oder bewegliche Plattformen. Du lernst, wie du die Drehrichtung umkehrst und den Motor gezielt startest oder stoppst.

Materialliste – Diese Bauteile brauchst du

Für diese Arduino Motorsteuerung Relais benötigst du folgende Komponenten:

Wichtiger Hinweis: Achte darauf, dass deine externe Spannungsversorgung zur Spannung deines Motors passt. Der Arduino kann einen Motor nicht direkt mit ausreichend Strom versorgen – das würde ihn beschädigen!


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


Technische Grundlagen – So funktioniert die Relais-Steuerung

Warum brauche ich Relais für die Motorsteuerung?

Relais sind elektromechanische Schalter, die ich gerne als „elektrische Fernbedienung“ beschreibe. Sie ermöglichen es dir, mit dem schwachen Ausgangssignal des Arduino (5V, max. 40mA) einen starken Motorstrom zu schalten. Durch die Kombination von zwei Relais kannst du die Polarität der Motorspannung umkehren und damit die Drehrichtung ändern.

Das H-Brücken-Prinzip verstehen

Mit zwei Relais baust du eine einfache H-Brücke auf. Ich erkläre dir, welche Zustände möglich sind:

  • Beide Relais aus (LOW/LOW): Motor steht still
  • Relais 1 an, Relais 2 aus (HIGH/LOW): Motor dreht rechts
  • Relais 1 aus, Relais 2 an (LOW/HIGH): Motor dreht links
  • Beide Relais an (HIGH/HIGH): Motor steht still

Wichtig: Vermeide unbedingt den Zustand, bei dem beide Relais gleichzeitig die entgegengesetzten Pole verbinden – das würde einen Kurzschluss erzeugen!

Schutzschaltung – Deine Elektronik sicher machen

Die Freilaufdiode ist dein bester Freund bei dieser Schaltung. Sie schützt die Relais und den Arduino vor Spannungsspitzen, die beim Abschalten des Motors entstehen. Der Vorwiderstand begrenzt den Strom zum Transistor und schützt diesen vor Überlastung.

Verkabelung – Schritt für Schritt zur fertigen Schaltung

Arduino Motorsteuerung mit Relais Schaltplan und Verkabelung

Schaltplan für Arduino Motorsteuerung Relais mit beiden Drehrichtungen

So verkabelst du die Komponenten:

Arduino zu Relais-Modul:

  • Arduino Pin 7 → IN1 (Steuereingang Relais 1)
  • Arduino Pin 10 → IN2 (Steuereingang Relais 2)
  • Arduino GND → GND Relais-Modul
  • Arduino 5V → VCC Relais-Modul (je nach Modul)

Relais-Modul zu Motor:

  • Externe Spannungsquelle (+) → COM (gemeinsamer Kontakt) Relais 1
  • Externe Spannungsquelle (−) → COM (gemeinsamer Kontakt) Relais 2
  • NO (Schließer) Relais 1 → Motoranschluss 1
  • NO (Schließer) Relais 2 → Motoranschluss 2

Kritisch wichtig: Verbinde die Arduino-Masse (GND) mit der Masse der externen Spannungsversorgung! Ohne diese gemeinsame Masse funktioniert die Schaltung nicht zuverlässig.

Der Arduino-Code für deine Motorsteuerung

Lade diesen Code auf deinen Arduino hoch:

int relais1pin = 7;
int relais2pin = 10;

void setup() {
  pinMode(relais1pin,OUTPUT);
  pinMode(relais2pin,OUTPUT);
}

void loop() {
  // keine Bewegung
  digitalWrite(relais1pin,HIGH);
  digitalWrite(relais2pin,HIGH);
  delay(1000);

  // Rechtslauf
  digitalWrite(relais1pin,HIGH);
  digitalWrite(relais2pin,LOW);
  delay(1000);

  // keine Bewegung
  digitalWrite(relais1pin,LOW);
  digitalWrite(relais2pin,LOW);
  delay(1000);

  // Linkslauf
  digitalWrite(relais1pin,LOW);
  digitalWrite(relais2pin,HIGH);
  delay(1000);
}

Code-Erklärung – Was passiert hier?

Ich erkläre dir die wichtigsten Teile des Codes:

  • Zeile 1-2: Hier definierst du, an welchen Arduino-Pins die Relais angeschlossen sind
  • setup(): In dieser Funktion konfigurierst du die Pins als Ausgänge
  • loop(): Diese Funktion läuft endlos und steuert den Motor in einem festen Zyklus:
    • Beide HIGH → Motor stoppt
    • Relais1 HIGH, Relais2 LOW → Motor dreht rechts
    • Beide LOW → Motor stoppt
    • Relais1 LOW, Relais2 HIGH → Motor dreht links

Jeder Zustand wird für 1 Sekunde (1000 Millisekunden) gehalten. Du kannst diese Werte anpassen, um die Bewegungsdauer zu verändern.

Tipps zur Fehlersuche

Falls dein Motor nicht wie erwartet funktioniert, prüfe diese Punkte:

  • Motor dreht nur in eine Richtung: Prüfe die Verkabelung der Relais zum Motor
  • Motor dreht gar nicht: Kontrolliere die externe Spannungsversorgung und die GND-Verbindung
  • Relais klicken, aber Motor reagiert nicht: Prüfe, ob die Motorspannung ausreichend ist
  • Arduino startet immer neu: Dein Motor zieht zu viel Strom – verbessere die Trennung der Stromkreise

Mögliche Erweiterungen für dein Projekt

Du kannst diese Arduino Motorsteuerung Relais auf viele Arten erweitern:

  • Endschalter einbauen: Verhindere, dass der Motor über die Endposition hinausfährt
  • Taster-Steuerung: Steuere die Motorrichtung manuell mit zwei Tastern
  • PWM für variable Geschwindigkeit: Ersetze die Relais durch eine MOSFET-H-Brücke für stufenlose Geschwindigkeitsregelung
  • Sensorsteuerung: Integriere Ultraschallsensoren oder Lichtschranken für automatische Bewegungssteuerung
  • LCD-Display: Zeige den aktuellen Motorzustand auf einem Display an

Fazit – Dein Weg zur erfolgreichen Motorsteuerung

Du hast jetzt gelernt, wie du mit einem Arduino und zwei Relais einen Motor bidirektional steuern kannst. Diese Schaltung ist robust, kostengünstig und eignet sich perfekt für Projekte mit höheren Strömen und Spannungen.

Der große Vorteil dieser Relais-Lösung: Sie funktioniert mit fast jedem DC-Motor und ist einfach zu debuggen, da du die Relais klicken hörst. Für Anwendungen, bei denen du die Geschwindigkeit regeln möchtest, empfehle ich dir als nächsten Schritt eine H-Brücke mit MOSFETs.

Viel Erfolg mit deinem Motorsteuerungs-Projekt! Wenn du Fragen hast oder deine Ergebnisse teilen möchtest, hinterlasse gerne einen Kommentar.


Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

  • Die beliebtesten Arduino-Projekte von StartHardware
  • Inklusive Schaltplan, Beschreibung und Code
  • Arduino-Schnellstart-Kapitel
  • Kompakter Programmierkurs


0 0 votes
Article Rating
8 Comments
Newest
Oldest Most Voted
Inline Feedbacks
Alle Kommentare anzeigen
Tobi
10 Jahre zuvor

Servus,
vielen Dank für die tollen Einführungen und die Webseite. Als totaler Anfänger hätte ich eine – vermutlich ziemlich dumme – Frage: was nehme ich denn hier zb für einen 12V Motor für ein 12V Netzteil her? Und wie verbindet man das am einfachsten mit dem Steckbrett?
Vielen Dank und viele Grüße

Jules
13 Jahre zuvor

Vielen Dank für die schnelle und kompetente Antwort!
Grüße Jules

13 Jahre zuvor

Hi Jules,

also wir nehmen für die Fritzing StarterKits das FRS1B. Es kann mit 5V geschalten werden und ist ziemlich stabil.

Liebe Grüße

Jules
13 Jahre zuvor

Hallo,
erstmal Danke für die Mühe, die Tutorials haben mir gut gefallen. Ich hätte noch eine Frage zu dem Schaltrelais, was nimmt man da am Besten? Hast du da evtl. ne Reichelt oder Conrad Empfehlung!?

14 Jahre zuvor

@Tom: Du kannst aus der Arduino-Software den Blink-Code benutzen (Examples>Digital>Blink) und den Pin ändern von 13 zu 3.

tom
14 Jahre zuvor

Guten Morgen
ich will versuchen, diese Schaltung nachzubauen und damit versuchen einen normalen Motor zum laufen zu kriegen. Wie sieht denn der C-Code dazu aus?
danke für die Hilfe
Tom

15 Jahre zuvor

Hallo Renke,

vielen Dank für die Info! Ich hab es geändert und hoffe, jetzt stimmt es.

Liebe Grüße

Stefan*

Renke
15 Jahre zuvor

Moin Stefan,

ich glaube auf der Abgebildung stimmen die Verbindungen am Transistor nicht ;)

Beste Grüße
Renke