Hallo, ich möchte einen DC-Motor per Mikrocontroller ansteuern. Dazu verwende ich einen Motortreiber, über den ich die Drehrichtung und Geschwindigkeit des Motors einstellen kann. Letztere wird mittels eines Bytes (0-255) codiert. Nun würde ich den Motor gerne in kleinen Schritten arbeiten lassen. Z.B. 50ms laufen, 50 ms Pause usw. So wie ich das verstanden habe zieht ein DC-Motor aber beim Anlaufen ja besonders viel Strom (Peak). Das ständige an und abschalten wäre also ziemlich "anstrengend" für die Elektronik bzw. den Akku, richtig? Würde es in diesem Fall helfen den Motor mit einer Art S-Kurve zu starten? Also die Geschwindigkeit langsam von 0 auf 255 hochzusetzen, anstatt direkt von 0 auf 255 zu springen? Oder ist das Quatsch?
Boris P. schrieb: > Oder ist das Quatsch? Grundsätzlich kein Quatsch. Ob es bei 50ms allerdings was bringt, bezweifle ich. Der Motor wird kaum zu stehen kommen oder er läuft gar nicht weg.
nja du könntest mit einer pwm, gefiltert über ein RC-Glied, an das gate/ die Basis eines Transistors gehen und dann wäre deine bedingung von 0-255 steuern erfüllt
chris schrieb: > nja du könntest mit einer pwm, gefiltert über ein RC-Glied, > an das gate/ die Basis eines Transistors gehen und dann wäre deine > bedingung von 0-255 steuern erfüllt Das funktioniert ja schon. Der Motor kann bereits per PWM angesteuert werden. Nun würde ich gerne aber anstatt den Motor direkt anzuschalten, einen "sanften" start machen. Dazu würde ich den DutyCycle der PWM langsam von 0 auf 100% erhöhen... Hubert G. schrieb: > Ob es bei 50ms allerdings was bringt, bezweifle ich. Der Motor wird kaum > zu stehen kommen oder er läuft gar nicht weg. Gut, bei den Zeiten bin ich nicht festgelgt. Bei voller Drehzahl läuft der Motor (dank Getriebe) mit 30 UPM. Diese würde ich nun gerne noch weiter verlangsamen. Da man mit der PWM ja irgendwann an seine Grenzen stoßen dürfte (Motor bleibt stehen?), wollte ich diesen eben immer wieder an und aus schalten. Im Prinzip wären auch 500ms an (mit sanftem Hochfahren) und 500ms aus möglich... Würde es dann besser funktionieren?
na denn verändere den dutycycle mit einen zweiten timer der sagen wir mal alles 10ms einen Interreupt auslöst und in dieser ISR in das PWM-Register der neue wert geschrieben wird und wenn der Endwert erreicht ist wird der erste timer abgeschalten so das nur noch der PWM-Timer läuft... Aber was ist denn deine Hardware?
Hast du das schon ausprobiert mit PWM? Wenn es dir nichts ausmacht das der Motor langsam dahinruckelt, kann es schon funktionieren. Ob es allerdings schonend ist, bezweifle ich etwas.
Boris P. schrieb: > Das ständige > an und abschalten wäre also ziemlich "anstrengend" für die Elektronik > bzw. den Akku, richtig? Glaube ich nicht.. Sonst würden Motoren nicht per PWM angesteuert werden. Außerdem fließt im Elektromotor der Strom durch Spulen und wie war das gleich nochmal mit dem Strom in einer Spule? ;-) Boris P. schrieb: > Würde es in diesem Fall helfen den Motor mit einer Art S-Kurve zu > starten? Also die Geschwindigkeit langsam von 0 auf 255 hochzusetzen, > anstatt direkt von 0 auf 255 zu springen? Glaube ich auch nicht.. Bei "1" Schaltest du den Strom genauso oft pro Zeiteinheit ein und aus, wie bei "250". Boris P. schrieb: > Gut, bei den Zeiten bin ich nicht festgelgt. Bei voller Drehzahl läuft > der Motor (dank Getriebe) mit 30 UPM. Diese würde ich nun gerne noch > weiter verlangsamen. Dann stelle halt einen kleineren Duty-Cycle an deiner Steuerung ein, wenn sie dir das schon ermöglicht. Boris P. schrieb: > Diese würde ich nun gerne noch > weiter verlangsamen. Da man mit der PWM ja irgendwann an seine Grenzen > stoßen dürfte (Motor bleibt stehen?), wollte ich diesen eben immer > wieder an und aus schalten. Genau das macht doch ein PWM.. wenn der Duty-Cycle so klein ist, dann bleibt der Motor eben stehen. Da bringt es dich auch nicht weiter, ihn "manuell" zu schalten. Es sei denn, du willst eine art "Ruckelbetrieb". Wenn du das willst und manuell schaltest, dann kannst du auch einfach die Frequenz des PWM reduzieren. Da kommt dann auf´s gleiche raus.
Schlumpf schrieb: > Genau das macht doch ein PWM.. wenn der Duty-Cycle so klein ist, dann > bleibt der Motor eben stehen. Da bringt es dich auch nicht weiter, ihn > "manuell" zu schalten. Es sei denn, du willst eine art "Ruckelbetrieb". > Wenn du das willst und manuell schaltest, dann kannst du auch einfach > die Frequenz des PWM reduzieren. Da kommt dann auf´s gleiche raus. Sicher? Vielleicht reden wir auch an einander vorbei. Ich stelle mir 2 PWM Signale vor: Signal 1 hat eine Frequenz von 1000 Hz. Über den Duty Cycle wird die Geschwindigkeit des Motors eingestellt. Ich konnte es nicht überprüfen, aber vermutlich wird die Spannung unterhalb von 50% DutyCycle zu niedrig sein, unter der Motor stehen bleiben. So lässt sich der Motor also nicht weiter verlangsamen. Daher möchte ich nun eine zweite PWM darüberlegen. Diese hat eine Frequenz von 1 Hz, so dass der Motor jede Sekunde 500ms läuft und 500ms stillsteht. Damit lässt sich die Geschwindigkeit des Motors also nochmals halbieren (auch hier ließe sich der DutyCycle variieren). Ergibt das soweit Sinn? Zu meiner ursprünglichen Frage: Nun wollte ich anstatt der harten Flanken der zweiten PWM das ganze sanft an und ausschalten, um starke Strom-Peaks zu vermeiden. Dazu würde ich den DutyCycle der 1. PWM variieren.
Boris P. schrieb: > Sicher? Ja, sicher! Boris P. schrieb: > aber vermutlich wird die Spannung unterhalb von 50% DutyCycle zu niedrig > sein, unter der Motor stehen bleiben. Du weisst aber schon, wie ein PWM funktioniert, oder? Boris P. schrieb: > Ergibt das soweit Sinn? Ganz und gar nicht.. Erklärung: Mit einer klassischen PWM wird die Pulsweite Moduliert (Wie der Name schon sagt). Das heißt, es wird ein Pulsbetrieb mit einer konstanten Frequenz vorgenommen, wobei das Verhältnis zwischen An und Aus variabel ist. An der Amplitude ändert sich dabei aber gar nichts. Also ändert sich auch nichts an der Spannung. Wenn dein Motor bei einem Duty Cycle von 50% einfach stehen bleibt, dann ist dein PWM und dein Motor einfach nicht aufeinander abgestimmt. Beim Einschalten muss der Strom schon die Chance haben, sich an der Induktivität voll aufzubauen.
Probier erstmal aus, wie weit du mit der Drehzahl runter kommst mit einer PWM.
Langsam ruckelfrei fast ohne Strom losfahren und anfänglichen mechanischer Widerstand überwinden wird wohl nicht so einfach werden. Einfacher wäre: ein gescheites Netzteil zu nehmen was den Strom verträgt.
Schlumpf schrieb: > Mit einer klassischen PWM wird die Pulsweite Moduliert (Wie der Name > schon sagt). Das heißt, es wird ein Pulsbetrieb mit einer konstanten > Frequenz vorgenommen, wobei das Verhältnis zwischen An und Aus variabel > ist. > An der Amplitude ändert sich dabei aber gar nichts. Also ändert sich > auch nichts an der Spannung. Mir ist schon klar wie eine PWM funktioniert ;-) Die im Mittel anliegende Spannung, und auch die aufgenommene Leistung des Motors ändert sich aber schon durch die Variation des Duty Cycles. Das meinte ich eigentlich. Helge A. schrieb: > Probier erstmal aus, wie weit du mit der Drehzahl runter kommst mit > einer PWM. Jau, jetzt warte ich erstmal auf den Motor, dann schauen wir weiter. oszi40 schrieb: > Einfacher wäre: ein gescheites Netzteil zu nehmen was den Strom > verträgt. Das sowiso :-) In meinem Fall ein Blei-Akku, aber auch der sollte das vertragen.
Boris P. schrieb: > > Jau, jetzt warte ich erstmal auf den Motor, dann schauen wir weiter. Sie haben also noch keinen Motor, wissen aber schon, dass dieser bei einem Duty-Cycle von 50% nicht mehr läuft?
innerand innerand schrieb: > Boris P. schrieb: >> >> Jau, jetzt warte ich erstmal auf den Motor, dann schauen wir weiter. > > Sie haben also noch keinen Motor, wissen aber schon, dass dieser bei > einem Duty-Cycle von 50% nicht mehr läuft? Nein, wissen tu ich das nicht. Ich habe aber schon häufiger gelesen, dass ein DC-Motor nicht über den kompletten DutyCycle Bereich von 0 bis 100% regelbar ist. Ist diese Annahme falsch? Der Motor um den es geht ist in einem Spannungsbereich von 6 bis 12V verwendbar. Daher komme ich auf die 50%, bei der im Mittel die untere Grenze von 6V erreicht sein dürfte...
Boris P. schrieb: > Ich habe aber schon häufiger gelesen, > dass ein DC-Motor nicht über den kompletten DutyCycle Bereich von 0 bis > 100% regelbar ist. Ist diese Annahme falsch? Steuerbar ist er das sicher, regelbar hängt von einer Reihe von Faktoren, wie z.B. der inneren Reibung des Motors und natürlich der Last ab. Je reibungsärmer das ganze ist, umso früher wird die reingesteckte elektr. Leistung die Reibungen überwinden und der Motor fängt an zu drehen. Je hochwertiger ein Motor ist, umso langsamer kann man ihn regeln - gut aufgelöste Erfassung der Drehzahl vorausgesetzt.
:
Bearbeitet durch User
Boris P. schrieb: > Der Motor um den es geht ist in einem Spannungsbereich von 6 bis 12V > verwendbar. Daher komme ich auf die 50%, bei der im Mittel die untere > Grenze von 6V erreicht sein dürfte... Da müsste man jetzt mal wissen welchen Motor Sie da bekommen. Kann es sein, dass der bereits Steuerelektronik an Board hat, diese eine Spannung von 6-12V benötigt und der einen Eingang für ein PWM-Signal hat über den die Drehzahl vorgegeben werden kann?
Matthias Sch. schrieb: > Steuerbar ist er das sicher, regelbar hängt von einer Reihe von > Faktoren, wie z.B. der inneren Reibung des Motors und natürlich der Last > ab. Je reibungsärmer das ganze ist, umso früher wird die reingesteckte > elektr. Leistung die Reibungen überwinden und der Motor fängt an zu > drehen. Je hochwertiger ein Motor ist, umso langsamer kann man ihn > regeln - gut aufgelöste Erfassung der Drehzahl vorausgesetzt. Steuern und Regeln vertauscht? Imho ist es genau umgekehrt. Regeln kann ich ihn auf jeden Fall (da sorgt dann die Regelung dafür, dass Reibungen bzw. Laständerungen kompensiert werden),
innerand innerand schrieb: > Da müsste man jetzt mal wissen welchen Motor Sie da bekommen. > Kann es sein, dass der bereits Steuerelektronik an Board hat, diese eine > Spannung von 6-12V benötigt und der einen Eingang für ein PWM-Signal hat > über den die Drehzahl vorgegeben werden kann? Das ist ein Billig-Motor von eBay. Leider ohne Datenblatt. Eine Steuerung ist da sicherlich nicht an Board ;-)
Boris P. schrieb: > Der Motor um den es geht ist in einem Spannungsbereich von 6 bis 12V > verwendbar. Daher komme ich auf die 50%, bei der im Mittel die untere > Grenze von 6V erreicht sein dürfte... Du weißt nicht wie PWM funktioniert und auch nicht wie DC-Motoren funktionieren. Wie immer hier schreibst Du nichts über den Anwendungsfall, hast noch nicht mal den Motor auf dem Tisch, lamentierst aber schon rum wie schlecht das geht. Lass den Motor erst mal kommen und hänge eine einfache PWM dran. Wenn dann Schwierigkeiten auftauchen, kannst Du wieder schreiben. Bei mir laufen DC-Motoren mit PWM so langsam, daß man die Umdrehungen mitzählen kann. Ganz ohne "doppelte" PWM.
:
Bearbeitet durch User
Micha H. schrieb: > Du weißt nicht wie PWM funktioniert. Doch, weiß ich. Micha H. schrieb: > Wie immer hier schreibst Du nichts über den Anwendungsfall, Das ist ja auch irrelevant. Wenn ich schreibe, dass ich die Drehzahl eines Motor in einem Möglichst großen Bereich varieren möchte,genügt das wohl. Was würde es dir helfen wenn ich schreibe, dass das Ganze für eine Goldfisch-Fütter-Maschine, einen RC-Modell-Laster oder einen vollautomatischen Regenschirm gedacht ist? Micha H. schrieb: > hast noch > nicht mal den Motor auf dem Tisch, lamentierst aber schon rum wie > schlecht das geht. Weil ich die Zeit, bis der Motor da ist, gerne nutzen würde um mir schon mal Gedanken über die Ansteuerung zu machen. Ist das so schlimm? Micha H. schrieb: > Lass den Motor erst mal kommen und hänge eine einfache PWM dran. Wenn > dann Schwierigkeiten auftauchen, kannst Du wieder schreiben. Wird gemacht.
Boris P. schrieb: > Das ist ein Billig-Motor von eBay. Leider ohne Datenblatt. Eine > Steuerung ist da sicherlich nicht an Board ;-) Die Angabe eines Spannungsbereiches von 6-12V bei einer GSM ist jedenfalls seltsam. Grundsätzlich kann man bei einer GSM von 0 V bis zur Nennspannung betreiben. Siehe: http://upload.wikimedia.org/wikipedia/commons/2/28/Betriebsdiagramm_fremderregte_Gleichstrommaschine.svg Bei ihrem Motor wird es sich halt um eine permanenterregte GSM handeln, dass heißt ihr Phi ist konstant und sie können damit nur im Ankerstellbereich Arbeiten.
Boris P. schrieb: > Weil ich die Zeit, bis der Motor da ist, gerne nutzen würde um mir schon > mal Gedanken über die Ansteuerung zu machen. Ist das so schlimm? Dann messe die Drehzahl und baue eine DrehzahlREGELUNG. Damit kannst du dich beschäftigen, bis dein Motor da ist.
Udo Schmitt schrieb: > Dann messe die Drehzahl und baue eine DrehzahlREGELUNG. > Damit kannst du dich beschäftigen, bis dein Motor da ist. Eigentlich muss da nichts geregelt werden. Es reicht mir grob die Drehzahl vorzugeben, ohne "Rückkanal".
Udo Schmitt schrieb: > Dann messe die Drehzahl und baue eine DrehzahlREGELUNG. > Damit kannst du dich beschäftigen, bis dein Motor da ist. Und wenn man es richtig machen will, dann unterlagert man der Drehzahlregelung noch eine Stromregelung. (Wobei man sich die Drehzahl einer GSM ganz gut errechnen kann, mann muss die also nicht unbedingt direkt messen.)
Boris P. schrieb: > Micha H. schrieb: >> Du weißt nicht wie PWM funktioniert. > > Doch, weiß ich. Das weißt Du aber geschickt zu verbergen. Tip: unterscheide zwischen mittlerer Spannung und Peakspannung. Es ist ein himmelweiter Unterschied ob Du per PWM 50% mittlerer Spannung auf den Motor gibst oder per Spannungsregelung. Die 50% PWM entsprechen von der Wirkung nicht den 6V aus einer Spannungsregelung. Genau an diesem Punkt kommt die Wirkungsweise eines DC-Motors ins Spiel. >> Wie immer hier schreibst Du nichts über den Anwendungsfall, > > Das ist ja auch irrelevant. Nein, weil es ein großer Unterschied ist ob Du eine kontinuierliche oder eine ungleichmäßige, z.B.oszillierende Kraft erzeugen willst. > Weil ich die Zeit, bis der Motor da ist, gerne nutzen würde um mir schon > mal Gedanken über die Ansteuerung zu machen. Ist das so schlimm? Ganz und gar nicht, wenn man nicht wie Du gleich das Rad neu erfinden will. Programmiere die PWM und baue die Treiberschaltung auf, das ist Zeit sinnvoll genutzt. > Micha H. schrieb: >> Lass den Motor erst mal kommen und hänge eine einfache PWM dran. Wenn >> dann Schwierigkeiten auftauchen, kannst Du wieder schreiben. > > Wird gemacht. Besser ist das.
Kleiner Tip: Kauf Dir einen Roboter Bausatz (NiboBee oder Asuro) und probier die Regelung mal damit aus. So kannst Du in einem preisgünstigen Modellversuch erste Erfahrungen machen und dann auf etwas größeres umsteigen. Ich kann dazu aus eigener Erfahrung sagen, dass der Roboter beliebig langsam anfahren, fahren und abbremsen kann - ganz ohne zu Ruckeln und ohne Hexenwerk. Es gibt da keine minimale Drehzahl. Von 0 bis 100% ist alles drin. Es kommt einzig und alleine auf einen vernünftigen Regelalgorithmus an, dessen Parameter an die Eigenschaften der Maschine (nicht nur des Motors) angepasst sind.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.