Schrittmotor Tutorials

OP (Firma: Uni) #770906
Lesenswert?

Hallo Community,

ich suche verzweifelt ein Tutorial um einen Schrittmotor mit einem ATMEL 
ATMEGA8 µController anzusteuern.

Der Schrittmotor hängt an einem Darlington-Treiber und hat die 
Bezeichung:

STH-42G104 3.6DEB/Step 12V 0.16A (Shinano Kenshi Co. LTD Japan)

Leider habe ich weder ein Datenblatt noch sonst irgendwas dazu gefunden.

Der ATMEGA8 steckt auf einem myAVR Testboard und wird mir Assembler 
programmiert.

Kennt jemand ein Tutorial oder kann mir eine Starthilfe geben?

Vielen Dank.

Gruß
Dadio
#770935
Lesenswert?

>ich suche verzweifelt ein Tutorial um einen Schrittmotor mit einem ATMEL
>ATMEGA8 µController anzusteuern.

Du suchst? Nein. Du bist zu faul zum Suchen. Wenn du gesucht hättest, 
hättest du schon längst was gefunden.

http://www.roboternetz.de/wissen/index.php/Schrittmotoren
http://www.mikrocontroller.net/articles/Schrittmotor-Controller_%28Stepper%29
http://www.avrprojects.net/articles.php?lng=en&pg=65

>Der Schrittmotor hängt an einem Darlington-Treiber und hat die
>Bezeichung:
>STH-42G104 3.6DEB/Step 12V 0.16A (Shinano Kenshi Co. LTD Japan)
>Leider habe ich weder ein Datenblatt noch sonst irgendwas dazu gefunden.

Ohne Datenblatt ist's schonmal schlecht irgendwelche ICs verwenden zu 
wollen. Du kannst versuchen die Pinbelegung zu erraten, bzw. aus den 
Leiterbahnen der Platine, auf der das IC eingebaut ist/war, darauf zu 
schließen.

>Vielleicht fehlen mir auch einfach die richtigen Fachbegriffe nach denen
>ich suchen muss.

Also dann weiß ich ja auch nicht. Nach was könnte man wohl suchen?? 
Schrittmotor vllt. Dann noch AVR. Und dazu noch Assembler 
möglicherweise?

http://www.google.de/search?q=schrittmotor+avr+assembler

Und? So schwer ist's doch gar nicht.
Gast #771551
Lesenswert?

Jemand ... wrote:
>>Der Schrittmotor hängt an einem Darlington-Treiber und hat die
>>Bezeichung:
>>STH-42G104 3.6DEB/Step 12V 0.16A (Shinano Kenshi Co. LTD Japan)
>>Leider habe ich weder ein Datenblatt noch sonst irgendwas dazu gefunden.
>
> Ohne Datenblatt ist's schonmal schlecht irgendwelche ICs verwenden zu
> wollen. Du kannst versuchen die Pinbelegung zu erraten, bzw. aus den
> Leiterbahnen der Platine, auf der das IC eingebaut ist/war, darauf zu
> schließen.

Du Held! Er meint den Schrittmotor, nicht das IC.
#771668
Lesenswert?

Hallo Howard

Was suchst du denn, eine Anschlußbelegung des Motors oder einen 
Softwareschnipsel?
Also wenn es der Motor ist, schau dir mal 
www.wolfgang-back.com/PDF/Schrittmotor.pdf
an.
Da ist das Prinzip recht gut erläutert. Die Anschlüsse kannst du mit 
einen Durchgangsprüfer/Ohmmeter ausmessen.
Wenn es die Software ist, gib nochmal einen Ton
Gast #778067
Lesenswert?

Hallo,

vielen Dank für die vielen hilfreichen Tipps. Ich habe es jetzt soweit 
geschafft, dass der Motor sich schonmal nach links und rechts drehen 
kann :)

Der Code in Assembler sieht so aus:

<pre>
sm_step_rechts:  cli
  push  r16
  rcall  wait
  ldi  r20,10
  out  PORTC,r20
  rcall  wait
  ldi  r20,9
  out  PORTC,r20
  rcall  wait
  ldi  r20,5
  out  PORTC,r20
  rcall  wait
  ldi  r20,6
  out  PORTC,r20
  rcall  wait
  pop  r16
  sei
  ret
</pre>

Für links ist es genau der gleiche Code nur ändert sich die Reihenfolge 
der Dezimalzahlen in: 6,5,9,10.

Meine Frage wäre nun was es mit dieser Zahlenfolge auf sich hat? Wenn 
ich die Zahlen beliebig ändere verhält sich der Schrittmotor komisch. 
Gibt es eine Referenz welche Codes was für ein Verhalten verursachen?

Vielen Dank für weitere Hilfe.
Gast #779143
Lesenswert?

Hallo Johannes,

danke für den Tipp.

Gibt es eine Möglichkeit den Schrittmotor vor jedem Start auf eine 
bestimmte Position zu setzen? Praktisch ein Reset? Da die Stromzufuhr 
jeder Zeit abgestellt werden kann, weiß ich ja sonst nie wo er sich 
gerade befindet.

Vielen Dank.
Gast #779156
Lesenswert?

Du hast soeben eines der großen Probleme mit Schrittmotoren entdeckt :-)

In vielen Anwendungen muss man sie "initialisieren", also auf eine 
definierte Position fahren. Dazu gibt es zwei (oder mehr) Möglichkeiten:
1. mit Endschalter: Der Schrittmotor fährt solange in eine bestimmte 
Richtung, bis der Endschalter betätigt wird --> Position = 
Schalterposition
2. ohne Endschalter: der Schrittmotor fährt eine gewisse Zeit lang in 
eine Richtung, bis er auch von der ungünstigsten Position aus gegen 
einen Endanschlag gefahren ist. Allzu schnell sollte er dabei allerdings 
nicht fahren, sonst rumst es zu sehr wenn er gegen den Anschlag fährt 
:-) Nach der 
von-der-ungünstigsten-Startposition-auch-noch-den-Anschlag-erreich-Zeit 
weiss man, dass sich der Motor am Anschlag befindet. (beachtet werden 
muss natürlich, dass er dabei nicht überlastet wird!)
Gast #779205
Lesenswert?

Vielleicht noch ein kleiner Hinweis:

Statt eines Endschalters kann man natürlich auch eine 
(Gabel-)Lichtschranke benutzen, durch die ein Teil des Schrittmotors 
bzw. der Mechanik hindurchläuft. So kann man die Position erkennen, der 
Antrieb kann aber durch den "Endschalter" Lichtschranke hindurchlaufen. 
(Bei einem normalen Endschalter dürfte meistens Schluss sein..).
Gast #779678
Lesenswert?

Das freut mich :-)

Beobachte mal bitte, ob der Motor ungewöhnlich heiss wird, wenn er an 
den Anschlag fährt. Nicht dass er dadurch überlastet wird und dauerhaft 
Schaden nimmt (ich glaubs aber eher nicht..).
Gast #779711
Lesenswert?

>Beobachte mal bitte, ob der Motor ungewöhnlich heiss wird, wenn er an
>den Anschlag fährt. Nicht dass er dadurch überlastet wird und dauerhaft
>Schaden nimmt (ich glaubs aber eher nicht..).

Das passiert bei Schrittmotoren nicht. Nach 4 Schritten am Anschlag 
fällt er wieder in die letzte nicht blockierte Position zurück.

MW

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren