PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotor mit PC steuern



SK112
07.01.2005, 07:16
Guten Tag,

folgendes Problem: Ich will einen Schrittmotor ueber den PC steuern. Ueber eine Benutzeroberflaeche soll er so bedient werden koennen dass er z.B. 10mm vorfaehrt, dort kurz stehen bleibt, dann weitere 10mm faehrt wieder stehen bleibt...Dazu noch verschiedene andere Automatikbetriebe, wie z.B. fahre Home (mit Endschalter)...

Mit welcher Hardware waere dies am besten zu loesen? Evtl. mit der RN-Motor ueber die Serielle Schnittstelle?
Kann man diese Schaltung mit VB so programmieren wie ich es mir vorgestellt habe?
Hat evtl. jemand ein Beispielprog in VB?


Vielen Dank im Voraus,

Simon!

RCO
07.01.2005, 09:39
Evtl. mit der RN-Motor ueber die Serielle Schnittstelle

Das hätte ich dir jetzt auch empfohlen.

Wegen VB kann ich keine festen Zusagen machen, habe aber schon oft gehört, dass es damit relativ einfach ist die serielle Schnittstelle zu programmieren. Schalter etc. würde ich wenn keine Ports mehr frei an den LPT hängen.

MFG Moritz

Pascal
07.01.2005, 09:42
man kann das mit Sicherheit so programmieren, auch mit VB
du musst mal schauen, mit welchen Befehlen das RN-Motor angesteuert wird und die dann entsprechend von deinem Programm aus hinsenden
ich könnte dir ein Beispielprogramm zur Ansteuerung der seriellen Schnittstelle unter VB geben, mehr nicht, da ich nicht diese Platine verwende, allerdings ist die serielle Schnittstelle unter VB wirklich nicht schwer anzusprechen, im Prinzip nur 3 bis 4 Zeilen Code (soweit ich mich erinnere...)

08.01.2005, 03:43
Erstmal Danke fuer die Infos.

Noch ne Frage: Wenn ich das ganze ueber VB in Windows steuere, gibt es da nicht Probleme mit der Echtzeit?
Muss man da Treiber einbinden, z.B. "Port.dll" um ueberhaupt auf die Serielle Schnittstelle zugreifen koennen?

@Pascal: Kannst du mir vielleicht mal dein Beispielprog posten, habe bisher leider noch keine so richtige Erfahrung im programmieren von Schnittstellen in VB

Thx,

Simon

Pascal
08.01.2005, 09:23
du musst keine besonderen Treiber unter Windows verwenden, um auf die serielle Schnittstelle zugreifen zu können
an der Echtzeit mangelt es doch sowieso an allen Ecken unter Windows, nur denke ich, dass du davon nicht viel merken wirst, da der Befehl ausgeführt wird, nur kann man eben nicht genau sagen, wann
allerdings dürfte das schon so schnell gehen, dass du davon nichts merkst, wenn es nicht auf exakteste Timings ankommt

kann ich gerne...
als erstes musst die "Microsoft Comm Control 5.0/6.0"-Komponente einbinden, dann den Com-Port einstellen, an den du das Board angeschlossen hast, RTreshold hab ich auf 1 gesetzt, obs das Optimale ist, weiß ich nicht, aber ich kann dadurch besser Daten empfangen als mit 0, als Letztes musst du noch bei Settings die Verbindungsdaten angeben, also üblicherweise 9600,n,8,1

dann zum Code:


Private Sub Form_Load()
MSComm1.PortOpen = True
'Weiteres, für dein Programm wichtiges
End Sub

Private Sub MSComm1_OnComm()
'Event vom MSComm1, es gibt nur eines, was passiert ist, musst du aus irgendeiner Statusvariable auslesen, hab ich aber noch nicht gemacht, hat mir letzthin aber jemand gesagt, der sich damit auskennen sollte
End Sub


nun zum Datensenden:


MSComm1.Output = Variable 'in der sollte irgendein ASCII-Zeichen stehen

wie gesagt, der Code ist nicht sehr umfangreich...