Hallo liebe Community.
Ich möchte einen 24V/6A DC-Motor antreiben. Hierbei möchte ich sowohl
die Drehzahl, als auch die Richtung über einen PC steuern. Leider kann
ich mit der vorhandenen Analog I/O-Karte nur Frequenzen bis 500 Hz
ausgeben. Aus diesem Grund habe ich mir überlegt, die PWM-Erzeugung
einen µC erledigen zu lassen (z. B. Arduino Uno). Der PC übergibt dem µC
nur ein Analogsignal, dessen Spannung das Tastverhältnis der PWM
kodiert. DAS PWM-Signal möchte ich anschließend an eine
2-Quadrantensteller mit Halbbrücken Mosfettreiber
(https://www.mikrocontroller.net/articles/Motoransteuerung_mit_PWM)
übergeben, der dann den Motor steuert.
Die PWM-Frequenz sollte ich sicherlich irgendwo im kHz-Bereich suchen,
ja?
Über das Tastverhältnis kann ich letztlich auch die Richtung festlegen?
Muss ich bei der Richtungsumkehr irgendetwas softwareseitig dämpfen (z.
B. langsam stoppen und dann in die andere Richtung drehen)?
Habe ich etwas in meiner Betrachtung vergessen oder gibt es eine
schönere als die PC-Arduino-Treiber-Lösung?
Vielen Dank euch schonmal.
P. S. schrieb:> Die PWM-Frequenz sollte ich sicherlich irgendwo im kHz-Bereich suchen,> ja?
Warum ?
Drehstrommotore und Wechselstrommotore arbeiten auch an 50Hz gut.
> Ich möchte einen 24V/6A DC-Motor antreiben.
Wie viel Strom braucht denn der Motor beim Anlaufen=Blockieren ? Das ist
nämlich der Strom, auf den die Elektronik auszulegen ist, sonst ist sie
schon beim ersten Anlauf kaputt.
> Über das Tastverhältnis kann ich letztlich auch die Richtung festlegen?
Besser nicht, wo ist sonst 0 ?
> Muss ich bei der Richtungsumkehr irgendetwas softwareseitig dämpfen (z.> B. langsam stoppen und dann in die andere Richtung drehen)?
Wäre zu empfehlen, sonst ruckt's doch gewaltig.
P. S. schrieb:> Über das Tastverhältnis kann ich letztlich auch die Richtung festlegen?
Das geht nur, wenn Du am Motor die Polarität wechselst, also mit einem
4-quadrantensteller. Mit dem 2-quadrantensteller kannst Du nur treiben,
bzw. bremsen.
Vielen Dank für eure Antworten.
MaWin schrieb:> P. S. schrieb:>> Die PWM-Frequenz sollte ich sicherlich irgendwo im kHz-Bereich suchen,>> ja?>> Warum ?> Drehstrommotore und Wechselstrommotore arbeiten auch an 50Hz gut.
In dem Artikel "Motoransteuerung mit PWM" habe ich gelesen, dass aus
elektrischer Sicht 1 bis 2 kHz günstig sind. Also gilt es, die
PWM-Frequenz einfach zu testen?
>> Ich möchte einen 24V/6A DC-Motor antreiben.>> Wie viel Strom braucht denn der Motor beim Anlaufen=Blockieren ? Das ist> nämlich der Strom, auf den die Elektronik auszulegen ist, sonst ist sie> schon beim ersten Anlauf kaputt.
Ich habe gerade mal gemessen. Der Anlaufstrom liegt bei etwa 6,5 A (für
etwa 100ms), anschließend sind es etwa 0,5 A.
Oleg Ayranov schrieb:> P. S. schrieb:>> Über das Tastverhältnis kann ich letztlich auch die Richtung festlegen?>> Das geht nur, wenn Du am Motor die Polarität wechselst, also mit einem> 4-quadrantensteller. Mit dem 2-quadrantensteller kannst Du nur treiben,> bzw. bremsen.
Das habe ich im Nachhinein auch gesehen. Aus diesem Grund habe ich
überlegt einen LMD18200T zu verwenden. Meint ihr ich kann diesen
verwenden, trotz dass der Anlaufstrom etwa 0,5A zu hoch ist (dafür aber
nur 100 ms)?
Unter "Typical Applications" sind noch einige Schaltungserweiterungen,
wie z. B. "Fixed Off-Time Control", aufgeführt. Für welche Fälle ist das
zwingend notwendig? Oder anders gefragt: Benötige ich außer dem
LMD18200T noch weitere Bauteile (abgesehen von evtl. bestimmten
Widerständen / Kondensatoren)?
Noch eine Sache: Ansteuern möchte ich wiefolgt. An meinen Arduino Uno
möchte ich ein 0 - 10V Singal geben, dass sowohl die Drehrichtung, als
auch die Geschwindigkeit kodiert. Hierbei habe ich gedacht, dass < 5V
den Motor in deine eine Richtung drehen lässt (0V hohe Drehzahl) und bei
> 10V in die andere Richtung (10V hohe Drehzahl). Macht das so Sinn,
oder habe ich etwas nicht bedacht?
Viele Grüße.
P. S. schrieb:> Noch eine Sache: Ansteuern möchte ich wiefolgt. An meinen Arduino Uno> möchte ich ein 0 - 10V Singal geben, dass sowohl die Drehrichtung, als> auch die Geschwindigkeit kodiert. Hierbei habe ich gedacht, dass < 5V> den Motor in deine eine Richtung drehen lässt (0V hohe Drehzahl) und bei> 10V in die andere Richtung (10V hohe Drehzahl). Macht das so Sinn,> oder habe ich etwas nicht bedacht?
Es wird schwierig eine exakte Spannung von 5V zu halten um den
Stillstand zu garantieren. Falls die Stellgrösse in digitaler Form
verfügbar ist, sollte es besser über eine UART, oder SPI oder wie auch
immer kodiert dem Arduino zugewiesen werden.
In der Praxis wird dazu ein "Totband" definiert; zum Beispiel:
Spannung kleiner 0,5V = Volle Pulle links
Spannung zwischen 0,5 und 4,5 Volt = analog Geschwindigkeit links
Spannung 4,5 bis 5,5 Volt = Stillstand
5,5 bis 9,5 Volt = Geschwindigkeitsstellung rechts rum
Größer 9,5 Volt = Volle Pulle rechts
Aber woher sollen die 0..10 Volt kommen?
Arbeitet der Arduino nicht nur mit 5 oder gar 3,3 Volt?
Bzw. der ADC im Arduino liefert ja einen Digitalwert von 0..1023.
Da kann man dann ein 10kOhm Trimmer als Spannungsteiler vorschalten..
P. S. schrieb:> Ich habe gerade mal gemessen. Der Anlaufstrom liegt bei etwa 6,5 A (für> etwa 100ms),
Unwahrscheinlich, dass dein 6A Motor nur 6.5A beim Anlauf zieht, eher
12A, blockier ihn doch mal zum messen.
In 100ms ist ein Transistor schon kaputt.
MaWin schrieb:> P. S. schrieb:>> Die PWM-Frequenz sollte ich sicherlich irgendwo im kHz-Bereich suchen,>> ja?> Warum ?> Drehstrommotore und Wechselstrommotore arbeiten auch an 50Hz gut.
50 Hz Grundfrequenz, aber nicht die Modulationsfrequenz, sind zwei
verschiedene paar Schuhe.
>> Ich möchte einen 24V/6A DC-Motor antreiben.> Wie viel Strom braucht denn der Motor beim Anlaufen=Blockieren ? Das ist> nämlich der Strom, auf den die Elektronik auszulegen ist, sonst ist sie> schon beim ersten Anlauf kaputt.
Quatsch, dann wäre jeder Umrichter weit mehr als Überdimensioniert.
Ungefähr 1,2 x Nennstrom. Du hast ja PWM, also kannst den Motor sanft
hochfahren lassen.
Ja wenn er sanft hochfährt, d.h. geringes Losbrechmoment hat. Bei
Drehzahl 0 braucht er auch viel mehr Strom fürs Drehmoment, als bei
Nenndrehzahl. Daher hatte man früher bei Festplatten auch ne extra
Startstromleitung.
BirgerT schrieb:> In der Praxis wird dazu ein "Totband" definiert; zum Beispiel:>> Spannung kleiner 0,5V = Volle Pulle links> Spannung zwischen 0,5 und 4,5 Volt = analog Geschwindigkeit links> Spannung 4,5 bis 5,5 Volt = Stillstand> 5,5 bis 9,5 Volt = Geschwindigkeitsstellung rechts rum> Größer 9,5 Volt = Volle Pulle rechts
Vielen Dank, das ist guter Hinweis. So werde ich das wohl machen.
> Aber woher sollen die 0..10 Volt kommen?> Arbeitet der Arduino nicht nur mit 5 oder gar 3,3 Volt?>> Bzw. der ADC im Arduino liefert ja einen Digitalwert von 0..1023.> Da kann man dann ein 10kOhm Trimmer als Spannungsteiler vorschalten.
Da habe ich nicht dran gedacht, dass der Arduino an den Input Pins nur 0
bis 5 V handeln kann. Meine Spannung kommt von extern (ein PC). Dann
muss ich wohl die Mitte auf 2,5V legen. Seht ihr eine andere
Möglichkeit, da ich so ja nur einen recht kleinen Bereich habe, um die
Drehzahl zu steuern (2V)?
MaWin schrieb:> P. S. schrieb:>> Ich habe gerade mal gemessen. Der Anlaufstrom liegt bei etwa 6,5 A (für>> etwa 100ms),>> Unwahrscheinlich, dass dein 6A Motor nur 6.5A beim Anlauf zieht, eher> 12A, blockier ihn doch mal zum messen.>> In 100ms ist ein Transistor schon kaputt.
Ich habe mich wohl geirrt. Die 6A im Eingangspost waren wohl falsch.
Also der Motor benötigt 500mA im normalen Betrieb und im Anlauf 6,5A.
Also nochmal die Frage: Kann ich den LMD18200T verwenden? Der
Maximalstrom liegt laut Datenblatt bei 6A. Brauche ich außer
Widerständen/Kondensatoren weitere Beschaltung?
Vielen Dank für eure Antworten. :)
Oleg Ayranov schrieb:> Stillstand zu garantieren. Falls die Stellgrösse in digitaler Form> verfügbar ist, sollte es besser über eine UART, oder SPI oder wie auch> immer kodiert dem Arduino zugewiesen werden.
P. S. (n0r0) schrieb:
> Hierbei möchte ich sowohl die Drehzahl, als auch> die Richtung über einen PC steuern.
Er kann also direkt über USB verbinden.
Gruss Chregu
Ich schlage eine fertige Lösung um nicht von der Kernaufgabe des TE
abzulenken / unnötig viel Aufwand zu betreiben. Es sehr viele Module,
meist aus dem Bereich der Robotik / des Modellbaus, die über
verschiedene Schnittstellen Motoren direkt ansteuern können.
Z.B. Pololu:
https://www.pololu.com/category/10/brushed-dc-motor-controllers
Beispielsweise der Simple-High-Power Motor Controller 24V12, der 5,5 bis
40V und 12A kann und auf verschiedneste Weise angesteuert werden kann.
batman schrieb:> Bei> Drehzahl 0 braucht er auch viel mehr Strom fürs Drehmoment, als bei> Nenndrehzahl.
Komisch, bei mir braucht er überhaupt keinen Strom, wenn er sich nicht
dreht.
P. S. schrieb:> Also nochmal die Frage: Kann ich den LMD18200T verwenden?
Kannst Du nehmen, wenn Du ihn gut bekommst. Ich würde einen L6202/3
nehmen.
Mit kurzer Rampe anzufahren und abzubremsen ist immer ratsam.
m.n. schrieb:> batman schrieb:>> Bei>> Drehzahl 0 braucht er auch viel mehr Strom fürs Drehmoment, als bei>> Nenndrehzahl.>> Komisch, bei mir braucht er überhaupt keinen Strom, wenn er sich nicht> dreht.>
Welches Drehmoment hat er denn dann?
noti schrieb:> Ich schlage eine fertige Lösung um nicht von der Kernaufgabe des> TE> abzulenken / unnötig viel Aufwand zu betreiben. Es sehr viele Module,> meist aus dem Bereich der Robotik / des Modellbaus, die über> verschiedene Schnittstellen Motoren direkt ansteuern können.> Z.B. Pololu:> https://www.pololu.com/category/10/brushed-dc-moto...> Beispielsweise der Simple-High-Power Motor Controller 24V12, der 5,5 bis> 40V und 12A kann und auf verschiedneste Weise angesteuert werden kann.
Vielen Dank, das ist auf jeden Fall eine gute Alternative. Um einen
möglichst hohen Lerneffekt zu erzielen, gefällt mir aktuell die Arduino
/ LM18200-Lösung am besten.
> P. S. schrieb:>> Also nochmal die Frage: Kann ich den LMD18200T verwenden?>> Kannst Du nehmen, wenn Du ihn gut bekommst. Ich würde einen L6202/3> nehmen.> Mit kurzer Rampe anzufahren und abzubremsen ist immer ratsam.
Vielen Dank, ja an den LMD18200T komme ich recht gut ran. Der L6202 ist
nur für 5A Peak Current ausgelegt und für bis zu 10A bei weniger als
1ms. Da bin ich allerdings mit meinen 6,5A @ 100ms drüber. Du meinst,
der hält das trotzdem aus (auch über einen längeren Zeitraum)?
Bezüglich des LMD18200 Ansonsten wurde in einem TI-Forum angeraten,
weitere 4 Schottky-Dioden zu schalten, zwischen:
* VCC --|<|-- Output1
* VCC --|<|-- Output2
* Output1 --|<|-- GND
* Output2 --|<|-- GND
Welche Randbedingungen sollten die Dioden erfüllen? 40V / 10 A wäre
okay?
Vielen Dank und beste Grüße
P. S. schrieb:> Vielen Dank, ja an den LMD18200T komme ich recht gut ran. Der L6202 ist> nur für 5A Peak Current ausgelegt und für bis zu 10A bei weniger als> 1ms. Da bin ich allerdings mit meinen 6,5A @ 100ms drüber. Du meinst,> der hält das trotzdem aus (auch über einen längeren Zeitraum)?
Den L6203 verwende ich für (Größenordnung) Scheibenwischermotore: kein
Problem mit kurzer Rampe.
batman schrieb:> Welches Drehmoment hat er denn dann?
Kein Drehmoment. Wenn ich Drehmoment brauche, gebe ich einen Strom vor.
Das Drehmoment hängt vom Strom ab und nicht umgekehrt!
m.n. schrieb:> Komisch, bei mir braucht er überhaupt keinen Strom, wenn er sich nicht> dreht.
Dann hast Du aber einen ungewöhnlichen Motor. Im Stillstand wird
der Strom normalerweise nur durch den ohmschen Widerstand begrenzt
und beträgt typisch 10x Nennstrom.
m.n. schrieb:> P. S. schrieb:>> Vielen Dank, ja an den LMD18200T komme ich recht gut ran. Der L6202 ist>> nur für 5A Peak Current ausgelegt und für bis zu 10A bei weniger als>> 1ms. Da bin ich allerdings mit meinen 6,5A @ 100ms drüber. Du meinst,>> der hält das trotzdem aus (auch über einen längeren Zeitraum)?>> Den L6203 verwende ich für (Größenordnung) Scheibenwischermotore: kein> Problem mit kurzer Rampe.
Alles klar, danke.
Als Schutzdioden (siehe mein vorheriger Post) eignen sich diese Dioden?
* MULTICOMP MBR1060
Den Hinweis bezüglich der Dioden habe ich von hier:
https://e2e.ti.com/support/power_management/isolated_controllers/f/188/t/184260
Viele Grüße.
Hi P.S.,
bevor Du selber das Schaltungsentwickeln und Platinenätzen anfängst..
..es sieht so aus, als ob man diesen Bausatz "hacken" kann
http://www.pollin.de/shop/dt/Mzc5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_Drehzahlsteller_fuer_Gleichstrommotoren.html
Da ist schon ein AtMega drauf, ein Analogeingang (für die 0..5V) wäre
noch frei, und einen freien Pin für eine Relaisansteuerung
(Motordrehrichtung umschalten) gibt es auch noch. nur das ganze Programm
müsstest Du neu schreiben, weil die Sourcen nicht zur Verfügung stehen.
Zum Programmieren müsste der Programmer an die Taster
Eine weitere Alternative wäre ein Fahrtregler aus dem Modellbau, der wie
ein Servo angesteuert wird. Für den Arduino und andere Mikrocontroller
gibt es ja Bibliotheken zur Servoansteuerung. Der Arduino müsste dann
nur aus dem Analogsignal die Servo Pulse für den Fahrtregler generieren.
Oder man baut einen (passenden mit NE556) Servotester so um, dass er
direkt mit 0..10V angesteuert werden kann, dann braucht man da gar nix
zu programmieren.
Aber wieviel Geld und Zeit Du investieren möchtest, musst Du selber
entscheiden.
Viel Erfolg, und halte uns auf dem Laufenden /BirgerT
Ich nehme mal die Preise von Reichelt:
LMD18200 für 19,70
L6203 für 3,80
Der L6203 braucht definitiv keine zusätzlichen Schutzdioden und hat
meines Erachtens den Vorteil, daß man die Brücken nach eigenem Gutdünken
ansteuern kann. Wenn man nur eine Richtung braucht, paßt er auch für
zwei Motore.
Geschickterweise nimmt man einen µC mit zwei PWM-Ausgängen, wie sie
schon ein ATtiny25 bietet. Ein weiterer Ausgang für Enable, sowie zwei
ADC-Eingänge für Strommessung und Poti zur Drehzahlvorgabe und die Sache
läuft.
Reicht Dir ne Zeichnung oder soll ich auch gleich noch ein Programm dazu
schreiben? ;-)