Forum: Mikrocontroller und Digitale Elektronik Wie Schrittmotor steuern für Anfänger


von Mario H. (dogler)


Lesenswert?

Hallo Gemeinde, erstmal grüß ich euch hier und anschliessend muss ich 
mich mal als Anfänger im Microcontrolling ein bischen schlau fragen ;)

Ich möchte einen Schrittmotor mit 4 Polen ansteuern, nun hab ich schon 
einiges gelesen von wegen Treiber und Controller und 200 Schritten.

Nun geht es mir darum zu erfahren welche Bausteine ich alles brauche um 
ein Schrittmotor Versuchsaufbau zu bauen und vor allem wie ich ihn 
steuere ohne das da ein PC drann hängt?   ...also das er programmiert 
ist das er auf ein Spannungssignal reagieren und dann ein festgelegtes 
Stepping, also eine bestimmte Schrittzahl vollziehen und wieder 
abschalten soll bis zum nächsten Spannungssignal.

Ich bin bei meiner Suche auf diese zwei Seiten gestossen

http://www.shop.robotikhardware.de/shop/catalog/index.php?cPath=64&osCsid=fafbff15782644c30fff61651ab433cc

http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=30930

Welche Bausteine würdet ihr empfehlen und wie schreibe ich ein 
Steuerrungsprogramm und gibt es Bücher zur Einarbeitung in dieses Thema?

Ich sag schonmal DANKE für eure Hilfestellung ;)

: Bearbeitet durch User
von Düsendieb (Gast)


Lesenswert?


von Stephan (Gast)


Lesenswert?

Man nehme eine Zähler und einen Stepper IC z.B.TB 6560
Auf Knopfdruck startet der Zähler und taktet den Stepper IC.
Das Stepper IC braucht ja nur einen Takt pro Step und einen statischen 
Pegel, welcher die Richtung definiert.
In Hardware (ohne µC) ist das etwas aufwändiger als mit µC.

von spess53 (Gast)


Lesenswert?

Hi

>Hallo Gemeinde, erstmal grüß ich euch hier und anschliessend muss ich
>mich mal als Anfänger im Microcontrolling ein bischen schlau fragen ;)

Soll das heißen, das du einen Microcontroller verwenden willst? Wenn ja, 
welchen?

>Ich möchte einen Schrittmotor mit 4 Polen ansteuern, nun hab ich schon
>einiges gelesen von wegen Treiber und Controller und 200 Schritten.
>Nun geht es mir darum zu erfahren welche Bausteine ich alles brauche um
>ein Schrittmotor Versuchsaufbau zu bauen und vor allem wie ich ihn
>steuere ohne das da ein PC drann hängt?

Leg erst mal fest, was der Motor leisten muss. Dann kannst du einen 
passenden Motor auswählen. Und als letztes wird der zum Motor passende 
Treiber gewählt.

MfG Spess

von Mario H. (dogler)


Lesenswert?

> Leg erst mal fest, was der Motor leisten muss. Dann kannst du einen
> passenden Motor auswählen. Und als letztes wird der zum Motor passende
> Treiber gewählt.
>
> MfG Spess

Der Motor soll nix großartig leisten, das ist nur zum Versuch und zum 
Lernen, ich mach da irgend eine Zeigernadel drauf um zu sehen ob und was 
sich tut und ich will den Aufbau und das Programmieren lernen, also 
rumexperimentieren erstmal und später dann im Modellbau einsetzen.

Motoren hab ich hier genug rumfliegen, aus alten Tachos, Druckern und 
Floppys, ich wollte nur wissen wie ich ein funktionierendes System 
erstelle das ich nen Knopf drücke und der Schrittmotor dann was tut, 
meinetwegen 80 Schritt rechts und dann wieder zurück, also der Aufbau 
und mit was, bzw wie ich nen IC beschreibe (die Befehle) damit der dann 
selbstständig ne Routine abarbeitet!

von Kein Name (Gast)


Lesenswert?

Das ELV-Modul kann ja schon recht viel. Den 80-Schritte Knopf musst du 
trotzdem selbst bauen bzw programmieren.

Wenn du den Knopf auf einem PC programmieren möchtest - entweder das 
I2C-USB Interface mitkaufen oder einen Raspberry nehmen.

