Forum: Analoge Elektronik und Schaltungstechnik H-Brücke / Vierquadrantensteller für Motorschaltung


von Lukas T. (ivorius)


Angehängte Dateien:

Lesenswert?

Hey beisammen,

ich hatte in einem anderen thread 
(Beitrag "PWM Signal über Schleifkontakt") bereits geklärt dass ich 
ohne Probleme ein PWM Signal über einen Schleifkontakt schicken kann.

Mit diesem PWM Signal plane ich nun, einen Motor anzusteuern - ich bin 
aber auch weiterhin ein vollkommener Anfänger in Sachen Schaltungen und 
musste mich erst einmal über die H-Brücke schlau machen.

Ich habe einige fertige Teile gefunden, die in der Lage sind diese 
Aufgabe zu erledigen, aber die Meisten unterstützen nur vorwärts / 
rückwärts / leerlauf oder sind für meine Zwecke eigentlich viel zu 
kompliziert. Ich habe ein bisschen weitergelesen und 
http://www.talkingelectronics.com/projects/H-Bridge/H-Bridge-1.html 
(Design 24) gefunden. Das finde ich eigentlich relativ genial, da es 
keine "Bad States" gibt und ich mit nur 3 pins, wovon nur 1 pwm fähig 
sein muss, auskomme.

Ich zweifle jedoch daran, ob ich tatsächlich Oktokoppler brauche, und 
habe auch nicht wirklich Lust für die Darlington Stellung die supply 
voltage hochzudrehen. Ich habe mir statt Dessen das angehängte 
versimpelte Design überlegt.

Kann mir jemand weiterhelfen, ob das so funktionieren würde? Das 
eingehende Signal wäre theoretisch auch 3.3v (daher die Auswahl des 
MOSFET), aber ich ziehe noch in Betracht es statt Dessen einfach mit 
einem LLC in 5v umzuwandeln.

: Verschoben durch Moderator
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Lukas T. schrieb:
> Kann mir jemand weiterhelfen, ob das so funktionieren würde?

Die Lowside Transistoren würden so schon funktionieren, aber die 
Highsides werden nur als Emitterfolger betrieben - es steht also am 
Emitter nur die Spannung der Basis minus der BE Diodenspannung.
Hier habe ich mal eine H-Brücke vorgestellt, die auch nicht viel 
komplizierter ist:
Beitrag "Re: RC-Servoelektronik für DC-Motor"

von Björn R. (sushi)


Lesenswert?

Die Schaltsymbole sind bipolare Transistoren, die Bezeichnung gehört zu 
MOSFETs. Da stimmt was nicht...
Wenn du die MOSFETS(ich nehme an, es sollen trotz Symbol welche sein, 
denn du schreibst selber davon) nur über Widerstände ansteuerst, kriegst 
du lange Schaltzeiten. Das hat außer hohen Schaltverlusten auch 
Kurzschlüsse beim Umschalten zu Folge. Ganz ohne Schaltzeit geht es auch 
mit richtigen Treiberschaltungen nicht, das heißt du brauchst eine 
Totzeit zwischen den Schaltvorgängen der einzelnen Transistoren. Fertige 
H-Brückentreiber haben sowas integriert, so ganz unpraktisch sind die 
nicht ;-)

Was für Ströme willst du denn schalten?
LG, Björn

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Wenn in der Highside N-Kanal MOSFets sein sollen, wirds noch schlechter. 
Sourcefolger geben noch weniger Spannung am Ausgang ab als 
Emitterfolger.

von m.n. (Gast)


Lesenswert?

Björn R. schrieb:
> Was für Ströme willst du denn schalten?

Wüsste ich auch gerne. Meines Erachtens würden L6201 bzw. L6203 schon 
reichen. Ein separater Aufbau lohnt nur bei speziellen Anwendungen.

von Lukas T. (ivorius)


Lesenswert?

Danke schon mal für die Antworten! Ich bin theoretisch noch dabei, es 
nachzuvollziehen, aber ich schreibe schon mal.

Ich bin daran interessiert, mit möglichst wenig Kanälen möglichst alle 
theoretischen features eines motor drivers abzuchecken. Deshalb fand ich 
das design grundsätzlich sehr gut: Keine Möglichkeit für bad states 
(short circuits), alle modes abgedeckt, nur 1 pwm channel und "default 
state" = leerlauf.

Mein inputs sind 3.3v channel aus einem ESP32 (aber ich habe nichts 
gegen einen oder zwei logic level converter auf 5v dazwischen). Damit 
will ich einen 12v Motor steuern: Vorwärts, rückwärts, 
Geschwindigkeitsregelung sowie bremsen. Ich hoffe das beantwortet die 
Frage.

: Bearbeitet durch User
von Björn R. (sushi)


Lesenswert?

12V Motoren gibts auf der Modelleisenbahn genauso wie im Auto als 
Anlasser. Die Frage nach dem Strom, die sehr wichtig ist, hast du also 
leider noch nicht beantwortet. Bad States sind mit deiner Schaltung 
vorprogrammiert bzw. eingebaut. Um es nochmal zu erläutern: Wenn du das 
gleiche Signal an Highside- und Lowside-Transistor legst, wird beim 
Umschalten der eine schon leitend, während der andere noch nicht nicht 
ganz zu ist => Satter Kurzschluss! Das funktioniert nur bei sehr kleinen 
Leistungen mit in Reihe geschalteten, strombegrenzenden Widerständen. 
Ist aber auch "nicht schön". Mit passendem IC kommst du auch mit 3 
Leitungen aus, sämtliche Schaltlogik, evtl generieren der nötigen 
Steuerspannungen und auch Einhaltung der Totzeiten zur Vermeidung des 
eben Beschriebenen übernimmt das IC.

LG, Björn

von Gerald K. (geku)


Lesenswert?

Am besten mit LT Spice simulieren, da sammelt man Erfahrung.

von Lukas T. (ivorius)


Lesenswert?

Björn R. schrieb:
> Wenn du das
> gleiche Signal an Highside- und Lowside-Transistor legst, wird beim
> Umschalten der eine schon leitend, während der andere noch nicht nicht
> ganz zu ist => Satter Kurzschluss!

Aha, das ergibt für mich Sinn. Ich bin Schaltzeiten nicht gewohnt.

Der 12v Motor den ich schalte ist für eine Art Ventilator. Er sollte 
etwa 1A max. ziehen.

Okay, also mit einem IC wäre ich auch zufrieden. Ich hatte nur soweit 
keinen gefunden, der mir eine brake-funktion gibt. Ich schaue mir 
momentan das L6201 Datenblatt an...

Edit: Im Datenblatt finde ich eine hübsche Tabelle:

Enable High:
Input Low, Low => sink, sink = brake low
Input High, High => source, source = brake high
Input Low, High => sink, source = forward
Input High, Low => source, sink = backward

Enable Low: Off

Wenn ich das richtig verstehe, kann ich ein PWM Signal auf enable legen 
und forward / backward wie bisher geplant verwenden? Das wäre natürlich 
optimal.

: Bearbeitet durch User
von Björn R. (sushi)


Lesenswert?

Richtig. Der Tipp mit LTSpice ist nicht verkehrt, da kann man schon 
einige Fehler erkennen. Zwar bedeutet es nicht, wenn die Schaltung in 
LTSpice funktioniert, dass sie es in echt auch tut. So einige Denkfehler 
lassen sich damit aber kostengünstig und rauchfrei aufdecken.

LG, Björn

von Lukas T. (ivorius)


Lesenswert?

LTSpice wird geladen, und ich habe denke ich eine Lösung für mein 
Problem. Vielen Dank euch beiden!

von Gerald K. (geku)


Angehängte Dateien:

Lesenswert?

Björn R. schrieb:
> So einige Denkfehler lassen sich damit aber kostengünstig und rauchfrei
> aufdecken

