Stepper / BLDC Motor - was kaufen?

  • Hallo,

    ich bin etwas ahnungslos, das wisst ihr ja.

    Aber ich habe Bock was auszuprobieren und würde mal wieder was bestellen um spontan losbasteln zu können.


    Aus Neugier habe ich mal ein paar Festplatten und DVD Laufwerke geschlachtet.


    Da sind u. a. schöne Motoren drin, von denen nur der eine, nämlich der Schubladenmotor des DVD als normaler Motor mit z. B. einem Akku läuft.


    Für die Steppermotoren der Laseroptik brauche ich eine Steppersteuerung, das macht natürlich auch nur Sinn wenn ich da z. B. ein Arduino mit verwende - denn irgendwas will ich dann ja steuern können.


    Andererseits habe ich z. B. aus der HDD einen sogenannten BLDC Motor, der zwar kein Stepper ist, aber ähnlich angesteuert wird.


    1. Wenn ich mir so 1, 3, 7 Arduionos kaufen müsste, welches Modell oder Klon würdet ihr nehmen? So auf Verdacht für mein Bastellager. Es gibt da ja winzig kleine und so Pi-mäßig große.


    2. Gibt es für die 1000 verfügbaren Stepper-Module / Boards ebenso eine Empfehlung?


    3. Den / Die BLDC Motoren würde ich gern als per Poti regelbaren Motor für z. B. mein Magnetrührer-Projekt nehmen. Hier hab ich gar keinen Plan welche Platine oder was ich bräuchte. Tipps?


    Danke und Grüße,

  • Zwecks der Arduinos mag ich die Nanons gerne. Lassen sich gut mit den Jumper-Wires verbinden, aber auch mal auf einer Platine einsetzen. Sehr viel mehr als der klassische "Uno" kann das Dingens auch nicht. Es passen halt die Shields nicht drauf. Einen konkreten Klon kann ich dir jetzt allerdings nicht nennen.

    Wenn mehr Power benötigt wird, wären auch Boards aus der STM32-Familie interessant. BluePill und wie sie alle heißen. Sind halt oft 3,3V statt 5V, muss man aufpassen.


    Zwecks Stepper & BLDC-Motoren kann ich dir jetzt leider nicht weiterhelfen.

    Ich weiß aber, dass es für Stepper richtige Boards gibt, die sich dann mehr oder weniger selbst um die Ansteuerung des Steppers kümmern - du selbst gibst nur noch die Richtung und die Impulse vor, und reine "Endstufenboards", da muss der µC dann mehr oder weniger alles selbst machen (du selbst kannst auf Bibliotheken setzen).

    Ich würde eher ersteres bevorzugen.

    Mit BLDC-Motoren habe ich mich noch gar nicht beschäftigt.


    Wenn du nur drehen willst: es gibt auch Treiber für Gleichstrommotoren.

  • Die Treiber in deinem 3D-Drucker sind zb auch geeignet um Stepper anzusprechen.

    Bin mir nicht sicher, ob du deine nicht auch getauscht hattest und deine alten über sind.


    Ich würde auch zu einem "Motor-Shield" greifen.

    Stabile Stromversorgung und meist alle arten von Motoren anschließbar.

    Arduino: egal, so lange der einen vernünftigen USB-Eingang hat :)

  • So, ich habe mal ein paar Komponenen gekauft und ein bisschen rumgehext.


    Basis ist Arduino, ich habe mir ein paar Nanos von AZDelivery gekauft.


    Dann habe ich den Ansatz verfolgt mit dem Poti nur die 0 - 100 % zu definieren und dies am einem analogen Pin einzulesen.

    Zusätzlich habe ich noch ein kleines Display gekauft, zum rumspielen.


    Nun habe ich 2 Sketches, die beide funktionieren.

    Einen, der auf dem Display einen Balken darstelle, 0 - 100%, je nach dem wie weit ich das Poti aufdrehe.

    Und der andere, der nach Aufdrehen des Potis dem Motor regelt.

    Beides habe ich mir natürlich so bisschen zusammengestoppelt und Tutorials übernommen.


    Wenn ich nun aber die beiden Sketches zusammenschmeiße, geht es nicht mehr.

    Der Motor zuckt dann nur noch und läuft nicht mehr.

    Die Zeile, die dafür verantwortlich ist, ist "display.display();"

    Da der ganze Spuk in der void loop abläuft, vermute ich ein Timing-Problem.

    Denn der ganze Mechanismus der BLDC Motoren beruht ja darauf die 3 Wicklungen gepulst voranzutreiben.


    Wie bekomme ich das dennoch hin?

  • Da brauchen wir den Code dafür, und ggf. auch Links zu den jeweiligen Bibliotheken, Display, bzw. Motorlibs gibts ja wie Sand am Meer.

    Und wenn du uns den Code hier lieferst, bitte an die "Code" Tags denken.


    Und dann natürlich auch die Frage: woher weißt du, dass diese Zeile für den Fehler verantwortlich ist?

    Was macht diese Zeile? Den jeweiligen Wert auf das Display schreiben?

    Wenn ja, dann der erste Ansatz: dass muss nicht bei jedem loop-Durchlauf passieren, sondern nur, wenn sich der Displayinhalt ändert.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!