Natürlich geht statt einem PC auch eine Mikrocontroller und ein paar 
Taster. Ist halt mehr Aufwand, bis das Programm rund läuft.

Die Controllerboards von robotikhardware.de bringen dich nicht so 
wirklich weiter. Das ELV-Modul und ein PC erscheinen mir für den 
Einstieg einfacher.

Wenn du Stephans Zähler verwenden willst, währe ein einfaches 
Motor-Modul mit Step/Dir Eingang einfacher.

von Wolfgang (Gast)


Lesenswert?

Mario H. schrieb:
> Der Motor ... ist nur zum Versuch und zum Lernen
Gerade dann ist ein Aufbau, der auf Signal nur eine feste Schrittzahl 
erzeugt, sehr wenig lehrreich, weil es dich vieler 
Experimentiermöglichkeiten beraubt. Zum Lernen und Verstehen kannst du 4 
Umschalter On-Off-On verwenden und damit deinen Motor direkt ansteuern 
(ohne Controller).

von Mario H. (dogler)


Lesenswert?

Kein Name schrieb:
> Das ELV-Modul kann ja schon recht viel. Den 80-Schritte Knopf musst du
> trotzdem selbst bauen bzw programmieren.

Ja das ist ja was ich hier frage, wie mach ich das?

>
> Wenn du den Knopf auf einem PC programmieren möchtest - entweder das
> I2C-USB Interface mitkaufen oder einen Raspberry nehmen.

Was macht ein Raspberry, bzw wofür ist das ding gut?
>
> Natürlich geht statt einem PC auch eine Mikrocontroller und ein paar
> Taster. Ist halt mehr Aufwand, bis das Programm rund läuft.

Genau so war meine Denkrichtung   ...Mikrocontroller.
Also wie gesagt für später sollen meine noch nicht vorhandenen 
Kenntnisse in den Modellbau einfliessen und da ist ne Steuerrung per 
Stromimpuls am einfachsten, aber jetzt die Frage, wie wird das alles 
geschaltet?  ...ich brauch also ein Controller der einen Treiber 
beschaltet, der wiederum den Schrittmotor bestromt?

Der Controller bekommt einen kurzen Stromimpuls und lässt dann das 
gespeicherte Programm ablaufen oder wie?  ...und der Treiber verstärkt 
das ganze bloß weil ein Controller nicht genug Energie liefert um nen 
Motor anzutreiben?

Ist das jetzt soweit richtig was ich geschrieben hab?  ...und welche 
Bauteile würdet ihr empfehlen?  ...man sollte mit ganz kleinen Platinen 
auskommen können!

Einen Programmer/Flasher besitz ich schonmal und die Motoren, jetzt 
fehlen nur noch die Steuerrungsteile, also bitte mal ein paar Ratschläge 
geben ;)

von spess53 (Gast)


Lesenswert?

Hi

>Einen Programmer/Flasher besitz ich schonmal ...

Für welche Contollerfamilie? Und wie sehen deine Programmierkenntnisse 
aus? Einen Schrittmotor anzusteuern ist kein Hexenwerk, aber nicht 
unbedingt ein Einsteigerprojekt.

>...und die Motoren, jetzt fehlen nur noch die Steuerrungsteile, also bitte
>mal ein paar Ratschläge geben ;)

Nochmal: Man kann nur für einen kongkreten Motor einen Treiber 
empfehlen.

MfG Spess

von Kein Name (Gast)


Lesenswert?

Ach spess, seh das nicht so eng.

Irgendein Schrittmotor und des ELV-Modul sollte es doch erstmal tun.

Du brauchst 3 Teile:
1) Die Leistungselektronik, die genug Energie für den Schrittmotor 
liefert.
2) Ein zeitkritisches Programm, was die Beschleunigungsrampe berechnet 
und Impulse an die Leistungselektronik schickt.
3) Irgendein Anwendungsprogramm, das dem zeitkritischem Programm sagt, 
es soll 80 Schritte im Uhrzeigersinn machen.

Den 2. Teil macht das Modul selbst.

Der 3. Teil ist ganz normale Anwendungsprogrammierung. Ist nicht weiter 
schwierig. Du brauchst irgendein Programm, das über I2C die Befehle an 
das ELV-Modul sendet. Da tut es jeder PC und jeder Mikrocontroller.