So ist es!

Ich habe ein H-Brücke zur Ansteuerung einer Piezosirene simuliert. Nach 
einigen Korrekturen in LT Spice hat es dann auch in der Praxis 
funktioniert.

Querströme bei Umschalten lassen sich recht gut darstellen.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Als integrierte Motortreiber sollten sich auch TLE4201 (wenn man ihn 
bekommt) und BA6209 gut eignen, beide sind für direkten Anschluss an 
3,3V Logik geeignet.

von MaWin (Gast)


Lesenswert?

Lukas T. schrieb:
> finde ich eigentlich relativ genial

Ja, merkwürdig, dass Laien immer die Ergebnisse mögen, die einfach und 
simpel erscheinen und nichts taugen.

FWD und REV gleichzeitig aktiv und deine Spannungsquelle wird 
kurzgeschlossen.
Es kommen ca. 3V weniger raus als an FWD oder REV angelegt wird.

Mehr als 20V dürfen es auch nicht sein.

Besorge dir einfach einen fertigen, robusten Chip, vielleicht TLE5204.

von m.n. (Gast)


Lesenswert?

Lukas T. schrieb:
> Wenn ich das richtig verstehe, kann ich ein PWM Signal auf enable legen
> und forward / backward wie bisher geplant verwenden?

PWM auf enable ist nicht gut, da die Drehzahl dadurch lastabhängig wird.

von Lukas T. (ivorius)


Lesenswert?

MaWin schrieb:
> Lukas T. schrieb:
>> finde ich eigentlich relativ genial
>
> Ja, merkwürdig, dass Laien immer die Ergebnisse mögen, die einfach und
> simpel erscheinen und nichts taugen.

Das liegt daran, dass wir von den Themen wenig verstehen und komplexere 
Dinge sind nun mal schwieriger zu verstehen. Da bitte ich um Nachsicht 
=)

> Besorge dir einfach einen fertigen, robusten Chip, vielleicht TLE5204.

Danke für den Tipp, ich werde ihn mir auch mal anschauen.

m.n. schrieb:
> PWM auf enable ist nicht gut, da die Drehzahl dadurch lastabhängig wird.

Hast du einen Gegenvorschlag für Drehzahlregelung? Ich kann die Drehzahl 
eigentlich ganz gut synchronisieren, da ich die aktuelle Drehzahl kenne 
und dann mit der heuristisch determinierten PWM Frequenz steuern können 
sollte.

von m.n. (Gast)


Lesenswert?

Lukas T. schrieb:
> Hast du einen Gegenvorschlag für Drehzahlregelung?

Beim L6203 habe ich immer zwei PWM-Signale (an IN1 und IN2) verwendet, 
die in der Regel mit zwei Compare-Signalen eines Timers erzeugt wurden. 
Je nach Bedarf kann man dann einen Motor vor und zurück betreiben, oder 
zwei Motore mit nur einer Drehrichtung.
Sofern Du nur ein PWM-Signal hast, könntest Du eine Halbbrücke für die 
Richtungsvorgabe und die andere mit PWM angesteuert für die 
Drehzahleinstellung verwenden.
Eine weitere Möglichkeit wäre, das PWM-Signal für die 2. Halbbrücke zu 
invertieren. Beim Tastverhältnis von 50% würde er dann stehen bleiben.

Enable mit PWM anzusteuern ist ungeschickt. Sofern der Motor durch 
äußere Kräfte beschleunigt wird, wird es schwierig, ihn zu bremsen bzw. 
zu regeln.

von Lukas T. (ivorius)


Lesenswert?

m.n. schrieb:
> Lukas T. schrieb:
>> Hast du einen Gegenvorschlag für Drehzahlregelung?
>
> Beim L6203 habe ich immer zwei PWM-Signale (an IN1 und IN2) verwendet,
> die in der Regel mit zwei Compare-Signalen eines Timers erzeugt wurden.
> Je nach Bedarf kann man dann einen Motor vor und zurück betreiben, oder
> zwei Motore mit nur einer Drehrichtung.

