PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Motor Spannung mit A/D Wandler und PWM regeln



ben90
23.11.2008, 23:35
Servus!

Ich fange gerade erst an mich für Microcontroller und den Roboter-Bau zu interessieren...
Hab mich heute mal kreuz und quer durch Wiki, Roboternetz und Datenblätter geackert und wollte mal Fragen ob ich das richtig verstanden habe:

- Man legt an einen Motor-Treiber eine Spannung an, welche Höher ist als die, die der Motor verträgt...
- Auf den Enable Eingang des Motors legt man ein PWM signal, welches so getimed ist, dass die Spannung im Schnitt der entspricht, die der Motor fordert...

Fragen:
- Kann man das beliebig weit Treiben? statt 12V einfach 24V nehmen und 50:50 PWM signal Aus und An schalten? Ich nehme mal an es gibt eine Obergrenze dafür, wieviel Prozent höher die Spannung höchstens sein darf?
- Wenn die Batterie leer wird sinkt die Spannung... wird in der Regel einfach die Roboter schwächer und man akzeptiert dies... Oder ist es möglich die Spannung mit einem A/D wandler zu messen und die PWM signal weite so anzupassen, dass im schnitt wieder die ideale spannung rauskommt?
->>> Wieviel strom wird dabei am widerstand verschleudert?

Danke schonmal für eure Hilfe,
Ben

ranke
24.11.2008, 06:45
Kann man das beliebig weit Treiben? statt 12V einfach 24V nehmen und 50:50 PWM signal Aus und An schalten? Ich nehme mal an es gibt eine Obergrenze dafür, wieviel Prozent höher die Spannung höchstens sein darf?


Also einen 12 V Motor mit PWM an 24 V zu betreiben dürfte kein Problem sein. Man kann ihn dann auch noch bis zum Stillstand herunterregeln durch ein prechendes Tastverhältnis.



Wenn die Batterie leer wird sinkt die Spannung... wird in der Regel einfach die Roboter schwächer und man akzeptiert dies... Oder ist es möglich die Spannung mit einem A/D wandler zu messen und die PWM signal weite so anzupassen, dass im schnitt wieder die ideale spannung rauskommt?


Ja das mit der Spannungsmessung könnte man machen. Man wird aber statt der Batteriespannung wahrscheinlich eher den Strom durch den Motor messen (wenn man ein bestimmtes Drehmoment erzeugen will) oder direkt die Drehzahl (wenn man auf die Drehzahl des Motors regeln will).



Wieviel strom wird dabei am widerstand verschleudert?


Der Trick an der PWM Regelung ist, daß es keinen Widerstand gibt (zumindest theoretisch), an dem etwas verschleudert werden könnte.
Vereinfacht gesagt kennt der Leistungshalbleiter, der den Strom steuert nur zwei Zustände: entweder offen oder geschlossen.
Fall offen: Da der Widerstand des Halbleiters recht gering ist, fällt nur eine kleine Spannung an ihm ab. Deshalb ist die Verlustleistung (Verlustleistung ist Strom mal Spannung) auch gering, obwohl der Strom hoch ist.
Fall geschlossen: Hier ist der Strom duch den Halbleiter Null, deshalb ist die Verlustleistung (trotz hoher Spannung) auch Null.
Verlustleistung erzeugen die Umschaltvorgänge, deshalb sollten diese möglichst schnell und nicht zu häufig sein. Das mit dem "häufig" ist relativ, einige tausend pro Sekunde sind es meistens schon. Zu selten umzuschalten ist nämlich auch nicht günstig, weil der Strom im Motor dann stark schwankt.

HannoHupmann
24.11.2008, 12:03
@ben90 Die Spannung die Maximal anliegen darf, wird nur durch den verwendeten Tiefsetzsteller begrenzt. Der L298 z.B. verträgt glaub ich eine Spannung bis 36V. Natürlich ist auch zu beachten wieviel Ampere fliessen und daraus lässt sich dann ermitteln mit wieviel Überspannung man das System betreibt.
Im Zweifelsfall im Datenblatt nachschlagen.