>Was macht ein Raspberry, bzw wofür ist das ding gut?
Der Raspberry Pi ist ein vollständiger Linux-PC in der Größe einer 
Mikrocontroller Platine.

>Einen Programmer/Flasher besitz ich schonmal.
Dann nimm halt irgendeinen Conroller, der zu deinem Flasher passt und 
I2C kann.

Ob du deine ersten Versuche auf einem PC programmierst und später den PC 
durch einen Mikrocontroller ersetzt, oder gleich mit einem MC anfängst - 
must du wissen, was für dich einfacher ist.

von spess53 (Gast)


Lesenswert?

Hi

>Du brauchst irgendein Programm, das über I2C die Befehle an
>das ELV-Modul sendet. Da tut es jeder PC und jeder Mikrocontroller.

I2C ist bei PCs eher unüblich. Da fehlt dann noch ein passender 
USB-I2C-Umsetzer. Schlägt bei ELV zusätzlich mit 34.95€ zu Buche.

Zur Ansteuerung über µC liefert ELV keine Informationen mit.

Allerdings scheint der von ELV verbaute Controller ein IC von Trinamic 
zu sein. Ein TMC222 würde von der Bauform und den technischen Daten 
passen. Für den gibt es ein Datenblatt.

MfG Spess

von Stephan (Gast)


Lesenswert?

Kein Name schrieb:
> Ein zeitkritisches Programm, was die Beschleunigungsrampe berechnet
> und Impulse an die Leistungselektronik schickt.

Naja, wir wollen es mal nicht gleich übertreiben.
Lineares Fahren sollte erstmal reichen. Zumal er ja keine Last hat.

von Stephan (Gast)


Lesenswert?

Falls der PC noch einen Druckeranschluß hat, reicht auch ein kleines 
Basic Programm und 2 Pins von Druckerport.  Dann auf einen TB6560 und 
fertig ist die Laube.

http://www.toshiba.com/taec/components2/Datasheet_Sync/382/27885.pdf

oder noch einfacher: 
http://www.strippenstrolch.de/1-2-19-motortreiber-l6203-erkunden.html

von Düsendieb (Gast)


Lesenswert?

oder Du nimmst einen Mega88 und einen:
L293 oder L6219 oder L6203 und ein bisschen Hühnerfutter

evtl. noch ein LCD an den Mega88 und los gehts

von Mario H. (dogler)


Lesenswert?

> Du brauchst 3 Teile:
> 1) Die Leistungselektronik, die genug Energie für den Schrittmotor
> liefert.
> 2) Ein zeitkritisches Programm, was die Beschleunigungsrampe berechnet
> und Impulse an die Leistungselektronik schickt.
> 3) Irgendein Anwendungsprogramm, das dem zeitkritischem Programm sagt,
> es soll 80 Schritte im Uhrzeigersinn machen.
>
> Den 2. Teil macht das Modul selbst.
>
> Der 3. Teil ist ganz normale Anwendungsprogrammierung. Ist nicht weiter
> schwierig. Du brauchst irgendein Programm, das über I2C die Befehle an
> das ELV-Modul sendet. Da tut es jeder PC und jeder Mikrocontroller.

Welches Programm, bzw Editor nehm ich zum Programmieren?

Das ist mein Programmer 
http://www.zeitech.de/Willem-True-USB-V2-GQ-3X-Universal-Programmiergeraet

Wenn ich nach euren Vorschlägen geh brauch ich also alles in 
Einzelteilen und muss mir selbst ne Platine bestücken? :(   ...gibt es 
keine fertigen Module, bzw Platinen so das ich nur noch das Prog 
schreiben muss welche Schritte er in welche Richtung tun soll? ...und 
wie schreibt man sowas?

von Kein Name (Gast)


Lesenswert?

Wenn du da mal nicht deinen Programmer als Fehlkauf abschreiben musst...

Du findest jede Menge fertige Platinen und Beispielprogramme, wenn du 
nach stepper arduino googelst.

Vielleicht einfach mal mit einem Beispiel wie 
http://www.instructables.com/id/How-To-Motors/step7/Using-a-Stepper-Motor-with-an-Arduino/ 
experimentieren. Nach ein paar Stunden hast du genug Überblick um die 
für dich passenden Komponenter auszusuchen.

P.S. In diesem Forum darft du nicht erwähnen, dass du einen Arduino 
benutzt :-)

