Forum: Mikrocontroller und Digitale Elektronik DC-Motor (Stepper?) für eine variable Umdrehungsgeschwindigkeit im definierten Bereich


von Bart J. (tecfreak)


Lesenswert?

Hallo,

für eines meiner Projekte benötige ich einen Antreib um eine Scheibe mit 
Neodym Magneten in einem definierten Bereich mit einer mehr oder weniger 
bestimmten Umdrehungsgeschwindigkeit rotieren zu lassen. Das Drehmoment 
ist dabei eigentlich zu vernachlässigen.

Probiert hatte ich das mal auf die Schnelle mit einem Mosfet, einem 
PC-Lüfter und einem Arduino mit seinem standardmäßigem 490Hz PWM Takt.
Von der dabei entstehenden Geräuschkulisse mal abgesehen, funktioniert 
dies eher schlecht als recht mit dem PC-Lüfter (bauartbedingt? 
brush-less?).

Ich möchte einen Bereich von ungefähr 100-400 rpm in mindestens 30 
Schritten steuern und das so linear wie es nur geht.

Was wäre für dieses Vorhaben zu empfehlen?
Ein Stepper mit nem passenden Treiber IC, oder lässt sich das auch mit 
einem DC Motor und einer H-Bridge realisieren?

Ich muss nicht die Kenntniss über die tatsächliche Umdrehungszahl haben. 
Reichen tut es, wenn der ungefähre Regelbereich angesteuert werden kann 
mit einem möglichst linearen Verlauf der einzelnen Stufen.

Das das Budget aktuell begrenzt ist, spielt der Kostenfaktor schon eine 
gewisse Rolle.


Bin für jeden Tipp sehr dankbar.

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


Lesenswert?

Bart J. schrieb:
> oder lässt sich das auch mit
> einem DC Motor und einer H-Bridge realisieren?

Eine H-Brücke brauchst du nur, wenn die Drehrichtung umgekehrt werden 
soll. DC-Motoren sind einfach und recht gut zu steuern, auch mit der 490 
Hz PWM eines AVR.
Eine Feedback Spule an den Magneten würde auch eine recht wirksame 
Regelung ermöglichen.

von m.n. (Gast)


Lesenswert?

Bart J. schrieb:
> Ich möchte einen Bereich von ungefähr 100-400 rpm in mindestens 30
> Schritten steuern und das so linear wie es nur geht.

Mit einem DC-Motor geht das gut und recht leise. Allerdings braucht er 
für diese niedrigen Drehzahlen ein passendes Getriebe. Für die 
Ansteuerung reicht ein Regler mit einem MOSFET.
Beitrag "Drehzahlregler für DC-Motor, ATmega48-328"

Mit einem Schrittmotor kann man die Drehzahl sehr genau vorgeben, 
weshalb keine Regelung notwendig ist.
http://mino-elektronik.de/Generator/takte_impulse.htm#bsp5
Die Drehzahl wird per Poti eingestellt, der Frequenzbereich kann 
entsprechend angepaßt werden. Auf der gleichen Seite finden sich auch 
Schaltungen/Programme für die Bedienung per RS232.

von Georg (Gast)


Lesenswert?

Bart J. schrieb:
> Ich muss nicht die Kenntniss über die tatsächliche Umdrehungszahl haben.
> Reichen tut es, wenn der ungefähre Regelbereich angesteuert werden kann
> mit einem möglichst linearen Verlauf der einzelnen Stufen.

Dann darfst du einen DC-Motor nur wenig oder gleichmässig belasten, denn 
wenn die Drehzahl wegen der Belastung absinkt, bekommt das eine Regelung 
ohne Messung der Drehzahl ja garnicht mit.

Bei einem Schrittmotor ist die Drehzahl durch die Schritte/s fest 
vorgegeben, solange er nicht überlastet ist, dann bleibt er womöglich 
ganz stehen.

Georg

von Uwe S. (regionalligator)


Lesenswert?

