Hallo Community, ich würde gerne wissen ob es möglich ist einen kleinen Schrittmotor ohne zusätzlichen Treiber mit einem Microcontroller zu steuern. Über die Suchfunktion habe ich dazu leider nichts eindeutiges gefunden. Hier ein paar Deteils. Als Microcontroller verwende ich den AT90USBKEY2 von Atmel (90USB1287). Der Schrittmotor ist wirklich klein und "zuckt" bereits ab 3V. Der Strom den das Board vom USB anschluss bekommt sollte also ausreichen um den Motor zu bewegen. Zum Steuern habe ich an zwei H-Brücken gedacht (eine pro Spule). Leider habe ich keine 8 Schalter hier um einen Zyklus manuell durchzugehen, habe dies aber schon durch "Anhalten" zweier Kabel durchgespielt um zu sehen ob die Spannung ausreicht. Das Steuern der Zuleitung ist kein Problem (4 Pins als Ausgang vom µC etc.) aber wie bekomme ich die Rückleitung geregelt? Geht das überhaupt? Kann man einfach immer einen der restlichen 4 Pins auf Eingang schalten, so dass der Strom fließen kann? Sind die restlichen "Eingänge" dann geschlossen? Ich hoffe man versteht was ich vorhabe ;) Gruß Tobi
Hallo Tobi! Ich würde sagen, das kannst Du vergessen. Die Portpins können max. 20mA. Ich wüsste keinen Motor, der damit auskommt. Mit freundlichen Grüßen Thorsten Ostermann
Tobias St. schrieb: > Der Schrittmotor ist wirklich klein und "zuckt" bereits ab 3V. Spannung ist nicht Strom. Und der ist beim µC meist die limitierende Größe.
Habe es eben noch einmal getestet, mit einem simplen Programm, dass einfach auf PinA0 Strom ausgibt. Soweit ich weiß liegt die Spannung, die bei den Ports ausgeht, bei etwa 3.3v? Habe leider keine Möglichkeit das zu messen. Wenn man nun nach dem Prinzip der H-Brücke den Motor manuell anspricht, macht er jeweils einen Schritt. Sollten es wirklich nur 20mA sein, so reichen diese offenbar aus für einen Schritt. Der Motor ist wirklich winzig. Zum Größenvergleich habe ich zwei Photos gemacht und jeweils ein Eurocentstück daneben gelegt. Das ursprüngliche Flexkabel habe ich entfernt und durch 1.27er Flachbandkabel ersetzt mit 2.54er Stiften. War die Aussage "Ich würde sagen, das kannst Du vergessen." nun nur auf die Stromstärke bezogen, oder scheitert es darüber hinaus noch an etwas anderem? ;)
Ich wusste ja nicht, dass du ein "Motörchen" meintest. Was hat der denn für einen Nennstrom? Viel mehr als die 20mA dürften das ja nicht sein? Mit freundlichen Grüßen Thorsten Ostermann
Ja die Rede ist von einem Motörchen ;) Aber wie kann ich diesen nun Ansteuern? Geht das so wie ich das vorhabe? Soll ich einmal versuchen eine Zeichnung bzw. Schaltskizze anzufertigen, damit man weiß wie ich es meine?
Thorsten Ostermann schrieb: > Ich wusste ja nicht, dass du ein "Motörchen" meintest. Was hat der denn > für einen Nennstrom? Viel mehr als die 20mA dürften das ja nicht sein? Es gäbe da noch die ein bisschen unfeine Lösung, mehrere Pins parallelzuschalten. Etwas riskant, man muss halt auf die Software genau aufpassen, aber man spart dadurch evtl. ein paar Transistoren.
So, ich habe es einmal Aufgezeichnet. Kann das Zusammenführen von Pins schäden am Board/µC verursachen? dann würde ich davon gerne absehen. Die beiden Grünen "Balken" in der Skizze sollen die Spulen des Motors sein ;) Die Idee war es die Pins auf der linken Seite als Ausgang zu schalten. Auf der rechten Seite wird jeweils der Pin, der Strom zurückführen soll als Eingang geschaltet. Beispiel: DDRA = 0x8F Sind nun Pin6, Pin5 und Pin4 im Tri-State, so dass dort kein Strom fließen kann, selbst wenn Spannung anliegt? Es geht ja darum so eine Art Schalter zu simmulieren. Beim Ausgang des µC (beim Zufluss zum Motor) kein Problem. Drei Schalter offen, und einer geschlossen entspricht ja z.B.: PortA = 0b00001000. Aber wie regel ich das beim rückfließenden Strom des Motors? Wie und wohin leite ich diesen geregelt ab?
Tobias St. schrieb: > So, ich habe es einmal Aufgezeichnet. Kann das Zusammenführen von Pins > schäden am Board/µC verursachen? ... Ja, wenn aus Versehen, z.B. durch einen Programmfehler beide Pins als Ausgang geschaltet sind und der eine auf H, der andere auf L steht. > Die Idee war es die Pins auf der linken Seite als Ausgang zu schalten. > Auf der rechten Seite wird jeweils der Pin, der Strom zurückführen soll > als Eingang geschaltet. Da hast du etwas falsch verstanden. Damit Strom durch die Spule fließt, muß an jedem Ende ein als Ausgang programmierter PortPin hängen. Der eine von den beiden wird auf L gesetzt, der andere auf H. In einen Eingang vom µC kann kein Strom fließen - es sei denn, die Spannung ist zu hoch, so dass Strom über die Schutzdioden abgeleitet wird.
Hey, ich finde die Idee interessant. Und der Motor ist ja mal genial ;) Aber warum sind 4 Treiber Transen bzw. 8 Transistoren (kann ja SMD sein) nicht drinnen ? LG Tim
Tiom schrieb: > Aber warum sind 4 Treiber Transen bzw. 8 Transistoren (kann ja SMD sein) > nicht drinnen ? Überleg mal, wieviel Platinenfläche das im Vergleich zum Motor erfordert. So ein Datenblatt zu dem Teil wäre allerdings das Größte ...
Hallo, nach einem Datenblatt habe ich schon gesucht, leider ohne Erfolg. Gerne kann ich aber angeben was unten auf dem Motorgehäuse aufgedruckt ist: GSM0601 NF DC Vielleicht hat ja hier jemand mehr Erfolg. Mit L (low) und H (high) meinst du 0 und 1? Oder ist damit Active-low und Active-high, also ein Pull-Up bzw. ein Pull-Down gemeint? Ich hatte das so verstanden, dass man diese nur bei Eingängen dazu schalten kann, damit definiert ist was für eine Spannung anliegt, wenn kein Signal eingeht. Ich bin wirklich blutiger Anfänger auf dem Gebiet. Programmieren "kann ich gut", aber bei Elektronik hört es bei mir auf ;) Transistoren habe ich keine hier, und müsste dann erst einmal welche organisieren. Allerdings glaube ich, dass SMD meine mangelnden Lötfähigkeiten überschreiten würde. Wegen den Platzbedenken, man könnte ja Lackdraht nehmen, den Transistor anlöten und dann Schrumpfschlauch drüber ziehen, dann kann man dieses Bündel am Motorgehäuse ankleben oder so. Allerdings stelle ich mir unter einem Transistor zur Zeit so etwas wie eine Diode oder einen Widerstand vor (von der Größe). Brauche also noch etwas Hilfe beim Verständnis ^^ Gruß Tobi
Nachtrag: Was Transistoren sind weiß ich nun. Dennoch habe ich keine hier und hatte auch eigentlich gehofft dass keine weiteren Teile nötig sind.
Tobias St. schrieb: > nach einem Datenblatt habe ich schon gesucht, leider ohne Erfolg. Man könnte die elektrischen Daten auch grob selbst bestimmen. Der Maximalstrom ist beim Schrittmotor meist durch die Eigenerwärmung festgelegt. Man kann also beide Wicklungen z.B. in Serie schalten, vorsichtig mit einer einstellbaren Stromquelle langsam (über etliche Minuten) den Strom erhöhen und dabei die Temperatur beobachten. "Reichlich handwarm" ist auf jeden Fall in Ordnung. Zu diesem Strom kann man dann auch die Spannung über einer Wicklung messen und hat dann schon mal einen Anhaltspunkt. Wenn die Anwendung weniger Drehmoment erfordert, kann man den Motor natürlich auch mit weniger Strom betreiben.
Werner schrieb: > Da hast du etwas falsch verstanden. Damit Strom durch die Spule fließt, > muß an jedem Ende ein als Ausgang programmierter PortPin hängen. Der > eine von den beiden wird auf L gesetzt, der andere auf H. Wenn ich auf beiden Seiten der Spule einen Ausgang lege, liegt doch auf beiden Seiten Vcc an, da kann dann nichts fließen. Mit L und H setze ich doch nur die Widerstände bei Eingängen, damit kein Tri-State am Pin entsteht, also das Signal immer definiert ist. Oder wie war das gemeint? Meine Ursprüngliche Idee war folgende: Zunächst Pin 0 - 3 auf immer als Ausgang. -Erster Schritt: Spannung an Pin 3 und Pin 1 anlegen, Pin 4 und Pin 6 ebenfalls als Ausgang, und Spannung anlegen, dass Vcc gegen Vcc den Stromfluss "sperrt". Pin 5 und Pin 7 als Eingang mit Pull-Down Widerstand, dass der Strom zu GND abfließen kann. -Zweiter Schritt: Spannung an Pin 2 und Pin 1 anlegen, Pin 5 und Pin 6 ebenfalls als Ausgang, und Spannung anlegen. Pin 4 und Pin 7 als Eingang mit Pull-Down Widerstand. -usw... Kann das überhaupt klappen?
Ich hoffe das überhaupt noch jemand mitliest ;) Welche SMD Transistoren könnte man denn nehmen? Ist das egal welche man da nimmt? Dann fahr ich morgen schnell bei Con*** vorbei und hol welche. Gruß Tobi
Tobias St. schrieb: > Wenn ich auf beiden Seiten der Spule einen Ausgang lege, liegt doch auf > beiden Seiten Vcc an, da kann dann nichts fließen. Mit L und H setze ich > doch nur die Widerstände bei Eingängen, damit kein Tri-State am Pin > entsteht, also das Signal immer definiert ist. Oder wie war das gemeint? Da hast du noch etwas falsch verstanden, ein auf Ausgang geschalteter Pin hat liegt bei High-Pegel auf VCC und bei Low-Pegel auf GND.
Tobias St. schrieb: > Okay. Also geht es ja gar nicht ohne Transistoren. Wieso? Guck dir mal im Datenblatt des 90USB1287 im Abschnitt 10.2 (Ports as General Digital I/O) die Figure 10-2 (General Digital I/O) an. Das kleine "Dreieck", dass direkt an Pxn geht ist der Ausgangstreiber und der besteht aus zwei FETs, einer Richtung VCC und einer Richtung Gnd.
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.