Forum: Mikrocontroller und Digitale Elektronik Kommunikation mit Schrittmotor


von Mirco Hansen (Gast)


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

von Florian Pfanner (Gast)


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

von Frankl (Gast)


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.

von Mirco Hansen (Gast)


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

von thkais (Gast)


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.

von Mirco Hansen (Gast)


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

von jornbyte (Gast)


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.

von Mirco Hansen (Gast)


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)?

von thkais (Gast)


Lesenswert?

jep.

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.