von Stephan H. (stephan-)


Lesenswert?

Mario H. schrieb:
> mich mal als Anfänger im Microcontrolling ein bischen schlau fragen

ob da der Arduino das richtige ist ?

Wobei ich mich mit meiner Zählervariante unglücklich ausgedrückt hatte.
Nicht der Zähler taktet den Stepper IC, sondern der selbe "Generator" 
welcher den Zähler taktet. Der Zähler dient lediglich um den Generator 
definiert zu stoppen, nämlich nach X Impulsen.

Also: einen astabilen Generator aus 2 NAND Gattern, der an einem Pin 
gestartet und gestoppt werden kann. Der Ausgang geht auf z.B. den Clock 
Eingang des TB6560 UND die Zähler. Die Drehrichtung kann über einen 
Umschalter H/L vorgegeben werden. Bei Ablauf von X Schritten, setzt der 
gewünschte (von der Anzahl der Schritte abhängige) Zählerausgang den 
Generator in den Aus Zustand. Dieser sollte zugleich auch die Zähler 
resetten. An die Zähler kann natürlich bei Bedarf ein BCD zu 7 Segment 
Dekoder mit 7 Segment Anzeige angeschlossen werden, um die Sache optisch 
zu kontrollieren und sich auch an den Fortschritten zu erfreuen. 
(Erfolgserlebnisse sind existenziell)

Das geht komplett ohne Programmierung und hilft doch beim Verständnis 
der Funktion. Gerade beim Einsatz fertiger Steuer IC sind doch einige 
Timing Parameter einzuhalten, was einem Einsteiger doch sehr zu schaffen 
machen kann. Dann ist die Frustrationsschwelle sehr niedrig.

Wobei die Auswertung des Zählerstand/Überlauf in TTL auch nicht so ganz 
ohne ist.

Kommt auf Seine(n) Lernwillen/ Auffassungsgabe an. Evtl. lernt er die 
Funktion eines Timers und einer ISR eines µC schneller als die 
Logikfunktionen.

: Bearbeitet durch User
von spess53 (Gast)


Lesenswert?

Hi

>Dann ist die Frustrationsschwelle sehr niedrig.

Wenn ich die Antworten des TOs lese wird die bei mir auch immer 
niedriger.

MfG Spess

von Stephan H. (stephan-)


Lesenswert?

sach ich doch.
(die Rechtschreibung ist so gewollt)   :-))

Nur wird die TTL Lösung für Ihn nicht einfacher.
Da fehlen elementare Grundlagen, sowohl in der einen als vermutlich auch 
in der anderen Richtung.

von MaWin (Gast)


Lesenswert?


von Kein Name (Gast)


Lesenswert?

Hay Stephan, auch wenn noch keine Grundlagen vorhanden seien sollten...

Da nehmen wir erst mal eine Batterie und 8 Schalter.
http://www.homofaciens.de/technics-stepper-motor_ge_navion.htm
Und danach ersetzen wir die Schalter durch ein Programm.

von Stephan H. (stephan-)


Lesenswert?

Kein Name schrieb:
> Hay Stephan, auch wenn noch keine Grundlagen vorhanden seien sollten...
>
> Da nehmen wir erst mal eine Batterie und 8 Schalter.
> http://www.homofaciens.de/technics-stepper-motor_ge_navion.htm
> Und danach ersetzen wir die Schalter durch ein Programm.

Geht auch. Ich glaube aber nicht da sich der TO mit Urschleim 
beschäftigen will. Nützen würde es ihm aber was.
Etwas komfortabler darf es dann doch schon sein, wenn es fertige IC´s 
dafür gibt. Wir haben ja doch schon 20 Jahre Fortschritt hinter uns. 
:-)

Den Schalter mit einem Programm zu ersetzen erfordert aber Kenntnisse 
der digitalen Schaltungstechnik. Wir überspringen aber nicht 5 Felder 
gehen auf die Schillerstraße und ziehen 200€ ein !  :-)))

: Bearbeitet durch User
von spess53 (Gast)


Lesenswert?

Hi

>Wir haben ja doch schon 20 Jahre Fortschritt hinter uns. :-)

20 Jahre? L297/298 gab es schon im Prautsch 'Schrittmotor-Antriebe' 
Auflage 1996.

