Kommunikation mit Schrittmotor

Gast #44032
Lesenswert?

Hallo,

Ich möchte einen Schrittmotor mit einem PC ansteuern und habe dabei
noch Probleme. Zunächst die Randbedingungen, ich habe:

-Windows XP
-am liebsten VB, aber auch Java oder C
-Bipolarer Schrittmotor mit 2 Phasen
-Steuerungen: entweder SMC800 oder selbstgebaute (beide Takt/Richtung
über parallele Schnittstelle)
-passende Kabel
-inpout32.dll (und einige andere DLL´s)

Jetzt mein Problem: Was sende ich an die Schnittstelle um x Schritte in
y Richtung zu laufen? Ich weiß nur, wie ich 5V an einen Dataport der
Schnittstelle anlege und wieder wegnehme, das kanns aber ja nicht sein.
Leider habe ich keine Dokumentation über ein Protokoll der Controller
oder ähnliches.

Danke für eure Hilfe!!!

Gruß, Mirco
Gast #44033
Lesenswert?

als erstes kommt es einmal daraf an was für einen Schrittmotor du
verwendest Unipolar oder Bipolar. Danach musst du deinen Ansteuerung
auslegen.
Wenn du genügend freie Port-Pins hast kannst du die komplette
Ansteuerung vom PC aus anstellen. Also an die Schnittstelle nur noch
Treiber hinhängen. Ist zwar etwas mehr softwareaufwand am PC aber
Hardwaremäßig einfacher. Oder du verwendest spezielle IC´s die die
Ansteuerung des Schrittmotors übernehmen. Diesen Steuer-IC`s musst du
dann nur noch sagen wieviel Schritte in welche Richtung und die machen
das dann.

Gruß, Florian
Gast #44034
Lesenswert?

Du must erstmal eine Referenzimpuls haben. Damit du den Stepper auf eine
Bekannte Nullposition steppen kannst. Das kann mit einem Schalter oder
Hall- oder Licht/IR-Sensor machen. An deinem Treiber IC pulst du denn
die Schritte (aber nicht zu schnell) und der Stepper dreht sich, bis er
an den Referenzkontakt kommt, darauf setzt Du Deinen Sofwarezähler auf
Null. Jetzt weist Du wo sich Deine Stepperachse befindet. Wenn du jetzt
in Deiner Ansteuerroutine die Zahl 10 schickt müssen 10 Pulse an Dein
Stepptreiber IC geschickt werden. Mit dem an dem Treiber-IC
befindlichen Eingang "Direction" bestimmts Du die Drehrichtung.
Gast #44035
Lesenswert?

Hallo,

danke für Antworten, leider löst es nicht ganz mein Problem. Zunächst
mal, ich habe von der Elektik 0 Ahnung. Ich habe die beiden Steuerungen
und den Motor gekauft. Programmieren kann ich, allerdings habe ich noch
nie Schnittstellen angesprochen. Dazu habe ich die Befehle inp(Adresse)
und outp(Adresse,Wert) genommen und es klappt.
Meine Frage ist jetzt: Was für Werte übergebe ich, damit der Motor z.B.
50 Schritte nach rechts fährt? Ich weiß halt nur, wie ich 5V anlege
oder wieder wegnehme von einem der DataPorts auf der Schnittstelle.

Danke und Gruß, Mirco
Gast #44036
Lesenswert?

Du wirst ein weiteres Problem haben: XP ist für solche Steuerungen
denkbar ungeeignet, Du brauchst eine Echtzeitumgebung. Ein Schrittmotor
muß definiert beschleunigt werden, um die maximale Drehzahl zu
erreichen.
Zu Deiner Frage: Das ist abhängig von Deiner Steuerung. Vermutlich
erwartet sie ein Taktsignal und eine Richtung, da dürfte die Anleitung
derselben aufschlußreich sein.
Gast #44037
Lesenswert?

Das Problem mit XP kenne ich, ich weiß aber auch, dass es möglich ist.
Ich habe halt keine Dokumentation zu der Steuerung. Takt/Richtung ist
auch klar. Auf der Steuerung ist ein Pin für Takt und einer für
Richtung, auf dem LPT-Port das gleiche, nur was für Signale gebe ich da
drauf und wie? Vielleicht drücke ich mich auch unverständlich aus, was
wohl daran liegt, dass ich mich mit der Materie nicht im geringsten
auskenne. In Beispiel für ein Software-Command an die Schnittstelle
wäre schon hilfreich, Sprach egal.

Gruß, Mirco
Gast #44038
Lesenswert?

Das Pin für die Richtung legst du auf Low (0) und auf der Taktleitung
wechselst du immer 010101... und so weiter. Mach das 10 mal in der
Sekunde. Dein Motor sollte nun in eine Richtung Laufen. Wen das
Richtungspin auf High (1) gelegt wird, dreht der Motor andersrum.
Gast #44039
Lesenswert?

Danke, genau das wollte ich wissen. Es gibt also kein Protokoll sondern
einfach nur Pulse. Werde das gleich mal versuchen.
Steht dann jeder Plus für einen Schritt (bzw. 1/2 1/4 o. 1/8 Schritt,
das kann ich jumpern)?

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