DC Motor (per Kurzschluss) bremsen

Hallo Zusammen,

seit kurzem besitze ich einen Arduino und mein erstes Projekt (automatischer Öffner einer Truhe) ist in den letzten Zügen.
Zu allen möglichen auftretenden Problemen habe ich bereits hier oder woanders im Internet Hilfe gefunden, doch beim Thema "Motor bremsen" bin ich nicht zu zufriedenstellenden Antworten gekommen.

Der 12V Motor wird über eine H Brücke angesteuert (L293d). Ich habe gelesen, dass wenn ich auf beide "direction" Pins ein HIGH gebe und den "Enable" Pin ebenfalls bestrome, der Motor gebremst wird (da es ein Kurzschlussschließen der Pins ist?!).
Mit einem kleinen Bremstest Sketch habe ich alle Möglichkeiten durchgetestet, am schnellsten verzögert der Motor, wenn die beiden "direction" Pins auf dem selben Wert stehen (HIGH oder LOW ist egal) und der "Enable" Pin auf HIGH steht.

Jedoch ist die erreichte Bremsleistung nicht vergleichbar damit, wenn ich per Hand den Motor kurzschließe!!
Liegt das daran, dass über die Leitungen zur H Brücke schon der Widerstand zu groß sein kann? (Kabellänge ca.50cm, "normale" JumperWires).

Der nächste Versuch war mit einem MosFET direkt an den Motorklemmen beim erreichen der Endpositionen (oben oder unten) durchzuschalten.
Dann ist mir jedoch aufgefallen, dass Transistoren meist nur in eine Richtung geschaltet werden können (in eine Richtung hat der Test funktioniert), somit bräuchte ich wohl zwei, aber ich denke mir, dass muss doch besser gehen?

Als Lösung sehe ich nur (es gibt insgesamt 4 Magnetschalter über den Verfahrweg verteilt (Nummeriert von 1 bis 4), die die Position des Motor quasi grob ermitteln) bei erreichen von Schalter 2, bzw. 3 (je nachdem in welchen Richtung grade gefahren wird) einen kurzen Gegenstromimpuls zu geben und dann in verringertem Tempo auf Endposition zu fahren.
(Bei erreichen von Schalter 2 bzw. 3 den Motor mittels PWM langsamer fahren zu lassen funktioniert, ist jedoch nicht "schnell" genug um definiert am Endschalter anhalten zu können)

Bevor ich dass mache jedoch nochmal hier die Fragen:
-Mache ich irgendwas falsch, kann ich mit der H Brücke doch den Motor kurzschließen?
-Falls nicht mit der H Brücke, wie schließe ich einen Motor am besten kurz, um so zu bremsen?
-Gibt es andere einfache Methoden, die ich einfach nicht gefunden/übersehen habe, den Motor zu bremsen?

Die Bremsleistung ist kleiner wegen des Leitungswiderstandes (ist aber relativ vernachlässigbar) aber vor allem wegen des "Widerstands" der Ausgangstransistoren des L293D ( genauergesagt wegen der Spannungsabfälle über die Freilaufdiode auf der einen Seite und des Emittor-Collektorabfalls des Ausgangstransistors).
Bessere Ergebnisse hast Du wenn Du eine H-Brücke mit MOSFET's Leistungstransistoren nimmst.

Bist Du sicher daß der L293D den Motorstrom verträgt? er verträgt nur 0,6A Dauerstrom.

Ich sehe aber Deine Denkweise falsch. Wenn Du positionen punktgenau anfahren willst dann sind Endschalter der falsche Weg. Du brauchst eine Wegmessung (Encoder, Potentiometer oder vergleichbares) damit Du eine Beschleunigungs- bzw Bremskurve mittels Modulation der Ansteuerung des Motors realisierst.

Möglich, wenn auch weniger genau ist eine 2stufige Anfahrt des Endpunktes bei dem erster Sensor der Motor langsam angesteuert wird und der 2. Sensor ihn dann stoppt.

Grüße Uwe

Hi Uwe,

danke für die Antwort, dass hat schonmal einiges erklärt!

Der l293d müsste damit klarkommen, Leerlaufstrom des Motors sind 0.3A, max. Laststrom sind 0.7A, allerdings läuft der Motor mit einer Reserve von fast 50%.

Mit der genauen Positionsanfahrt hast du recht, jedoch reicht es mir wie von dir beschrieben den Motor über "2stufige Anfahrt" zu kontrollieren.

Habe es jetzt mit einem kurzen Gegenstromimpuls beim "Vorsensor" und anschließender Schleichfahrt zum Endpunkt realisiert, wo nochmal ein kurzer Gegenstromimpuls kommt. Funktioniert super!

Also nochmals vielen Dank und liebe Grüße :slight_smile:

Der l293d müsste damit klarkommen, Leerlaufstrom des Motors sind 0.3A, max. Laststrom sind 0.7A, allerdings läuft der Motor mit einer Reserve von fast 50%.

Nein. Der Treiber muß auf den Kurzschlußstrom (= Anlaufstrom bzw Strom bei blockierten Motor) dimensioniert werden. Diesen strom kannst Du einfach durch mechanisches Blockieren des Motors und Messung des Stroms bei Nennspannung messen.

Grüße Uwe