PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : _H-Brücke zur Ansteuerung eines Gleichstrom-Motors



r2d2matze
13.10.2005, 14:58
Ich habe mir eine H-Brücke aus den Transistoren BC 328/40 und BC 337/40 laut einem Schaltplan, wie ich ihn unten angefügt habe (Bild Mitte), gebaut, um damit einen Gleichstrommotor zu betreiben. Dieser soll entweder vorwärts oder rückwärts drehen, je nachdem welche Spannungen ich an den Basen der Transistoren anlege.
Ich bin mir nicht ganz sicher, ob mein Aufbau richtig ist, denn es scheint viel Leistung unterwegs verloren zu gehen, da der Motor nur noch sehr wenig Kraft hat, seit ich diese Schaltung benutze.
Kann mir jemand helfen? Ist die Schaltung richtig oder muss ich etwas ändern? Was muss ich bei den jeweiligen Transistoren anlegen, um diese leitend oder sperrend zu machen?
Danke für eure Hilfe!

stupsi
13.10.2005, 18:34
die schaltung sollte soweit ok sein.
Die Falle: der 2N3906 hat ne unterschiedliche pinbelegung.
Wenn du die Richtung deiner transistoren um 180° drehst und alles neu verdrahtest, passt alles wieder.

Gruß Stupsi

r2d2matze
14.10.2005, 08:15
Okay, danke! Aber wie muss ich denn nun die Spannungen an den Basen der 4 Transistoren anlegen, um den Motor jeweils in die entgegengesetzte Richtung zu drehen?

Robotronix
14.10.2005, 13:26
wieso 4 Transistoren?
Du wirst doch wohl die Schaltung mit den 6 Transistoren verwenden wollen, denn dann brauchst du doch nur 2 Trnsistoren anzusteuern .(nur halt niemals gleichzeitig -> Kurzschluß der H-Brücke !!!)
Wenn ein Eingang an Masse liegt schaltet der Treibertransistor 2 'diagoale' Transistoren und der Motor dreht in die eine Richtung.
Nimmt man den anderen Eingang, dreht er sich halt in die andere Richtung.
Da ein Motor eine beachtliche Induktivität darstellt, sollten die Transistoren mit Dioden geschützt werden (im Schaltbild nicht dargestellt)

bitstriker
05.11.2005, 11:03
Hallo, ich habe eine Frage, die sehr gut in diesen Thread passt. Für die Uni soll ich einen Gleichstrommotor mit dem IC TLE5205-2 von Infineon ansteuern.

Datenblatt: http://www.ortodoxism.ro/datasheets/infineon/1-tle5205-2.pdf

Mein Vorgänger hat die Baugruppe aufgelötet, aber er hat die Ansteuerung per Software nicht hinbekommen.

Der IC schaltet eine Spannung von 18 V auf den Motor. Durch PWM hat mein Vorgänger versucht, verschiedene Geschwindigkeiten zu realisieren. Er ist eigentlich elektronisch recht fit und sich immer noch sicher, dass das der richtige Weg war.

Aber der normale Weg, Geschwindigkeiten eines Gleichstrommotors zu ändern, ist doch, die Spannung am Motor zu variieren.

Oder kann man dies auch durch "pulsen" erreichen?

Kurz gesagt: Kann ich mit diesem IC und einer festen Spannung von 18V durch PWM verschiedene Geschwindigkeiten erreichen?

Ich wäre Euch sehr dankbar, wenn Ihr mir helfen würdet.

stupsi
05.11.2005, 13:27
hi bitstriker, ist ein schönes Ic, der tl5205, den kannte ich noch nicht.
einen Motor mit PWM zu betreiben, ist normal und sinnvoll, denn der Motor reagiert auf den Mittelwert der Betriebsspannung.
Das Problem deines Vorgängers kann ich auch verstehen, denn das IC ist nicht für PWM geeignet, da die interne Logik PWM nicht unterstützt.
Vielleicht gibt es aber einen (etwas umständlichen) Ausweg:

Idee:
IN1 = 0 und IN2 = PWM könnte den Motor rechts drehen lassen.
IN2 = 1 und IN1 = PWM könnte den Motor links drehen lassen.

Dafür solltest du dir eine Steuerlogik ausknobeln. Dabei sollte diie PWM sehr langsam laufen, weil allein schon die Totzeit zum Umschalten im IC 50us beträgt. Der Pin EF bringt dabei permanent Störungen, aber man braucht Ihn ja nicht auswerten. Versuche es mal mit einer PWM von z.B. 100 Hz, das könnte klappen.


Viel erfolg beim Knobeln... Gruß Stupsi

Ratber
05.11.2005, 13:35
@Bitstriker


Klar kannst du das aber die Brücke muß auch geeignet sein.

Ein Blick ins Datanblatt zeigt das On/Offzeit für die Endstude maximal 35µs beträgt.

