Forum: Mikrocontroller und Digitale Elektronik Schrittmotor mit Atmega8/Attiny13 betreiben


von Daniel L. (dannynrw)


Lesenswert?

Hallo Leute,
nach längerer Bastelpause (was Elektronik betrifft) hab ich endlich mal 
wieder einen kleinen Versuch vor mir. Und zwar möchte ich einen wirklich 
winzigen Schrittmotor zum drehen bekommen. Hab da schon einiges drüber 
gelesen und weiß schon mal, daß ich natürlich einen Treiber benötige. 
Der Schrittmotor selbst ist bipolar (4 Anschlüsse), vom Fabrikat Switec 
und stammt aus einem ausgeschlachteten Golf3-Tacho. Ein genaues 
Datenblatt habe ich leider nicht, ich weiß nur, daß er aus dem 
originalen Tacho mit 5V angesteuert wurde (über PWM mit einer Frequenz 
von ca. 67Hz) und die Spulen einen Widerstand von je 270 Ohm besitzen. 
Wären also 18,5mA für je eine Spule, wenn diese dauerhaft mit einer 
Spannung von 5V betrieben würde. Die Werte für die Frequenz und die 
Spannung habe ich natürlich mit nem Oszi ermittelt, welches ich für 
einige Zeit geliehen bekommen habe.
Möchte zunächst versuchen, den Motor im Vollschritt anzutreiben,
benötige allerdings erstmal nen passenden Tipp für einen möglichst 
kleinen Treiber. Habe da mehrfach schon etwas von L293D gelesen oder 
aber L6203/L6205 und natürlich die Kombination aus L297/L298, welche 
allerdings deutlich überdimensioniert sein dürfte.
Damit wäre mir schon sehr geholfen, werde natürlich weiter fleißig lesen 
und versuchen, mal ne Drehung hinzubekommen.

Danke schon mal :).
Daniel

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


Lesenswert?

Der L293 ist ungeeignet, da dieser für DC-Motore gedacht ist. Ausser der 
L297/298 Kombi gibt es da noch den SAA1027, bin aber nicht sicher, ob 
dieser noch hergestellt wird.

von Floh (Gast)


Lesenswert?

Daniel Lo schrieb:
> 5V angesteuert wurde (über PWM mit einer Frequenz
> von ca. 67Hz) und die Spulen einen Widerstand von je 270 Ohm besitzen.

Quick and dirty:
4 IO-Pins, einer pro Motorkabel. Der Motor ist ja schön klein dafür.
:-)

von Daniel L. (dannynrw)


Lesenswert?

Warum ist der L293D ungeeignet?
Habe schon mehrfach gelesen, daß mit dem L293D gearbeitet wurde...
Hier z.B.
Beitrag "Bipolarer Schrittmotor an L293D"

von Daniel L. (dannynrw)


Lesenswert?

@Floh: Du meinst direkt an den Ports des ATmega8?
       Ich meine, in Erinnerung zu haben, daß sich ein einzelner Port 
mit
       20mA belasten lässt, da wäre die Reserve recht niedrig.
       Obwohl das sicher ne schöne und einfache Lösung darstellen würde.

von Floh (Gast)


Lesenswert?

Daniel Lo schrieb:
> daß sich ein einzelner Port
> mit
>        20mA belasten lässt

nö. Ein einzelner Pin kann garantiert 20mA treiben. Der maximal 
zulässige Strom liegt sogar bei ca 40 mA, sollte aber kein Dauerzustand 
sein.
Pro Vcc/Gnd-Pärchen sollte aber 200mA nicht überschritten werden.
Daher würde ich sagen, der Motor passt gut an die IO-Pins.
:-)

von olaf (Gast)


Lesenswert?

Floh schrieb:
> Daniel Lo schrieb:
>> 5V angesteuert wurde (über PWM mit einer Frequenz
>> von ca. 67Hz) und die Spulen einen Widerstand von je 270 Ohm besitzen.
>
> Quick and dirty:
> 4 IO-Pins, einer pro Motorkabel. Der Motor ist ja schön klein dafür.
> :-)

....hast du dich schon mal mit induktiven lasten beschäftigt?

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


Lesenswert?

Daniel Lo schrieb:
> Warum ist der L293D ungeeignet?