MfG Spess

von MaWin (Gast)


Lesenswert?

> 20 Jahre? L297/298 gab es schon im Prautsch 'Schrittmotor-Antriebe'
> Auflage 1996.

Da war er aber bistimmt schon 10 Jahre alt.

von Stephan H. (stephan-)


Lesenswert?

Die Anzahl der Jahre war ja auch nicht als Absolut (ABS) deklariert. :-)
Ihr seid aber auch empfindlich. :-)

: Bearbeitet durch User
von Mario H. (dogler)


Lesenswert?


von Mit Name (Gast)


Lesenswert?

Kein Name schrieb:
> Da nehmen wir erst mal eine Batterie und 8 Schalter.
> http://www.homofaciens.de/technics-stepper-motor_ge_navion.htm

Mit den 8 Schaltern kann es bei Fehlbedienung leicht zu Kurzschlüssen 
kommen. Dann doch lieber die Version mit vier Schaltern

Wolfgang schrieb:
> Zum Lernen und Verstehen kannst du 4
> Umschalter On-Off-On verwenden und damit deinen Motor direkt ansteuern

von Georg W. (georgw)


Lesenswert?

Mario H. schrieb:
> Wäre das nicht was für mich?
> 
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=206

ich glaube nicht,dass der dich weiterbringen wird da es ein normaler 
motortreiber und keiner für Schrittmotoren ist.

und zu den anderen Sachen, wenn ich ehrlich bin würde ich an deiner 
stelle als Anfänger im Bereich Programmieren und µC mich nicht mehr mit 
BASIC Sachen rumschlagen, dann lieber was richtung C oder auch Pascal.

von Wolfgang (Gast)


Lesenswert?

Georg Wallmann schrieb:
> Anfänger im Bereich Programmieren und µC mich nicht mehr mit
> BASIC Sachen rumschlagen, dann lieber was richtung C oder auch Pascal.

Und wenn du dich an den Details der Programmierung eines µC vorbeimogeln 
möchtest, was sich dann natürlich arg negativ auf den Lernerfolgt 
auswirkt, kannst du den Motor erstmal unter der Arduino Umgebung zum 
Laufen bringen und ggf. später in die Feinheiten einer 
Schrittmotorsteuerung abtauchen.

von Mario H. (dogler)


Lesenswert?

So arg viel weiter bin ich immer noch nicht :(

Nur das ich jetzt weiß das ich mal mit C++ anfangen sollte.

Welche Treiber und Controler ich nehmen sollte weiß ich immer noch nicht 
:(

von Schrittmurl (Gast)


Lesenswert?

hi Mario,

ich empfehle Dir die folgenden Dinge:

http://www.g-heinrichs.de/attiny/index.htm

http://www.geeetech.com/wiki/index.php/Stepper_Motor_5V_4-Phase_5-Wire_%26_ULN2003_Driver_Board_for_Arduino

Mit Link 1 lernst Du 'ne Menge und die kleine Treiberplatine mit dem 
ULN2003 kannst Du an den Attiny2313 anhängen.

Die Schritt-Reihenfolge entnimmst Du der Tabelle. Arduino brauchst Du 
nicht dazu. Es ist ziemlich egal, womit Du eine kleine Steuerung für den 
speziellen Fall programmierst. In C gibt es dazu jede Menge Beispiele 
und, wenn Du Bascom dazu verwenden willst und Du Dir damit auf die 
Schnelle leichter tust, ist es auch gut.

4 Verbindungsleitungen von PortB (0 - 3) des Attiny2313 an die 
Treiberplatine legen. Versorgungsspannung dazu und los geht's.
Der Reihe nach die Portausgänge richtig beschalten und ein delay 
zwischen den Schritten einfügen.

Der sogenannte "Arduino-Print" ist vermutlich irgendein 
Industrie-Restposten. Gibt's in der Bucht z.B. und da hab ich das auch 
schon gesehen:
http://www.neuhold-elektronik.at/catshop/news.php?news_id=67#newsid67
In der neuen Liste ist der drin und das Werkl reicht zum Herumspielen 
und Experimentieren.

Und mit dem 'Attiny-Projekt" kann ein Anfänger viel lernen, vor allem, 
weil auch Assembler sehr ausgiebig behandelt wird.

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.