Damit wärst du bei maximalen 1/35µs=27.77 Khz.

Aber da ist auch noch eine On-Time nötig um per PWM auch was regeln zu können.

Nehmen wir an das wir das Gesammtsignal um weitere 35µs verlängern
und damit die Frequenz auf 13.89 Khz absenken dann belegt die nutzbare
Zeit aber nur 50% der Gesammtzeit.
Der Effekt ist das bei einem 8-Bit PWM hier nur die hälfte nutzbar ist.
Wir haben also ein 7-Bit PWM was ja meist nicht erwünscht ist.

Wieviel Regelungsbereich man braucht muß man selber entscheiden aber
ich gehe meist mindestens vom 10-Fachen der schlechtesten Schaltzeiten aus.
Also 350µs gesammt was dann 2.86 Khz entspricht
Jetzt muß man sehen mit welchem Prescaler am Controller man in die nähe des Wertes kommt.

Jetzt ist nur noch ein relativ kleiner Bereich vorhanden der nicht nutzbar ist
aber der deckt sich meist mit dem Bereich in dem der Motor eh nicht anläuft.
Man könnte ihn also quasi damit als "versteckt" betrachten.


Ich weiß ja nicht welche Pararmeter dein Freund genutzt hat aber das wäre eine Möglichkeit.

Das er den Chip richitg angesteuert hat setze ich mal voraus.
(Is ja simpelst)


@Stupsi



Das Problem deines Vorgängers kann ich auch verstehen, denn das IC ist nicht für PWM geeignet, da die interne Logik PWM nicht unterstützt.
Vielleicht gibt es aber einen (etwas umständlichen) Ausweg:

Idee:
IN1 = 0 und IN2 = PWM könnte den Motor rechts drehen lassen.
IN2 = 1 und IN1 = PWM könnte den Motor links drehen lassen.


Das ist der Übliche Weg
Was hast du denn erwartet ?



Dabei sollte diie PWM sehr langsam laufen, weil allein schon die Totzeit zum Umschalten im IC 50us beträgt.


Wie kommst an die 50µs ?
Hab ich was überlesen ?

05.11.2005, 15:32
Erst einmal danke für die schnelle Hilfe.

IN1 = 0 , IN2 = 0 -> rechts drehen
IN2 = 0 , IN2 = 1 -> links drehen

Wenn ich jetzt wie vorgeschlagen IN1 = 0 und IN2 = PWM programmiere,
sage ich dem Motor doch:

rechts (langer Puls)
links (kurz 0)
rechts
links
...

Ich könnte mir vorstellen, dass der Motor das nicht so gerne mag.

Oder hab ich da was falsch verstanden. Entschuldigt, dass meine PWM-Kenntnisse noch nicht so groß sind.

bitstriker
05.11.2005, 15:37
Oh, Login vergessen. Wie soll ich bloß die PWM hinkriegen, wenn ich noch nicht einmal mit einem Forum klar komme :lol:

stupsi
05.11.2005, 17:22
@ ratber
sorry, es sind 35us! ich neige dazu, die Schaltzeiten auf "Kopf-Rechenwerte" zu runden, besonders bei Grenzwerten.

Zusätzlich sollte dazu die Anmerkung zu den Schaltzeiten "Device Active for t>1ms" auch ihre Beachtung finden. Den Grund vermute ich in der Einschwingzeit der internen Ladungspumpe vom IC. Daher meine Emfehlung, es mit seeehr niedrigen PWM-Frequenzen zu probieren.

... und die Ansteuerung sehe ich recht unüblich. Immerhin muß die PWM an 2 verschiedene Eingangspins angelegt werden. Vielleicht muss sogar für die eine Richtung die PWM invertiert werden? Üblich kann man das nicht nennen.

IN1 = 0 und IN2 = PWM könnte den Motor rechts drehen lassen.
IN2 = 1 und IN1 = PWM könnte den Motor links drehen lassen.

Wie macht man das:

Ich würde mir einen Funktionsgenerator schnappen und die ganzen Funktionen erst einmal kontrollieren. Das Ergebnis hilft beim Programmieren.
Wichtig ist: wenn die Applikation auf S.16 benutzt wird, müssen also beide uC-Ausgänge PWM liefern können!
Als reine Hardwarelösung könnte man einen 555-Timer als PWM-Generator und eine Steuerlogik verwenden.

Gruß Stupsi

Ratber
05.11.2005, 18:26
@Bitstriker


Ist eigentlcih simpel.

Schau dir mal genauer an welche Kombinationen du an den
Steureingängen brauchst.

10 ist die Bremse (Über Lowside-Fet und Diode) und interessiert jetzt für
den Lauf nicht.

00 und 01 sind die jeweilige Richung und kommen von der Steuerung.

11 ist Hochohmig also alle Treiber gesperrt.