Ungeeignet ist vllt. nicht ganz richtig, immerhin hat der L293 4 
Halbbrücken, kann also als Endstufe für den Motor dienen. Er hilft einem 
allerdings kein bisschen beim Vereinfachen der Schaltung und/oder der 
Verringerung der benötigten Pins, was bei nem Tiny sicher interessant 
wäre.

von Daniel L. (dannynrw)


Lesenswert?

Matthias Sch. schrieb:
> Daniel Lo schrieb:
>> Warum ist der L293D ungeeignet?
>
> Ungeeignet ist vllt. nicht ganz richtig, immerhin hat der L293 4
> Halbbrücken, kann also als Endstufe für den Motor dienen. Er hilft einem
> allerdings kein bisschen beim Vereinfachen der Schaltung und/oder der
> Verringerung der benötigten Pins, was bei nem Tiny sicher interessant
> wäre.

Ah, so hast Du das gemeint. Ok, das hab ich verstanden lach.
Benötige für den L293D 4 Pins des µC, das stimmt. Möchte ja auch erstmal 
nen Überblick bekommen, welche Bausteine da für mich in Frage kommen 
würden, so daß eine dafür geätzte Platine schön klein wird.
Deshalb hatte ich im Titel sowohl den ATmaga8 als auch den Tiny erwähnt.

von Floh (Gast)


Lesenswert?

olaf schrieb:
> ....hast du dich schon mal mit induktiven lasten beschäftigt?

Szenario:
 Pin 1 ----- Motorspule ------ Pin2

Pin 1 high, Pin2 low:
Strom fließt von Pin1 über Spule zu Pin2

Pin1 wir abgeschaltet (-> beide Pins mit Masse verbunden):
Die Induktivität kann sich über Pin2 -> Masse -> Pin1 entladen.

Sowas wie ein aktiver Freilauf. (Falls ich einen Denkfehler hab, klär 
mich auf :-)

von Michael N. (much)


Lesenswert?

Hi,

von den genannten Treibern kenne ich aus eigener Erfahrung nur den 
L297/L298. Die anderen kenne ich nur so wage vom stöbern in den 
Datenblättern. Von L297/L298 würde ich dir abraten. Die sind schon zu 
alt und zu ineffizient.
Soweit ich mich erinnere kann der L293D schon als Schrittmotortreiber 
eingesetzt werden, aber nur im Doppelpack (1Treiber-IC pro Spule).
Falls du den Motor nur mit geringen Strömen und inm 
Voll-/Halbschrittbetrieb betreiben willst und der Aufbau dabei auch noch 
möglichst klein sein soll würde ich den Motor auch ohne  Treiber-IC 
ansteuern. Allerdings würde ich ein paar SMD-Transistoren  und ein paar 
Freilaufdioden parallel zu den Spulen spendieren.
Wenn er irgendwann auch Mikroschritte können soll dann schau dich mal 
bei Trinamic um. Die haben richtig coole Treiber in SMD-Bauform. Mit 
denen hab ich auch mal gearbeitet und vom Preis mal abgesehen sind die 
Dinger nur empfehlenswert.

lg
michael

von olaf (Gast)


Lesenswert?

Floh schrieb:
> olaf schrieb:
>> ....hast du dich schon mal mit induktiven lasten beschäftigt?
>
> Szenario:
>  Pin 1 ----- Motorspule ------ Pin2
>
> Pin 1 high, Pin2 low:
> Strom fließt von Pin1 über Spule zu Pin2
>
> Pin1 wir abgeschaltet (-> beide Pins mit Masse verbunden):
> Die Induktivität kann sich über Pin2 -> Masse -> Pin1 entladen.
>
> Sowas wie ein aktiver Freilauf. (Falls ich einen Denkfehler hab, klär
> mich auf :-)

....wie.sieht es aus, wenn etwas schneller geschaltet wird?

von Stryker_2k (Gast)


Lesenswert?

Bitte bitte: nie den Schrittmotor direkt an die Pins vom µC! Da sind 
induktive Lasten!

Der L293/L293d müsste super geeignet sein... er liefert pro Phase 
1000/600mA was für einen kleinen SM genügen sollte. Die Version ohne d 
hat keine eingebauten Freilaufdioden - die müsste man ggf. noch 
anklemmen - oder man nimmt gleich die d Version.

