Forum: Mikrocontroller und Digitale Elektronik Schrittmotor und Mikrocontroller


von RainerH (Gast)


Lesenswert?

Hallo !
Möchte über Parallelport mit Visual Basic Schrittmotor steuern .
Leider sind hohe Geschwindigkeiten mit Visual Basic nicht möglich .
Möchte 6 Anschlüsse des Parallelport
für die Geschwindigkeit (64 Geschwindigkeits-Stufen) nutzen,
1 Anschluß für vor und zurück
und 1 Anschluß für an und aus .
Wer hat eine Idee oder Bauanleitung wie man das mit Mikrocontroller
und EEProm lösen kann .

Gruß Rainer !

von Steffen Burr (Gast)


Lesenswert?

Hallo Rainer

Wenn du die Daten seriell überträgst, brauchst du eigentlich nur 2
Leitungen (bei serieller Schnittstelle). Und die zweite sogar nur, wenn
vom Microcontroller Rückmeldungen kommen sollen.

Du könntest 1 Byte (8 Bit) dem MC seriell übermitteln und 7 davon für
die Geschwindigkeit (was also 128 verschiedene Stufen machen würde -
Geschwindigkeitsstufe 0 würde dann als Stopp erkannt). das letzte Bit
kannst du dann zur Drehrichtungsfestlegung (Uhrzeiger- /
Gegenuhrzeigersinn) verwenden.
Du bräuchtest also folgende IC's:
  - einen uC, der mit ca. 4MHz läuft (z.B. der Mega8 oder 4433)
  - einen Pegelwandler (MAX232 für die serielle Schnittestelle)
  - eine Schrittmotortreiber

Die Ansteuerung über VB ist dann überhaupt kein Problem mehr. Noch viel
einfacher als über die paralelle Schnittstelle. Du musst dann auch nur
bei Geschwindigkeitsänderungen etwas an den uC senden.

Viele Grüße
Steffen

von crazy horse (Gast)


Lesenswert?

na ja, ganz so einfach ist es nicht.
Wenn man mit Schrittmotoren sinnvoll arbeiten will, muß das steuernde
Programm jederzeit über die aktuelle Position des Motors informiert
sein, und das heißt, entweder jeden einzelnen Step auf irgendeine Art
und Weise auszugeben (scheitert aus Zeitgründen) oder auf eine
kompaktere Art die Daten auszugeben.
Also Motor:Richtung:Steps
Im MC müssen diese Daten den Motordaten entsprechend zeitlich
aufbereitet step für step ausgegeben werden. Und auch da sind noch
einige Sachen zu beachten, Beim Beschleunigen und Abbremsen müssen
Rampen gefahren werden, direkt max. Steppergeschwindigkeit anlegen
führt unweigerlich zu Schrittverlusten. Weitere Kleinigkeiten:
Stromabsenkung bei niedrigen Schrittgeschwindigkeiten bzw. Stillstand.
Idealerweise nimmst du einen Prozessor mit relativ viel RAM, baust dir
im RAM einen Ringbuffer mit unabhängigen Schreib- und Lesepointern. Die
Daten, die vom PC kommen, werden in die entsprechenden Motordaten
zerlegt und in den Ringbuffer geschrieben und per Timerinterrupt
gelesen und ausgegeben. Die Kunst besteht jetzt darin, diesen Puffer
weder leer werden zu lassen noch darf er überlaufen. Auf jeden Fall ist
also eine bidirektionale Kommunikation mit dem Hauptrechner
erforderlich.
Noch komplizierter wirds, wenn du nicht nur im festen
Vollschrittbetrieb arbeiten willst, sondern auch im Halb-oder gar
Mikroschritt.
Alles in allem: interessant, aber relativ aufwändig, solch ein Programm
schreibt man nicht an einem Nachmittag. Ich würde mich erst mal auf die
Suche nach fertigen Lösungen machen und diese dann erforderlichenfalls
anpassen.

von Steffen Burr (Gast)


Lesenswert?

Hallo crazy horse,