Bart J. schrieb:
> funktioniert
> dies eher schlecht als recht mit dem PC-Lüfter (bauartbedingt?
> brush-less

Ja, weil du die Pulsweite direkt durch die gesamte 
Kommutierungselektronik des BL-Lüfters schickst. Da dürfte z.B. am 
Eingang noch ein kleiner Elko sein, schon wird es schwierig. Auch dürfte 
es zu Wechselwirkungen zwischen Drehzahl und Taktfrequenz kommen.

Aber auch normale DC-Motoren sind ohne Drehzahlauswertung nicht 
hochgenau regelbar. Es geht also nur mit Tacho, oder gleich z.B. mit 
Schrittmotor.

von Bart J. (tecfreak)


Lesenswert?

Matthias S. schrieb:
> Eine Feedback Spule an den Magneten würde auch eine recht wirksame
> Regelung ermöglichen.
Könntest du das evtl. für den DAU näher erläutern bzw. hättes du einen 
Link für mich?

von m.n. (Gast)


Lesenswert?

Bart J. schrieb:
>> Eine Feedback Spule an den Magneten würde auch eine recht wirksame
>> Regelung ermöglichen.
> Könntest du das evtl. für den DAU näher erläutern bzw. hättes du einen
> Link für mich?

Bei solch niedrigen Drehzahlen reicht es nicht aus, pro Umdrehung nur 
einem Impuls auszuwerten. Entweder verwendest Du einen separaten 
Tachogenerator, einen hoch auflösenden Drehgeber, oder wertest die EMF 
des Motors aus, wie ich es Dir im obigen Link nahegelegt hatte.

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


Lesenswert?

m.n. schrieb:
> Bei solch niedrigen Drehzahlen reicht es nicht aus, pro Umdrehung nur
> einem Impuls auszuwerten.

Dasvon ist auch nicht die Rede, sondern von Magneten in der Mehrzahl:

Bart J. schrieb:
> eine Scheibe mit
> Neodym Magneten

Wenn man diese Magneten an einer Aufnehmerspule vorbeidreht, erhält man 
ein der Drehzahl proportionales Wechselsignal. Das kann auch mit einem 
Hallgenerator geschehen, kommt auf den Aufbau an.

von m.n. (Gast)


Lesenswert?

Matthias S. schrieb:
> Dasvon ist auch nicht die Rede, sondern von Magneten in der Mehrzahl:

Gut, dann nenn doch mal eine Stückzahl. 50? 100?
Passen die noch auf die Scheibe?
Bei > 2 Umdrehungen/s sollte man für eine Regelung schon 100 Hz 
Impulsfrequenz bekommen, um zügig regeln zu können.

Dann eher noch eine optische Abtastung mit Lochscheibe oder 
reflektierenden Balken.
Aber mit Arduino + PWM + DC-Motor alleine wird das nichts.

von W.A. (Gast)


Lesenswert?

Bart J. schrieb:
> Ich möchte einen Bereich von ungefähr 100-400 rpm in mindestens 30
> Schritten steuern und das so linear wie es nur geht.
>
> Das das Budget aktuell begrenzt ist, spielt der Kostenfaktor schon eine
> gewisse Rolle.

"so linear wie es nur geht" möchtest du nie und nimmer bezahlen. Dieser 
Wunschtraum kollidiert ganz heftig mit deinem Budget.

Vergiss es.

Du wirst eine Fehlergrenze angeben müssen, sonst wird das unbezahlbar.

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


Lesenswert?

m.n. schrieb:
> Gut, dann nenn doch mal eine Stückzahl. 50? 100?
> Passen die noch auf die Scheibe?

Er hat diese Scheibe doch schon inklusive Magneten - das ist doch nun 
wirklich nicht schwer zu verstehen. Lies nochmal den ersten Beitrag.

von m.n. (Gast)


Lesenswert?

Matthias S. schrieb:
> Er hat diese Scheibe doch schon inklusive Magneten - das ist doch nun
> wirklich nicht schwer zu verstehen. Lies nochmal den ersten Beitrag.

Ich brauche mehr Details!
So eindeutig steht das dort nicht. Und seine Versuche mit Arduino-PWM 
sehe ich nur als ersten Versuch einer Steuerung; von Regelung über die 
erfaßte Drehzahl ist da nicht die Rede.
"mit (einem) Neodym Magneten" interpretiere ich als Dativ. Falls es 
Plural sein sollte müßte doch irgendwo 's stehen ;-)

W.A. schrieb:
> "so linear wie es nur geht" möchtest du nie und nimmer bezahlen. Dieser
> Wunschtraum kollidiert ganz heftig mit deinem Budget.

Ein Schrittmotor mit quarzstabilem Taktgeber löst das Problem zu einem 
Schnäppchenpreis.

von Bart J. (tecfreak)


Lesenswert?

Hallo,

danke euch allen für die sehr wertvollen Tipps.
Ich werde es erstmal mit Schrittmotoren versuchen und habe mir dazu zwei 
kleine NUMA 17 bestellt und A4988 Controller.
Denke damit wird das gehen.

Und um die offenen Fragen zu beantworten...
Es handelt sich um einen Zylinder aus ABS in dem zwei zylindrische 
Neodymmagneten eingelassen sind. Das ganze soll als "Rührwerk" für einen 
DIY Magnetrührer dienen.
Die Drehzahl möchte ich dazu im Bereich von 100-400 steuern können in 
min. 30 Schritten mit einer maximalen Abweichung von +/-5 Umdrehungen 
pro Stufe.

Das sollte mit einem Stepper hoffentlich realisierbar sein.
Muss mir nur noch überlegen wie ich am besten einen der Timer des 
ATMEGA32u4 dazu einstelle um dies zu erreichen.


Vielen Dank nochmal,
Bart

von Georg (Gast)


Lesenswert?

Bart J. schrieb:
> Muss mir nur noch überlegen wie ich am besten einen der Timer des
> ATMEGA32u4 dazu einstelle

Ich habe solche Rührer für die chemische Industrie gebaut. Zur 
Drehzahleinstellung habe ich eine Tabelle verwendet 1..500 U/min mit den 
entsprechenden Timerwerten. Ist für einen kleinen Controller einfacher 
als eine Division auszuführen.

Georg

von m.n. (Gast)


Lesenswert?

Georg schrieb:
> Ist für einen kleinen Controller einfacher
> als eine Division auszuführen.

Dein armer µC, mir kommen die Tränen.
Bei meinem obigen Beispiel rechne ich mit float. Das ergibt beste 
Auflösung und der µC muß nicht in irgendwelchen Tabellen herumkramen.

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.