Im Datenblatt der L293d ist auf Seite 8 übrigends der Schaltplan zum 
ansteuern deines SM aufgezeichnet. Also falls dein SM jetzt nicht ein 
riesen Teil ist sollte das kein Grund sein es nicht zu probieren. Falls 
er zu wenig Dampf hat kann man immernoch seinen großen Bruden L297 
nehmen.

Ohne Werten zu wollen: Manche Chinesen verwenden sogar einen ULN2003 für 
SMen...

von Michael N. (much)


Lesenswert?

Michael N. schrieb:
> Soweit ich mich erinnere kann der L293D schon als Schrittmotortreiber
> eingesetzt werden, aber nur im Doppelpack (1Treiber-IC pro Spule).

In der Beziehung hab ich mich wohl geirrt. Siehe Figure 6 im Datenblatt.
http://www.ece.utexas.edu/~valvano/Datasheets/L293d.pdf

von dani s. (beginner1)


Lesenswert?

Und warum nicht selber was basteln mit kleinen Mosfets? Da haste noch 
Bastelspass dazu und lernst vlt. was neues.

von dani s. (beginner1)


Lesenswert?

...und bitte vergiss das mit direkt an den Pins, das gibt nix...

von spess53 (Gast)


Lesenswert?

Hi

>Bitte bitte: nie den Schrittmotor direkt an die Pins vom µC! Da sind
>induktive Lasten!

Praktisch ausprobiert oder Theorie?

Der L293 ist keine sonderlich guter Vorschlag. Da bleiben für den Motor 
ca. 3,5V übrig.

>Ohne Werten zu wollen: Manche Chinesen verwenden sogar einen ULN2003 für
>SMen...

Klar. Besonders für die bipolaren Schrittmotoren.

MfG Spess

von Stryker_2k (Gast)


Lesenswert?

spess53 schrieb:
>>Bitte bitte: nie den Schrittmotor direkt an die Pins vom µC! Da sind
>>induktive Lasten!
>
> Praktisch ausprobiert oder Theorie?

Ich gebe zu nur Theorie - lasse mich da auch gerne eines besseren 
belehren ;-)

Beim überfliegen habe ich erst jetzt gelesen, das der SM nur 18,5mA 
haben möchte - okay, mit Dioden dran "könnte" es funktionieren... mir 
streuben sich trotzdem die Haare...

> Der L293 ist keine sonderlich guter Vorschlag. Da bleiben für den Motor
> ca. 3,5V übrig.

Falls man nur 5V reingibt ;-)
Aber bei diesem Minimotor muss ich hinsichtlich dem 293er auch 
zurückrudern - der ist doch etwas zu hoch gegriffen...

von Daniel L. (dannynrw)


Lesenswert?

Danke erst einmal für die vielen schnellen Antworten!.
Hab schon gelesen, daß der ULN2003 sich nur für unipolare Schrittmotoren 
eignet weil bei geschaltetem Ausgang wohl nur das Potential auf Masse 
gezogen wird.
Aber nochmal zum L293D. An diesem kann doch an Vs die Spannung angelegt 
werden, die dann hinterher der Motor bekommt oder nicht? Hätte ja noch 
eine Spannung von 12V zur Verfügung, da ich ja sowieso mit 12V die 
gesamte Schaltung einspeisen würde.
Was wäre mit dem genannten L6203? Es gibt ja mit Sicherheit auch noch 
andere Alternativen, was Schrittmotortreiber angeht...
Kenne mich da halt noch nicht wirklich aus.

von Gelöscht (kami89)


Lesenswert?

Kennst du den Artikel H-Brücken Übersicht schon?
Vielleicht findest du da was passendes.

Was ich mich aber frage:
So ein kleiner Motor ist doch nicht stromgeregelt (Chopper-Betrieb), 
oder etwa doch?

von Daniel L. (dannynrw)


Lesenswert?

Ich denke nicht, daß hier Stromregelung zum Einsatz gekommen ist. Kann 
ja vielleicht nochmal versuchen, den Stromverlauf über nen Shunt zu 
oszilloskopieren. Allerdings sollte ich mich doch an die errechneten 
18,5mA als Nennstrom halten können oder nicht?

