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.
- Netzteil /Batterie 12V
- Von der BAtterie über Sicherung zum Arduino
- 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).
- Von der Batterie auch zun den Lasteingängen der Relais (12V Spannungsversorgung)
- 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