Forum: Mikrocontroller und Digitale Elektronik RS 232 - Schrittmotoransteuern


von Ikaim P. (ikaim)


Lesenswert?

Hallo,
da ich gerade in eine Elektronik Schule gehe und im Unterricht nie 
wirklich etwas tolles gelehrt wird habe ich mir eine Aufgabe selbst 
gestellt.

Ich möchte einen Schrittmotor über mein Notebook ansteuern. Der 
Schrittmotor soll Vorwärts/Rückwärts, stufenlos schnell und langsam über 
Pedale am Notebook gesteuert werden.

Wie oben erwähnt haben wir zwar einiges gelernt jedoch weiß ich trotzdem 
nicht wie man sowas realisiert.

Ich habe schon Grundkenntnisse in µC programmierung, weiß das ich für 
die Ansteuerung des Motors L297 und L298 benötige. Der Schrittmotor wird 
unipolar sein. Ich möchte es über RS232 ansteuern. Ahja ich möchte es in 
Assembler programmieren -> oder ist C besser?

Ich stelle mir vor die Signale die ich vom Notebook bekomme mit einem 
16F690 auszuwerten und über den Motortreiber an den Motorweitergebe.

Mein Problem ist, ich weiss nicht ganz genau wo oder wie ich das am 
besten angehe

Bitte um einen kleinen Denkanstoß

von Christopher G. (cbg)


Lesenswert?

Für die Pedale irgendein Lenkrad + Pedale bei eBay o.ä. besorgen. Dann 
sind die Pedale als Joystick verfügbar. Die Pedalwerte periodisch 
abfragen und per RS232 an beliebigen µC schicken. Dort die ankommenden 
Daten (Datenprotokoll!) auswerten und die Regelung des Motors anpassen.
Wenn bereits µC Kenntnisse vorhanden sind, dann dürfte wohl nur das 
Ansprechen der Joysticks Neuland sein.

von Ikaim P. (ikaim)


Lesenswert?

Hi, wie gesagt ich habe nur ein paar Grundlagen diesbezüglich gelernt!

So würde ich mir dass mal vorstellen:
Bei einer 8bit Folge würde ich ein Bit für die Drehrichtung verwenden. 
Dieses Bit wird über den µC an den L297 Eingang CW(High/Rechts) 
CCW(Low/Links) übermittelt. Ein Bit wär als parity vorgeschlagen um die 
erste Überwachung zu realisieren. Hiermit wird ein „Umfallen“ eines bits 
erkannt und eine unbeabsichtigte Drehrichtungsänderung oder 
Geschwindigkeitssprünge verhindert.
Die restlichen 6 Bits sind für die Geschwindigkeitsstufen, diese  kommen 
aus dem µC auf den L297 Clock Eingang. Mit jedem Byte (8bitfolge) wird 
eine Drehzahl vorgegeben. Die Impulsfolge am Clock gibt die Drehzahl an. 
Das Bit für die Drehrichtungsänderung darf nur bei Stillstand des 
Motors, also x0000000 ausgewertet werden um keine Drehrichtungsänderung 
während der Motorbewegung zu erlauben. Achtung Nachlauf bei Last des 
Motors!!!

Bin ich am richtigen Weg?
lg

von Reinhard Kern (Gast)


Lesenswert?

Ikaim P. schrieb:
> Bei einer 8bit Folge würde ich ein Bit für die Drehrichtung verwenden....
> Bin ich am richtigen Weg?

Soweit schon (Steuerung des Schrittmotors mit 1 Byte), aber was hat das 
genau mit RS232 zu tun?

Gruss Reinhard

von qwertzuiopü+ (Gast)


Lesenswert?

Christopher G. schrieb:
> Für die Pedale irgendein Lenkrad + Pedale bei eBay o.ä. besorgen.

wenn du dabei klassische, analoge geräte verwendest kannst du das 
notebook sogar recht einfach einsparen (-> google fragen, wie analoge 
joysticks ausgewertet werden) und den bzw. die motoren direkt mit dem µc 
und entsprechender zusatzbeschaltung steuern.