von Bruno I. (bjnas)


Lesenswert?

Also der L293D ist super für sowas, kann im Vollschritt sogar nur mit 2 
Pins betrieben werden. Man muss je ein Eingang des L293D dafür 
Invertieren. Schaltungen sind auf Google.

von Daniel L. (dannynrw)


Lesenswert?

So, habe mal über nen Shunt (1 Ohm) die Ströme gemessen, die sich bei 
der normalen Ansteuerung ergeben haben. Der Verlauf zeigte eine recht 
schöne Sinuskurve ohne diesen wellenartigen Verlauf, den ich bei 
Oszillogrammen mit Chopper-Betrieb gesehen habe. Stromregelung scheint 
also hier nicht vorhanden gewesen zu sein. Die Maximalströme lagen 
abgelesen bei ungefähr 20mA.
Werde noch ein wenig weiter nach passenden Bausteinen suchen, im Moment 
nehme ich den L293D jedoch in die engere Auswahl, da dieser außerdem 
leicht zu beschaffen ist. Wie läuft das beim L293D eigentlich mit der 
Versorgungsspannung für die Spulen? Wenn ich an Vs meine 5V anlege, 
bleiben mir wie schon vorher hier geschrieben nur noch ca. 3,5V davon 
übrig. Müsste dann ja quasi eine Spannungsversorgung von 7V zur 
Verfügung stellen, da der L293D ja keine Strombegrenzung hat oder?

von spess53 (Gast)


Lesenswert?

Hi

>Also der L293D ist super für sowas, kann im Vollschritt sogar nur mit 2
>Pins betrieben werden. Man muss je ein Eingang des L293D dafür
>Invertieren. Schaltungen sind auf Google.

Das man die Teile billig von Pollin hinterher geworfen bekommt macht sie 
noch lange nicht 'super'. Abgesehen von den erzeugten Verlusten sind die 
Dinger für eine vernünftige Schrittmotorsteuerung ungeeignet.

MfG Spess

von Steffen H. (avrsteffen)


Lesenswert?

Michael N. schrieb:
> Wenn er irgendwann auch Mikroschritte können soll dann schau dich mal
> bei Trinamic um. Die haben richtig coole Treiber in SMD-Bauform. Mit
> denen hab ich auch mal gearbeitet und vom Preis mal abgesehen sind die
> Dinger nur empfehlenswert.

Full ACK!

Das sollte mit einem TMC222SI zu meistern sein. Kostet zwar ca. 11€ bei 
Rei**elt, dafür könntest du den per I2C mit dem anvisierten Tiny13 
ansteuern.

Hatte vor einigen Jahren mal versucht das Datasheet auf deutsch zu 
übersetzen. Siehe
Beitrag "Re: Trinamic TMC222"

Gruß Steffen

von Daniel L. (dannynrw)


Lesenswert?

Also Mikroschritte habe ich erstmal nicht vor, will selbst erstmal 
Vollschritt und vielleicht höchstens noch Halbschritt probieren und das 
ganze ist für mich ja sowieso ein Einstieg.
Kann mir vielleicht noch jemand sagen, wie ich es schaffen würde, beim 
L293D den Motor strommäßig nicht zu überlasten? Habe ja nur die 5V (max. 
100mA über Spannungsregler LP2950) sowie die 12V als Spannungsversorgung 
zur Verfügung. Müsste ich dann noch eine dritte Spannung (z.B. über 
LM317t) von ca. 7V zur Verfügung stellen, die ich dann an Vs des L293D 
anlege?

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Also so einen Motor mit einem Mikroschritt-Treiber von Trinamic 
anzusteuern ist absoluter Overkill. Für Mikroschritt sind diese Motoren 
ohnehin nicht gemacht.

Man kann den tatsächlich einfach an einen Portpin hängen. Wenn einem das 
zu heikel ist, braucht man eine H-Brücke oder zumindest ein paar NPN und 
PNP-Transistoren. L293 und L298 sind insofern nicht optimal, weil bei 
denen intern relativ viel Spannung abfällt. Und der L6201/L6203 ist zu 
teuer. Der A3959 wäre eine Alternative, ich weiß aber nicht, wo man den 
als Endkunde bekommt. Ich müsste mal schauen, ob ich noch welche in DIP 
Bauform rumliegen habe.