ben90
24.11.2008, 21:04
Ja das mit der Spannungsmessung könnte man machen. Man wird aber statt der Batteriespannung wahrscheinlich eher den Strom durch den Motor messen (wenn man ein bestimmtes Drehmoment erzeugen will) oder direkt die Drehzahl (wenn man auf die Drehzahl des Motors regeln will).

Wie messe ich den strom der durch den motor fließt, wenn ich einen Motortreiber verwende, der keine Sense-Ausgänge besitzt?
Und wie messe ich die Drehzahl direkt? Mit einer Art Lichtschranke oder ähnlichem?


Der Trick an der PWM Regelung ist, daß es keinen Widerstand gibt (zumindest theoretisch), an dem etwas verschleudert werden könnte.
Vereinfacht gesagt kennt der Leistungshalbleiter, der den Strom steuert nur zwei Zustände: entweder offen oder geschlossen.
Fall offen: Da der Widerstand des Halbleiters recht gering ist, fällt nur eine kleine Spannung an ihm ab. Deshalb ist die Verlustleistung (Verlustleistung ist Strom mal Spannung) auch gering, obwohl der Strom hoch ist.
Fall geschlossen: Hier ist der Strom duch den Halbleiter Null, deshalb ist die Verlustleistung (trotz hoher Spannung) auch Null.
Verlustleistung erzeugen die Umschaltvorgänge, deshalb sollten diese möglichst schnell und nicht zu häufig sein. Das mit dem "häufig" ist relativ, einige tausend pro Sekunde sind es meistens schon. Zu selten umzuschalten ist nämlich auch nicht günstig, weil der Strom im Motor dann stark schwankt.

Soweit ich dies verstehe redest du davon, dass durch die PWM schaltung weniger strom am motor verschleudert wird, da er eben nicht die ganze zeit versorgt wird...
Ich habe den vorwiderstand des A/D wandlers gemeint...wenn ich eine 12V spannung habe und der A/D wandler nur 5V verträgt muss dort ja einen verwenden? Würde ich zum beispiel die batteriespannung direkt messen...würde parallel eine leitung über einen vorwiderstand an den A/D wandler liegen... Was ich wissen wollte ist, ob das keine stromverschwendung ist? Wieviel strom wird verschleudert, der bloß über den widerstand in wärme und dann durch den A/D wandler zurück fließt?

Hoffentlich hab ich mich diesmal besser ausgedrückt...^^

Besserwessi
24.11.2008, 22:23
Der AD Wandlereingang ist relativ hochohmig. Man kann also ruhig auch hochohmige Widerstände nehmen: z.B. 10 Kohm gegen GND und je nach Bereich dann z.B. 20 Kohm gegen die zu messende Spannung. Der Strom ist dann höchstens 0,5 mA, also nicht viel.
Bei einer Brückenschaltung hat man aber das Problem, das keine Seite des Motors direkt an GND geht. Da muß man im zweifelsfall an 2 Stellen die Spannung messen, je nach Drehrichting.

ranke
25.11.2008, 06:48
Wie messe ich den strom der durch den motor fließt, wenn ich einen Motortreiber verwende, der keine Sense-Ausgänge besitzt?


Am gebräuchlichsten ist eine Spannungsmessung an einem Widerstand, der sich im Strompfad des Motors befindet. Der Widerstand (Shunt) muss natürlich recht klein sein, damit man nicht zuviel Leistung daran verliert.



Und wie messe ich die Drehzahl direkt? Mit einer Art Lichtschranke oder ähnlichem?


Eine Lichtschranke, die periodisch durch ein an der Motowelle angebrachtes Chopperrad unterbrochen wird, wird häufig angewendet. Ähnlich geht es auch mit Magnetfeldsensoren (Hallsensoren), das Chopperrad muß dann aus ferromagnetischem Werkstoff sein (Stahl).
Wenn man gleichzeitig Strom und Spannung am Motor mißt, kann man daraus auch die Drehzahl abschätzen.

Tido
25.11.2008, 08:22
Bei einer Brückenschaltung hat man aber das Problem, das keine Seite des Motors direkt an GND geht. Da muß man im zweifelsfall an 2 Stellen die Spannung messen, je nach Drehrichting.

Hallo,