von Ikaim P. (ikaim)


Lesenswert?

Hi

@Reinhard Kern
Ich würde diese Signale über eine RS232 Schnittstelle vom PC an meinen 
µC weiterschicken.

@qwertzuiopü+
Ich möchte unbedingt über einen Laptop das Ganze realisieren.

lg

von Karl H. (kbuchegg)


Lesenswert?

Ikaim P. schrieb:
> Hi
>
> @Reinhard Kern
> Ich würde diese Signale über eine RS232 Schnittstelle vom PC an meinen
> µC weiterschicken.

Ja schon.
Aber das sind ja 2 Paar Schuhe.

Das eine ist der Schrittmotor, der mit irgendwelchen Daten, egal wo die 
herkommen angesteuert werden will.

Und das andere ist eine RS232 Strecke, die Daten überträgt.

Nur das jetzt halt zufällig das was aus der RS232 rausfällt in die 
Schrittmotorsteuerung hineingesteckt wird.

Aber ausser dieser losen Kopplung haben die beiden Themenkreise ja 
technisch nichts miteinander zu tun.

von Philipp (Gast)


Lesenswert?

sie werden mit 1 bauteil verkoppelt, das das komplexste und wichtigste 
gleichzeitig ist

von Karl H. (kbuchegg)


Lesenswert?

Philipp schrieb:
> sie werden mit 1 bauteil verkoppelt, das das komplexste und wichtigste
> gleichzeitig ist


LOL
Ich rede aber vom Programm innerhalb dieses Bauteils :-)

Auch das hat eine Struktur. Eine Struktur mit 2 Teilaufgaben. Die 
insofern lose miteinander gekoppelt sind, dass der Output des einen 
Programmteils Input für den anderen Programmteil ist. Und abgesehen 
davon haben die beiden Programmteile nicht viel miteinander zu tun. 
Sprich: Die Schrittmotoransteuerung könnte man genausogut mit Werten aus 
einem ADC füttern oder einem Eingabemodul mit 2 Tasten oder ....
Dem SChrittmotormodul ist es völlig Wurscht, wo die Werte herkommen mit 
dem es gefüttert ist. Und dem RS232 Modul ist es völlig Wurscht was mit 
den Werten weiter passiert die es empfängt. Lediglich der verbindende 
Kit, lenkt die Daten von einem Modul zum anderen.

von Ikaim P. (ikaim)


Lesenswert?

Aso,

ich stelle mir die Ablauf so vor:

Pedalstellung -> PC(mit USB) -> Software wertet die Stellung aus und 
gibt einen Zeichensatz weiter -> an die RS232 -> in den µC (beinhaltet 
die Auswertung des Codes, Drehrichtung, Drehzahl, ?parity?) -> weiter in 
den L297 -> L298 -> Schrittmotor.


Ich hoffe ich habe hier keinen Denkfehler

von Karl H. (kbuchegg)


Lesenswert?

Ikaim P. schrieb:
> Aso,
>
> ich stelle mir die Ablauf so vor:
>
> Pedalstellung -> PC(mit USB) -> Software wertet die Stellung aus und
> gibt einen Zeichensatz weiter -> an die RS232 -> in den µC (beinhaltet
> die Auswertung des Codes, Drehrichtung, Drehzahl, ?parity?) -> weiter in
> den L297 -> L298 -> Schrittmotor.
>
>
> Ich hoffe ich habe hier keinen Denkfehler

Ja. Soweit in Ordnung.
Aber noch sehr rudimentär. So ungefähr: Wir bauen ein Hochhaus. Dazu 
brauchen wir: einen Keller, Wände und ein Dach. Und ach ja: Einen Kran, 
der das Dach hochhebt.

Mein Tip:
Fang hinten an mit der Motorsteuerung.
Nimm an du hättest von der RS232 ein Byte erhalten das einen korrekten 
Aufbau hat. Erfinde dazu einen Sollwert.
Wie gehts weiter? Ganz konkret? Wenn du dieses Byte hast, was tust du 
damit, damit sich der Motor dreht?

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.