2 DC Motoren ansteuern (Links/Rechtslauf) mit Delay oder Sensor

Hallo.

Ich möchte 2 DC Motoren (jeweils 12V ca. 10A) ansteuern.

Was mein Problem ist... Wenn die Motoren rechts herum laufen und ich umschalte auf Linkslauf, könnte aufgrund der noch mit Schwungmasse belasteten Welle der Strom extrem ansteigen.

Deswegen möchte ich dem Arduino sagen, dass er bei Umschalten etwas “warten” soll.
Alternativ, könnte man mittels Sensor die Umdrehung am Gegenstand an der Welle messen und bei kleiner xyz-Umdrehungen erst die Umschaltung stattfinden soll.
Beide Lösungen wären super. Lösung 1 mit Delay wäre einfacher und schneller realisiert. Lösung 2 wäre halt etwas smarter.

Ich dachte mir ich mache das wie folgt.

  1. Netzteil /Batterie 12V
  2. Von der BAtterie über Sicherung zum Arduino
  3. Vom Arduino auf 2 Relais-Module die dann die Motoren ansteuern (also 1 Relais Modul für beide Motoren für Rechtslauf und 1 Relais Modul für beide Motoren für Linkslauf).
  4. Von der Batterie auch zun den Lasteingängen der Relais (12V Spannungsversorgung)
  5. Von den Relais parallel zu den Motoren.

Könnte das klappen bzw. könnt Ihr mir Tipps geben, wie ich das bewerkstelligen kann?

Code Beispiel für Rechts-Linkslauf mit 2 Relais auf Ausgang 7 und 10 (nur beim Delay bin ich mir nicht ganz sicher. Die Drehzahlmessung ist noch nicht drin, was ja dann als Alternative für das Delay kommen sollte).

Außerdem würde ich gerne noch jeweils über die +-Leitung der jeweiligen Motoren einen DC Stromsensor werfen. Wenn dann einer der Stromsensoren auslöst (weil z.B. eine Blockade an einer Welle vorhanden ist, oder der Motor im Eimer ist, sollte der Arduino weder vorwärts noch rückwärts zulassen, bis der Stromwert wieder abfällt. Zusätzlich wäre es super, wenn mir der Arduino dann via LED mitteilt dass ein Stromsensor gerade den Wert überschritten hat (vial roter LED z.B.).

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);

}

Den Code und Beispiele habe ich hier im Netz gefunden (ich hoffe ich darf den Link hier posten):
Arduino mit 2 Motoren.

Über Feedback von Eurer Seite würde ich mich sehr freuen.

Dankeschön

Gruß Markus

(deleted)

WOW....

Super schnelle Antwort. Ich denke ne H-Brücke sollte das sein was mein vorhaben umsetzen lässt.
Ich werde mich da mal einlesen.

Vielen Dank