Ich bin nicht sicher, ob ich diesen Ansatz insbesondere im Vergleich zum 
darauffolgenden verstehe. Wenn ich die beiden INs separat durch PWM 
ansteuere, wechsele ich doch 'wild' zwischen den 4 Modi hin und her, 
oder nicht?

> Sofern Du nur ein PWM-Signal hast, könntest Du eine Halbbrücke für die
> Richtungsvorgabe und die andere mit PWM angesteuert für die
> Drehzahleinstellung verwenden.

Das würde heißen, dass ich durch das Tastverhältnis bestimme, wie viel 
Zeit er im beschleunigen / brake Modus verbringt? Ich sehe ein, dass ich 
dadurch mehr Kontrolle über Geschwindigkeitseinhaltung habe. Solange das 
keine anderen Nachteile hat wäre das gar nicht schlecht.

> Eine weitere Möglichkeit wäre, das PWM-Signal für die 2. Halbbrücke zu
> invertieren. Beim Tastverhältnis von 50% würde er dann stehen bleiben.

Dann würde ich aber wechseln zwischen forward und backward, und soweit 
ich das verstanden habe wirkt das unschöne Kräfte auf den Motor aus, 
oder nicht?

von oldeurope O. (Gast)


Lesenswert?

Lukas T. schrieb:
>> Eine weitere Möglichkeit wäre, das PWM-Signal für die 2. Halbbrücke zu
>> invertieren. Beim Tastverhältnis von 50% würde er dann stehen bleiben.
>
> Dann würde ich aber wechseln zwischen forward und backward, und soweit
> ich das verstanden habe wirkt das unschöne Kräfte auf den Motor aus,
> oder nicht?

Ja. Das macht man so eigentlich nicht. Einige Leute hier im Forum
leider schon. Einfache D-Amps arbeiten so und verwenden ein L-C-
Filter für die PWM.

LG
old.

von m.n. (Gast)


Lesenswert?

Lukas T. schrieb:
> Dann würde ich aber wechseln zwischen forward und backward, und soweit
> ich das verstanden habe wirkt das unschöne Kräfte auf den Motor aus,
> oder nicht?

Nein.

von oldeurope O. (Gast)


Angehängte Dateien:

Lesenswert?

m.n. schrieb:
> Beim Tastverhältnis von 50% würde er dann stehen bleiben.

Als erstes gibt die Entstörkombi am Motor Rauchzeichen.
Aber die hast Du ja nicht angebracht, weil dir HF-Störungen
egal sind.

Je nach PWM-Frequenz und Amplitude wird der Anker vom Motor
heiß. Und im Stand oder bei geringer Drehzahl bekommt der
keine Kühlung vom Lüfterrad.
Aber auch das ist dir egal, solange es nicht qualmt.

So Etwas mache ich nicht mit, egal wie oft ihr das in euren
Foren propagiert.

Lukas T. schrieb:
>> Eine weitere Möglichkeit wäre, das PWM-Signal für die 2. Halbbrücke zu
>> invertieren. Beim Tastverhältnis von 50% würde er dann stehen bleiben.
>
> Dann würde ich aber wechseln zwischen forward und backward, und soweit
> ich das verstanden habe wirkt das unschöne Kräfte auf den Motor aus,
> oder nicht?

Was Du machen kannst ist, die PWM-Frequenz gleichphasig auf
die linke und rechte Halbbrücke geben und gegenphasig
modulieren.
Im Stillstand werden dann beide Motorklemmen parallel im
PWM-Rhythmus an die Betriebsspannungsschienen geklemmt.
Der Motor sieht also keine Spannung.
Im Bild die zweite und dritte PWM-Darstellung.

Wird die PWM gegenphasig moduliert, dreht der Motor in die jeweilige 
Richtung. Im Bild die erste und vierte Darstellung.

Das kostet Dich zwei phasenstarre PWM-Pins am "Arduino".

LG
old.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.