Wenn wir also per PWM Modulieren möchten müssen die Eingänge also
zwischen 00/01 und 11 Geschaltet werden.


Am verständlichsten geht das mit einem Tri-State Leitungstreiber (wie zb. den alten 74126)
dessen ausgänge mit Pullups nach logisch "1" gezogen werden.

Das PWM-Signal kommt dabei an den Steuereingang.
Solange er "1" ist folgen die ausgänge den Eingeängen.
Ist er "0" dann gehen die ausgänge in den Hochohmigen Zustand
und die Pullups ziehen alle Signale nach "1" womit auch die
Treiberstufe im 5205 Hochohmig werden (11 am Eingang).

Für die beiden anderen Fälle also Hochohmig (11) und Bremse (10) schauen wir mal noch nach ob se verwendbar sind.
Bei 11 ändert sich nix also bruchbar und die Bremse wird im PWM-Takt geschaltet also hat man auch noch eine dosierbare Bremse bekommen.

Also alle Funktionen bis auf den "leerlauf" kann man per PWM Dosieren.
Is also einfach machbar für einige Cent extra.



@Stupsi


sorry, es sind 35us! ich neige dazu, die Schaltzeiten auf
"Kopf-Rechenwerte" zu runden, besonders bei Grenzwerten.


Ja Runden ist ok aber ich mache das erst am Ende.
Und von 35 auf 50 ist etwas grob gerundet.
Warum nicht gleich 100µs.is ja nen Runder Wert '-)




Zusätzlich sollte dazu die Anmerkung zu den Schaltzeiten "Device Active for t>1ms" auch ihre Beachtung finden. Den Grund vermute ich in der Einschwingzeit der internen Ladungspumpe vom IC. Daher meine Emfehlung, es mit seeehr niedrigen PWM-Frequenzen zu probieren.

Denk mal scharf nach.
Was für einen Sinn mancht es Schaltzeiten von 2,5,10,20µs anzugeben
wenn da irgendwo noch 1000 µs anstehen ?
Macht dich das nicht irgendwie stutzig.

Das "Device Active for t>1ms" bezieht sich auf die ON-Time des ganzen Chips
weil der auch ne weile braucht bis er nach anlegen der Betriebsspannung bereit ist.




... und die Ansteuerung sehe ich recht unüblich. Immerhin muß die
PWM an 2 verschiedene Eingangspins angelegt werden. Vielleicht muss
sogar für die eine Richtung die PWM invertiert werden? Üblich kann man
das nicht nennen.

Also ich kenne das so schon ne ganze weile.



IN1 = 0 und IN2 = PWM könnte den Motor rechts drehen lassen.
IN2 = 1 und IN1 = PWM könnte den Motor links drehen lassen.

Les nochmal die Logiktabelle:

In ersterem Falle pendelst du zwischen 00 und 01 also zwischen Links und
rechts was der Motor glaube ich übel nimmt.
Im Zweiten Fall zwischen 10 und 11 also zwischen Hochohmig und bremsen.
Den Motor juckt es zwar nicht denn er dreht sich nicht aber wenigstens ist
die Schaltung dann sehr Stromsparend *gg*

Auch andersrum (In 1 = PWM) sieht das etwas merkwürdig aus.

Da Pendelst du bei 10 und 00 zwischen Bremsen und eine Richtung.
Oder bei 11 und 01 zwischen Hochohmig und der anderen Richtung.

Naja,wenigstens würde er hier irgenedwie etwas laufen *fg*



Wichtig ist: wenn die Applikation auf S.16 benutzt wird,
müssen also beide uC-Ausgänge PWM liefern können!
Als reine Hardwarelösung könnte man einen 555-Timer als
PWM-Generator und eine Steuerlogik verwenden.


Also die applikation auf seite 16 hat mit PWM nix am Hut und wäre
so nur per Software zu lösen.

Wie oben schon beschrieben gehe ich mal davon aus das 2 Portpinne zum
Steuern genommen werden und einer vom Timer im Controller die PWM liefert.
Das kostet nur nen Chip extra.
Natürlich kann man auch gleich eine Brücke mit Enableanschluss
nehmen dann spart man sich das.


Habe fertig. *hehehe*

bitstriker
10.11.2005, 11:12
Vielen Dank Ratber für Deinen ausführlichen Tipp.

IC ist bestellt.

Ich melde mich hier nochmal, sobald es läuft.

Ratber
10.11.2005, 16:17
Yo,gut Holz :cheesy:

30.11.2005, 16:33
hallo bitstriker, die lösung deines problems findest du unter der internetseite www.elektronikschule.de

30.11.2005, 16:50
hallo bitstriker, angegebene adresse funktioniert nicht. hier die ist besser: http://www.elektronikschule.de/~krausg/Microcontroller/Programmbeispiele_und_Unterrichtsprojekte/Projekt_PWM-Fahrtregler_fuer_DC-Eisenbahnen/