ich denke, Ben90 möchte nicht die Motorspannung messen, sondern die Akkuspannung um anhand der Akkuspannung das PWM-Verhältnis so einzustellen, dass der Motor z.B. immer denselben 100%-Wert erhält. Dafür benötigst du nur einen Spannungsteiler.
Das Problem dabei ist, dass die Akkuspannung aufgrund des Innenwiderstandes des Akkus "relativ stark" schwanken wird, je nach dem ob der Motor gerade bestromt wird oder nicht.

ben90
25.11.2008, 15:23
im grunde will ich bloß, dass der motor immer genug spannung bekommt...
und dafür sind beide varianten geeignet^^
also danke an alle fürs helfen ;)

trotzdem hab ich noch ne frage:

ich hab mir jetzt mal zwei motoren besorgt und nen L298...
die motoren saugen laut angaben bei last 1.9 Amper...
Der L298 verträgt pro H-Brücke aber nur 2.0 Amper soweit ich das verstanden hab...
Kann man sagen, dass es zwar knapp ist aber funktioniert?
Oder ist das nen risiko in der verbindung?
Könnte man, fals es ein risiko ist, um den strom bedarf zu reduziern einfach grundsätzlich unter der maximalen spannung bleiben?

Und noch ne Frage:

Der L298 hat ja zwei Sense-Ausgänge...
Wie funktioniert das denn nun eigentlich mit dem messen per A/D wandler...hab das von der schaltung noch nicht ganz verstanden...

Legt man den sense ausgang über nen vorwiderstand(um den A/D wandler nicht zu killen) direkt auf den A/D wandler, wenn man die spannung messen will?
Oder über nen widerstand auf ground und parallel dazu den A/D wandler?
Oder wie? Hat jemand ein beispiel für so ne schaltung?
Ich meine übrigens den A/D wandler der im ATMega32 drin is..

So ich glaube das wars erstma^^
Ben90

Besserwessi
25.11.2008, 19:24
Die Strommessung geht im Prinzip so. Die Referenzspannung sollte aber nicht gerade so groß sein, sondern leiber nur 2-2,5 V. Man hat ja ohnehin schon nicht viel Auflösung.

Der "Laststrom" von Motoren ist nicht so klar definiert. Zum Teil wird der Strom bei maximalem Wirkungsgrad angegeben. Der Strom beim Anlaufen oder stärkerer Last kann noch deutlich höher liegen.
Ein bischen Reserve hat der L298 noch, denn kurzzeitig sind 2,5 A drin, besonders wenn die Akkuspannung höher als die Motorspannung ist. Sicherer wäre aber eine größerer Treiber.

ben90
25.11.2008, 21:56
Ein größerer Treiber...
Der einzige mit dem ich noch etwas anfangen kann wäre der L6205...von den SMD VNHs lass ich erstmal die finger...so ein lötprofi bin ich auch net^^
Und mehr als die hier (https://www.roboternetz.de/wissen/index.php/Getriebemotoren_Ansteuerung) aufgelisteten kenn ich net...

Gilt bei dem L6205 wenn man 2 Getriebe motoren anschließt eigentlich 2,8A pro Motor oder für beide zusammen?

Tido
26.11.2008, 08:32
Hi.

Du kannst auch den L298 verwenden und die beiden Brücken parallel
schalten (siehe Datenblatt), dann hast du max. 3,5A.

ben90
01.12.2008, 21:25
Aktuelle Situation...
Ich hab mich für die parallel-Schaltung der beiden Brücken entschlossen...
Zur verfügung stehen mir BYV28-150...200V 3.5A...
Eventuell könnten ja auch mal mehr über die beiden Brücken zusammen fließen...halten die Dioden das aus?
Wie muss ich das ganze verkabeln?

Variante 1)

4 Drähte von den Pins zum Motor und dann wie im Schaltbild die Dioden?

Variante 2)

An den Ausgangspins des L298 2 Drähte draus machen und dann zum Motor...
Wo kommen nun die Dioden hin?
Soll man ja nicht parallel Schalten...
Bräuchte ich dann nur noch 4 Stück statt 8 die doppelt soviel aushalten müssen?

Ich hoffe Ihr könnt mir nochmal helfen...
Danke schonmal,
Ben