ich geb dir recht, dass es nicht so einfach ist.
Allerdings habe ich Rainer so verstanden, dass er 'nur' mit dem
Schrittmotor die Geschwindigkeit regeln will und dabei sind die
aktuelle Position, sowie An-und Abfahrverhalten weniger wichtig wenn
nicht vernachlässigbar. Kommt eben auf die Anwendung an und da hat er
nicht mehr geschrieben, als dass er die Geschwindigkeit, Richtung und
On/off regeln will. Warum also schwerer machen, als notwendig.

Entscheiden kann das natürlich nur Rainer, je nach seinem
Anwendungsgebiet und der benötigten Präzision.

Grüße Steffen

von RainerH (Gast)


Lesenswert?

Hallo Crazy Horse und Steffen Burr !

Vielen Dank erst einmal für euren Tip .
Bin mit der einfachen Lösung schon zufrieden .
Anfahr- und Bremsverhalten möchte ich mit der Software lösen .
Die Position ist nicht erforderlich ,könnte das aber mit einer
Segmentscheibe wie bei der PC-Maus machen .
Ich habe aber noch einige Fragen .
Wie löse ich das Ganze wenn ich zwei Motoren nehmen möchte ?
Wird nicht nach den 8 Bit Daten noch ein Stopbit gesendet und
wie kann ich das unterscheiden oder wird das auf einer anderen Leitung
gesendet ( Synchronisation) ?
Wie geschied das praktisch , das der Empfänger die Daten wieder richtig
zusammensetzt ?
Vielen Dank im Voraus .
Wenn ihr Schaltpläne zum Thema habt
könnt ihr mir als Anhang senden  .

Gruß Rainer !

von MichaelS (Gast)


Lesenswert?

das hilft dir bestimmt weiter ...

http://wiredworld.tripod.com/tronics/stepper.html

von Gerhard Humer (Gast)


Lesenswert?

Hallo

@Rainer

das Problem liegt hier nicht am VB sondern an den Schrittmotoren.
"Normale" Schrittmotoren sind nun mal Langsamläufer.
So einen Standardmotor mit 200 Schritten pro Umdrehung
sollte man nur bis ca . 800 Hz betreiben, d.h. 240 1/min,
da das Drehmoment bei höheren Umdrehungen rapide abnimmt.



Gruss Gerhard

von RainerH (Gast)


Lesenswert?

Hallo MichaelS und  Gerhard !
Vielen Dank für eueren Tip .
Leider ist das mit Visual Basic nicht so einfach wie bei
diesem Forum
( http://www.vbarchiv.net/forum/read.php?f=3&i=26371&t=263719)
ersichtlich ist . Habt ihr zufällig einen Quellcod ,da wo auch hohe
Geschwindigkeiten möglich sind !

Gruß Rainer !

von Gerhard Humer (Gast)


Lesenswert?

Hi Reiner,

werd mal was für dich ausgraben.
Wird aber erst am Montag sein.
Sag mir aber noch Bescheid unter welchem Betriebsystem es laufen soll.
Win 95/98 oder NT/2000/XP.

Gruss Gerhard

von Andreas Lenz (Gast)


Lesenswert?

Hallo zusammen,
bin noch ganz frisch beim Thema "Schrittmotoren". Meine Frage wäre:
Was brauche ich alles, um einen Schrittmotoren entsprechend laufen zu
lassen? Ich will mit Borland C++ über die serielle Schnittstelle den
Schrittmotoren steuern.
Bin für jede Hilfe dankbar. MFG

von Heinidererste (Gast)


Lesenswert?

Hallo,
ich möchte gerne folgendes realisieren:
Biepolare Schrittmotoren mit einem L298N als Leistungsendstufe
ansteuern und den L298N mit einem Microcontroller beschalten.
Ich habe auch auf der Page
http://www.microchip.com/download/appnote/pic16/00822a.pdf
einen Kontroller gefunden, der ist aber wohl etwas veraltet?
Aber es steht in dem Datenblatt eine Software, die wie ich denke in den
Kotroller geschrieben werden muß????
Ich habe leider keine Ahnung von Microcontrollern und würde mich freuen
wenn mir jemand helfen könnte meine Idee um zu setzen.
Was benötige ich für einen Controller?
Wie becomme ich die Software in den Kontroller und wo kann ich eine
evtl. fertige Software bekommen ?

Wie gesagt viele Fragen ....

Danke für die Hilfe
Tschüß
Heini

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.