Mit freundlichen Grüßen
Thorsten Ostermann

von Daniel L. (dannynrw)


Lesenswert?

Kann mir noch jemand nen Tipp zu meiner Frage oben geben? Muß ich also 
ca. 7V an Vs legen, um meine 5V an den Motor zu bekommen?

Danke :-) und beste Grüße aus NE :-).
Daniel

von Daniel L. (dannynrw)


Lesenswert?

So Leute, hab in Zwischenzeit selber mal n bissl getestet und mir 
einfach mal nen L293D bestellt. Damit ließ sich der Schrittmotor auch 
versuchshalber über das MyAVR-Board recht leicht ansteuern. Auch der 
Parallelbetrieb von zwei Schrittmotoren hat funktioniert, genauso wie 
Richtungsumkehr.
Hab hier allerings gelesen, daß Schrittmotoren leiser laufen sollen, 
wenn sie im Halbschritt- oder gar im Mikroschrittbetrieb angesteuert 
werden.
Kann dazu jemand etwas sagen?
Steuere ja momentan im Vollschrittbetrieb an und empfinde das 
Arbeitsgeräusch der Motoren relativ laut.
Lohnt es sich also, nochmals zu investieren und den ganzen Versuch 
vielleicht nochmal mit nem anderen Baustein zu fahren?
Achja, wieviel Geschwindigkeit wird in etwa eingebüßt, wenn anstatt des 
jetzigen Vollschrittbetriebes der Halb- oder Mikroschritt verwendet 
wird?
Danke Euch schon mal für Eure Tipps :-).

Allen eine gute N8.
Daniel

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?


von Wolfgang (Gast)


Lesenswert?

Daniel Lo schrieb:
> Achja, wieviel Geschwindigkeit wird in etwa eingebüßt, wenn anstatt des
> jetzigen Vollschrittbetriebes der Halb- oder Mikroschritt verwendet
> wird?

Warum sollte das zu Geschwindigkeitseinbußen führen? Im Wesentlichen 
sind die Phasensignale nur zeitlich feiner aufgeteilt..

von Daniel L. (dannynrw)


Lesenswert?

Hab's ja nur schon öfter gelesen... Hab ja, was Schrittmotoren angeht, 
keinerlei Erfahrungen und so kann ich nur in die Runde fragen.
Habe allerdings gesehen, daß wohl auch mit dem L293D Halbschrittbetrieb 
mögich ist. Werd's mal ausprobieren :-)

von Wolfgang (Gast)


Lesenswert?

Mit einem A3967 kannst du bis 1/16 Schrittbetrieb machen. Der Treiber 
kümmert sich im Gegensatz zum L293D auch um die Stromregelung, ohne die 
du nicht auf höhere Schrittfrequenzen kommst, sobald der Motor etwas 
Drehmoment abgeben muß.

von Daniel L. (dannynrw)


Lesenswert?

Also viel Drehmoment werde ich nicht benötigen denke ich, der Motor 
treibt ja nur nen Zeiger an. Wäre nur noch froh, den Motor ein wenig 
leiser zu bekommen. Habe jetzt auch mal Halbschritt ausprobiert und von 
der Geräuschentwicklung der Motoren hat sich da nichts (merklich) 
geändert.
Hab mir einfach auch mal den A3967 angesehen... Diesen gibt's nicht als 
DIP-Version oder? Am einfachsten wäre für meine Zwecke eine DIP-Version, 
da ich nicht die Möglichkeit habe, SMD-Bauteile zu verlöten.

Beste Grüße :-).
Daniel

von Wolfgang (Gast)


Lesenswert?

Daniel Lo schrieb:
> Am einfachsten wäre für meine Zwecke eine DIP-Version,
> da ich nicht die Möglichkeit habe, SMD-Bauteile zu verlöten.

SMD zu verlöten ist eigentlich kein Problem. Du läßt auf der Platine die 
Löcher weg und lötest die Bauteile direkt auf die Leiterbahnen ;-)
Vorteil von SMD ist, dass du alle Beine in einem Rutsch anlöten kannst 
und nicht jeden Pin einzeln. Viel Flußmittel ist das "Geheimnis".
http://www.youtube.com/watch?v=erb6-i54tbo

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.