PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotor <- RS232 <- PC



v29a
15.10.2005, 21:15
Hallo.

Ich habe vor einen (später zwei) Schrittmotor per PC via rs232 zu steuern.
Aufgebaut habe ich jetzt die Schaltung zur Motorsteuerung aus dem Datenblatt des L298.
Mein Problem ist jetzt, dass mir noch die Schnittstelle richtung Rechner fehlt.
Das ganze soll ohne Mikrocontroller realisiert werden.

Hat da evtl jemand einen Schaltplan rumliegen? (max232 ist vorhanden, wäre vorteilhaft wenn diese ic in der Schaltung verwendet werden würde)

Danke schonmal.

Ruppi
17.10.2005, 07:44
Hallo,
ich denke, dass das ohne Mikrocontroller nichts wird, weist Du, wie Daten über die RS232 übertragen werden?!
Ohne Controller bringt Dir der MAX232 gar nichts, möglich wäre jedoch, Controller und max wegzulassen und die nötigen Signale für Richtung und Takt mit Zenerdioden direkt von den Portleitungen der RS232 zu nehmen. Ein Controller wäre auf jeden Fall die bessere Wahl; so könntest Du Dir ein Empfangsprotokoll ausdenken und viel einfacher mehrere Motoren ansteuern. Protokoll zum Beispiel in der Form: NeuePosition, Geschwindigkeit oder ähnliches - so könnte ein Controller sehr einfach die Takt- und Richtungssignale generieren und mit der gesetzten Geschwindigkeit an die übermittelte Position fahren.
Wenn das alles nix für Dich ist, würde ich sowas lieber über den Parallelport realisieren...

Ruppi

PICture
17.10.2005, 08:56
Hallo v29a!
Habe mir den Datenblatt vom L298 kurz angeschaut. Das wichtigste ist eine Berechnung der Frequenz der Impulse, die über die serielle Schnittstelle zum L298 übertragen werden sollen. Das hängt von den Motoren ab, wieviel Schritte sie für eine Umdrehung brauchen und mit welcher maximalen Drehzahl sie arbeiten sollen. Wenn die Frequenz höher als die maximale Baudrate der seriellen Schnitstelle geteilt durch 8 ist, geht es ohne etwas schnelleres dazwischen nicht.
MfG
P.S. Schau dir in unserem Forum "Weitere Projekte und Bauanleitungen" das Thema "L297/L298 Kompletttreiber sehr kleine Bauform" an. Vieleicht is da was interesantes drin.

v29a
17.10.2005, 09:24
ja ich habe jetzt auch bemerkt das es über seriell zwar ohne mc möglich ist aber wohl auch recht aufwendig ...

wenn du schaltungen für den parallel port hast wär das auch klasse

PICture
17.10.2005, 09:37
fertige für Dich habe ich sicher nicht, aber ich schon per LPT viel Hardware gesteuert habe. Das Problem bei LPT ist, das sie mit reinen TTL Pegeln arbeitet und und sehr für Störungen auffällig ist. Die Länge des Verbindungskabels ist auf 5m beschränkt. Wie weit von dem PC sind Deine Motoren?

