mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kommunikation mit Schrittmotor


Autor: Mirco Hansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mirco Hansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mirco Hansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: jornbyte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mirco Hansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)?

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jep.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.