meisl
17.10.2005, 17:50
Dieses Projekt hier (http://www.heise.de/ct/machflott/projekte/55644) aus dem heise.de-Wettbewerb "Mach flott den Schrott" könnte Dich vielleicht interessieren:

Da hat einer 'n Plotter mit Schrittmotoren aus alten Deskjet-Druckern gebaut, die er über den Parallelport ansteuert. Um mit acht Steuerleitungen vier Motoren à vier Wicklungen ansteuern zu können braucht's paar (CMOS-)Logikgatter (für demux) und Optokoppler lösen u.a. das TTL-Problem (wenn ich's richtig kapier; bin auch nicht so der Checker...). Stromversorgung ist extra, ich glaub' man kann's eh gleich vergessen, den Strom aus dem LPT zu nehmen.

Projekthomepage: http://www.bittnermichael.de/elek.shtml
Nachbauanleitung ("Das ist keine Detail-Bauanleitung für DAUs" - aber halb so wild): http://195.245.13.101/plotter.zip

_______
p.s.: Mein Name ist NICHT Bittner... ;-)

PICture
18.10.2005, 12:11
Hallo Meisl!
Ich nehme an, dass Dein letzter Beitrag für mich vorgesehen ist.
Mein Kommentar: Wenn man Schrot verarbeitet, kann nichts mehr schief gehen, oder? Ich lasse lieber Figer weg von dem Projekt, weil, wenn es für Dich schon lustig ist, kann für mich tödlich sein.
Ab jetzt ernst. Ich bin für eifachste Lösungen, die nach gründlicher Analyse des Problems gewählt sind. Es gibt keine Perfekte Lösung, höchstens eine sehr gute. Ich bin kein Roboter Spezialist und die Problematik der möglichen Störungen ist mir nur allgemain bekannt. Du must selber entscheiden (nicht unbeding wissen), wie Du dass machst. Auf meine Hilfe bei konkreten Problemen kannst Du in jedem Fahl zählen.
MfG

meisl
18.10.2005, 19:18
Hallo Meisl!
Ich nehme an, dass Dein letzter Beitrag für mich vorgesehen ist.
Äh nein, eigentlich eher für v29a, der vier Posts weiter oben nach Schaltungen für den LPT gefragt hatte. Aber natürlich darf sich jede(r) dafür interessieren (oder eben auch nicht) - ist ja schließlich ein öffentliches Forum.

Aus dem was Du (PICture) weiter schreibst schließe ich, daß Du diesen Deskjet-Plotter für einen ziemlich grattligen Schmarrn hältst, stimmts?
Naja, könntest recht haben. Ich weiß es nicht.

Mir schien es halt so, als wollte v29a erst mal ein bißchen experimentieren mit Schrittmotoren und deren Ansteuerung und zwar zunächst ohne sich mit einem µC und dessen Programmierung zu befassen (dh. stattdessen lieber den Desktop programmiert).
Und da ist mir eben dieser Deskjet-Plotter eingefallen, von dem ich gehört hatte und der ja doch irgendwie zu funktionieren scheint.
Man kann bei dem Ding zumindest mal sehen, wie man den LPT von einem Programm aus ansteuert und mit den TTL-Pegeln dort dann irgendwas anfängt. Wie und ob das jetzt mit einem L298 (plus L297?) sinnvoll zu kombinieren ist weiß ich nicht, sorry.

Also nochmal deutlich: Weder habe ich dieses Ding erfunden noch aufgebaut und habe ich das in nächster Zeit auch nicht vor.

Trotzdem Danke für Dein Angebot, PICture. Vielleicht könntest Du genauer sagen, wo Deiner Meinung nach Probleme bei der Art und Weise liegen, in der bei diesem Deskjet-Plotter die Schrittmotoren angesteuert werden? Interessiert mich jetzt doch und vmtl. auch v29a.

PICture
18.10.2005, 22:33
@meisl
Nein, ich habe gar nicht den Drucker, sodern Titel des Projektes "Mach flott den Schrott" gemeint. Ich wollte schnell kurz schreiben und habe das nicht bemerkt, das Du inzwischen Da bist. Sorry! Ich muß mehr aufpassen, bin da noch ziemlich "neu".
MfG

meisl
19.10.2005, 00:42
@PICture
Na ok, immer mit der Ruhe.
Jedenfalls würd' mich echt interessieren was Du von dem "Bittner-Ansatz" hältst. Du verstehst doch was davon (als Elektronikingenieur, wie ich sehe). Irgendwie finde ich das Ding hat so seinen Reiz, gerade wegen der Einfachheit.

Also ich versuch' mal ein bißchen konkreter zu fragen.
Dazu fange ich mal an die Bittner-"Dokumentation" etwas aufzubereiten, die - sagen wir mal - etwas [flipv:fcb4784510]mühselig zu lesen[/flipv:fcb4784510] ist 8-[. Die Links führen zu den entspr. Datenblättern, "->" bedeutet sowas wie "angeschlossen an".

je 2 LPT data out
-> Optokoppler K847P (http://www.datasheetarchive.com/semiconductors/download.php?Datasheet=1048086)
-> 2/4 - Demultiplexer aus CMOS-Gattern (zB. MC74HC02AN Quad 2-Input NOR Gate
(http://www.datasheetarchive.com/semiconductors/download.php?Datasheet=1339387), MC74HC32AN Quad 2-Input OR Gate (http://www.datasheetarchive.com/semiconductors/download.php?Datasheet=1340033))
-> irgendwelche Transistoren/FETs die ich nicht erkennen kann.
-> 4 Motorspulen an gem. GND. Vmtl. parallel dazu LEDs mit Vorwiderständen zur Funktionsanzeige/Überwachung.

Das ganze versorgt aus der 12V-Schiene eines (separaten) Computernetzteils.
Anzumerken ist vielleicht noch, daß auf den vorliegenden Platinen die Gatter-ICs wohl ein bißchen verschwenderisch eingesetzt sind (mir scheint etwa, daß die NORs nur als NOT und überhaupt nicht immer alle der Gatter in den Mehrfachgatter-Bausteinen genutzt werden).

Der Demultiplexer (aka demux, meine Benennung) bildet dabei die vier möglichen Bitmuster aus zwei Bits (das sind 00, 01, 10, 11) der jweiligen beiden LPT data out auf vier Bitmuster aus vier Bits ab (0001, 0010, 0100 bzw. 1000), die dann mittels der Transistoren dazu benutzt werden, um die jew. Motorspule mit Strom zu versorgen (und die übrigen drei eben nicht).
Da man auf diese Weise nur zwei Bit pro Motor benötigt kann man die 8 data out des LPT für die unabhängige Ansteuerung von vier (derartigen) Schrittmotoren verwenden.

Beispiel:
Um Motor 1 (Bit 0 und 1) mit doppelt so hoher Drehzahl und umgekehrter Richtung wie Motor 2 (Bit 2 und 3) zu betreiben würde man in gleichen Zeitabständen folgende Bitmuster auf den LPT legen:

3210 <- Bitnummer
----
0000 (Anfangszustand)
0001 (Motor 1 einen Schritt clockwise, Motor 2 unverändert)
1110 (Motor 1 einen Schritt clockwise, Motor 2 einen Schritt anti-clockwise)
1111 (Motor 1 einen Schritt clockwise, Motor 2 unverändert)
1000 (Motor 1 einen Schritt clockwise, Motor 2 einen Schritt anti-clockwise)
1001 (Motor 1 einen Schritt clockwise, Motor 2 unverändert)
0110 (Motor 1 einen Schritt clockwise, Motor 2 einen Schritt anti-clockwise)
0111 (Motor 1 einen Schritt clockwise, Motor 2 unverändert)
0000 (Motor 1 einen Schritt clockwise, Motor 2 einen Schritt anti-clockwise)
... usw.

Jetzt die Fragen:
Hab' ich das so einigermaßen korrekt beschrieben?
Kann man das so machen oder geht dabei (langfristig) irgendwas kaputt?
Wie sieht's mit der zeitlichen Auflösung und Genauigkeit (ist nicht dasselbe!) aus?
Welche Drehzahlen kann man damit (theoretisch) erreichen?

Mfg

PICture
19.10.2005, 03:57
Hallo meisl!
Deine Beschreibung fide ich sehr gut. Wenn es nötig wäre, schaue ich mir das noch genauer an. Dank Deiner Beschreibung war es bisher nicht nötig. Jetz zu Deinen Fragen. Die erste hab ich schon beantwortet. Zu der zweiten Frage: kritish sind natürlich die Ausgangstuffen, die direkt die Motoren mit Strom versorgen, aber wenn man sie bischen überdimensioniert sehe ich auch keine Gefahren. Die dritte Frage verstehe ich nicht nicht, bitte schreib ein bischen mehr darüber. Bei der letzten Frage muß man wissen, wieviel Shritte ein Motor pro volle Umdrehung braucht und im Datenblatt des L297 nachschauen. Bei der Wariante die Übertragunsgeschwindigkeit spielt keine Role mehr, weil die Steuerimpulse fur die Motoren durch den L297 generiert werden. Durch Verwendung des L297 hast Du zur Wahl nur zwei Geschwindigkeiten, dafür aber einfache Steuerung ( längeres, dünneres, flexibler Kabel und größeren Abstand zu Störungen). Ich sage das öfters, dass der Endbenutzer entscheidet was er realisiert und muß nicht unbedingt alles genau wissen. Das wäre´s dann.
MfG

meisl
19.10.2005, 21:04
Servus PICture,

erstmal vielen Dank für Deine Mühe!
Dann: es wird da KEIN L297 verwendet, das is' ja grade der Witz. Nur eben das, was ich beschrieben habe (+ paar Widerstände irgendwo und noch Dioden [also richtige, ich mein' nicht die LEDs von oben]).

Zum Motor: nachdem der Bittner von 5 Leitungen spricht, vermute ich, daß es so ein Teil ist wie im Attachment illustriert; dh. 15° pro Schritt macht 24 Schritte pro Umdrehung. EDIT: nee, falsch vermutet; sh. zwei Posts weiter unten

Also wenn wir mal annehmen, daß das Ding bei 12V betrieben wird und sagen wir 750 mA Maximalstrom verträgt, was würdest Du dann für Transistoren nehmen?

Zu Auflösung/Genauigkeit:
Angenommen man kriegt mit dem PC-Programm nur Pausen von minimal 0.5 ms hin (und der Rest des Systems, also etwa die Optokoppler machen das locker mit - müßte man jetzt in die Datenblätter schauen) - dann ist die zeitliche Auflösung 0.5 ms.
Wenn man sich wg. Taskswitching und so sagen wir mal nur darauf verlassen kann, daß die Pausen im Programm um maximal +- 0.1 ms variieren (und der Rest vom System etc...), dann ist das die erzielbare zeitliche Genauigkeit.
Meine Frage war jetzt, inwieweit das Parallelkabel, die Optokoppler und überhaupt das ganze was außerhalb vom PC ist, einerseits die Auflösung und andererseits die Genauigkeit beeinflussen (könnten).
Was die durch den PC bestimmten Grenzen anlangt komm' ich selber zurecht, die Werte dürften so in dem Rahmen liegen, den ich genannt hab'.


Ich sage das öfters, dass der Endbenutzer entscheidet was er realisiert und muß nicht unbedingt alles genau wissen.
Ja, das mag sein. Ist nur so: ich bin halt wie schon erwähnt nicht der "Endbenutzer" sondern will's in diesem Fall mal (ein bißchen) genauer wissen... :-)

Vielen Dank nochmal und Gruß

PICture
20.10.2005, 05:02
Servus meisl!
Ich würde Dir gerne Deine konkrete Fragen (z.B. was macht der Transistor T1 u.ä.) beantworten. Dafur brauche ich aber ein kompletes Schaltplan der Schaltung, über die wir sprechen. Mit Begriffen "Bittner" oder "das Ding" die für mich unbekannt sind, kann ich leider nichts anfangen. Deswegen, bitte, bevor Du Fragen stellst, um Schaltpläne b.z.w. links zu den "Dingen". Habe mir die alle links aus Deinem Beitrag von 17.10. angeschaut, aber kein Schaltplan gefunden. "Das gesamte Projekt auf CD" interessiert mich nicht.
MfG

meisl
20.10.2005, 22:25
Hello again!


Mit Begriffen "Bittner" oder "das Ding" die für mich unbekannt sind, kann ich leider nichts anfangen. Deswegen, bitte, bevor Du Fragen stellst, um Schaltpläne b.z.w. links zu den "Dingen".
Ja gibt's denn das?!
Ok Tschuldigung, aber mir wurde erst jetzt klar, wieso unsere Kommunikation derartig schleppend verläuft ;-)

Also nochmal zum Mitschreiben: Michael Bittner ist der Name desjenigen Menschen, der "das Ding", also einen Plotter aus alten HP-Deskjet-Druckern aufgebaut hat.
Davon, daß der Mensch Bittner dies getan hat, habe ich, der Mensch meisl, nicht identisch mit dem Menschen Bittner, erfahren durch den erwähnten Wettbewerb der Zeitschrift c't, welche erscheint im Verlag heise.
-------------

Dafur brauche ich aber ein kompletes Schaltplan der Schaltung, über die wir sprechen.
[...]
Deswegen, bitte, bevor Du Fragen stellst, um Schaltpläne b.z.w. links zu den "Dingen"
Tja, da ist zunächst einmal der Mensch meisl genauso schlau wie der Mensch PICture...
Also das heißt, ich habe auch keine anderen Infos als Du (deswegen hatte ich ja auch von der "mühsam lesbaren Doku" gesprochen)! Ich habe mir halt das, was da ist (plotter.zip) (http://195.245.13.101/plotter.zip) angeschaut und mir so meine Gedanken gemacht und so bin ich auch auf die Datenblätter (s.o.) und auf die Beschreibung vom Schrittmotor von oben gekommen. Hm, wie ich heute bemerkt habe, handelt es sich bei letzterem allerdings leider NICHT um einen wie von mir beschriebenen Reluktanz-Schrittmotor (shit, war schon eine Arbeit!), sondern eher um einen unipolaren mit gemeinsamen Mittelabgriff wie einen solchen (http://www.goblack.de/desy/digitalt/aktoren/schrittmotor/vollschritt.htm). Das schließe ich (mittlerweile...) aus dem Link in "BITTE-LESEN.txt" und aus "Logic.jpg" in dem was da ist (plotter.zip) (http://195.245.13.101/plotter.zip). Damit ist leider auch meine Beschreibung dessen, wie die 2-Bit-Signale auf dem LPT in 4-Bit-Signale umgesetzt werden, obsolet :x (na, das war nicht so schlimm viel Arbeit...)
Vielmehr (sh. "Logic.jpg") wird eine Sequenz von 00, 01, 10, 11 umgesetzt in 0011, 0110, 1100 bzw. 1001 (bei entspr. Numerierung der Spulen(-anschlüsse); wobei es sich um einen sog. Gray-Code handelt, bei dem sich aufeinanderfolgende Bitmuster um genau ein Bit unterscheiden, mithin jede (Halb-)Spule immer zwei Schritte lang stromdurchflossen ist). Wäre dankbar um einen Hinweis wie man diese Ansteuerung nennt und wie man daraus auf den Aufbau des Motors schließen kann.
Sorry für meine Fehlinterpretationen.
-----------

"Das gesamte Projekt auf CD" interessiert mich nicht. Oh, so einen Link hab' ich bislang noch nicht gefunden. Allerdings würde da wohl auch keine bessere "Dokumentation" drauf sein glaube ich. Dennoch werd' ich mal eine mail an den Menschen Bittner schreiben. Mal sehen.
------------
Außerdem sollte ich vielleicht für diejenigen, die's noch nicht gemerkt haben sollten betonen, daß der Mensch meisl durchaus als Anfänger in Sachen Elektronik/E-Technik zu bezeichnen ist. Vielleicht ist auch meine Art mich der Thematik zu nähern allzu theoretisch; für's erste habe ich mir halt mal gedacht, daß mit so paar Transistoren, Dioden, Optokopplern und Logikbausteinen am LPT - eben so wie's der Mensch Bittner gemacht hat - das Ganze für mich leichter zu kapieren ist als mit L297/L298 + µC und so. Korrigiert mich wenn ich da falsch liegen sollte. Es kommt mir aber schon drauf an, was zu kapieren, weniger (dh. vielleicht erst später mal) irgendwas irgendwie zum Laufen zu bringen.
-----------
Und schließlich noch als Attachment das von mir aufbereitete "Platine.jpeg" aus plotter.zip (http://195.245.13.101/plotter.zip). Ich habe dort die Sachen, die ich erkennen kann, hervorgehoben (Helligkeit und Kontrast rauf) und beschriftet. Vielleicht werde ich daraus auch noch einen Schaltplan zusammenfieseln...
Jedenfalls könnt Ihr daran sehen, daß ich durchaus bereit bin was zu tun für's Verstehen. Vielleicht sind aber auch ohne sauberen Schaltplan, sozusagen durch "Draufgucken" von 'nem Profi (aka Checker ;-) ) die folgenden Fragen schon beantwortbar:

- Sind die gezeigten Widerstandswerte realistisch?

- Wg. Auflösung/Genauigkeit weiß ich mittlerweile, daß die Schaltzeiten der Gatter irgendwo um 20 ns liegen - also null Problem. Allerdings: Sind denn die 12V aus dem PC-Netzteil, das der Mensch Bittner benutzt, für die Logikgatter ok? (Die Datenblätter sprechen von 2-6 V)

- Was könnte das dreibeinige Bauelement (aka "Teil" ;-) ) sein, das ich rot umrandet und mit "?" versehen habe?

- Welche Transistoren würde man da verwenden?

Gruß & so,
meisl

stepmaster
29.11.2008, 13:42
möchte 3 schrittmotore direkt am lpt anschliesen kann mir jemand was zuschicken woran man sieht welches kabel an welche pins des ports kommen


in der software winpc-nc steht man kann die schrittmotore direkt ohne zusätzliche hardware am parallelen port anschließen und betreiben


mfg michi

v29a
29.11.2008, 13:48
in der software winpc-nc steht man kann die schrittmotore direkt ohne zusätzliche hardware am parallelen port anschließen und betreiben


würde sagen das ist schlicht und einfach falsch ;-)

stepmaster
29.11.2008, 14:05
wenn das falsch ist kann mir jemand ein schaltplan zuschicken mit dem ich dann eine treiberkarte oder steuerkarte bauen kann mit der ich dann über winpc-nc x,y und z ansteuern kann also sprich 3 motore mit je 4 kabeln