hi
visual basic oder wenns kein optisches interface haben soll dann basic...
oder vieleicht auch c++
mfg Flo
Hallo,
ich besitze 3 Schrittmotoren und eine ansteuerkarte die über den parallelport an den pc angeschlossen ist.
Ich wollte mich mal erkundigen wie und mit was ich am besten ein programm schreibe um diese anzusteuern.
danke im vorraus
mfg
fab
hi
visual basic oder wenns kein optisches interface haben soll dann basic...
oder vieleicht auch c++
mfg Flo
Also mit QBasic geht es ziemlich schnell und einfach.
Zum Testen einfach mal den Computer mit einem DOS-basierendem Betriebssystem booten (also nicht 2000/XP), Qbasic starten und mit dem OUT-Befehl Signale rausgeben. So hab ich meine Schrittmotorsteuerung auch getestet.
Bsp.: OUT 888,0 ' Alle Datenleitungen auf 0V, Parallelportadresse 888=378h
Anstelle der 0 kann nun einfach eine 8 Bit Dezimalzahl gesetzt werden (also 0 - 255).
Unter Linux geht das auch prima in C.
Ich kann ja mal ein Beispielprogramm posten, wenn du willst.
Jo des unter Linux würd mich auch interessieren
Post doch mal dein Beispielprogramm. Welchen Compiler nimmst du unter Linux für sowas?
Hier ist mein Programm.
Wichtig ist, das du es mit
GCC manuell.c -o manuell -lncurses
compilierst, außerdem muss das Paket "curses-devel" installiert sein.
Das Programm muss als root gestartet werden, weil nur root direkt auf die Hardware zugreifen darf!
Mit den Tasten 1-8 steuertst du die 8 Datenpins des Parallelports (Pin 2-9), mit q beendest du das Programm.
vielen dank erstmal für eure antworten!
art-hightech, ich habe einfach mal unter Qbasic das mit dem OUT befehl getestet doch mein motor bewegt sich leider kein bissien vom fleck. wie kann ich den herausfinden welche pins ich genau ansteuern muss?
mfg
fab
Du hast 8 Datenbits am PP und ich nehme mal an das du die da dran hängen hast.
Ich weiß zwar nicht genau welche Karte du hast aber du hast wahrscheinlich nen Lamp Treiber drauf.
Da kommen dann 8 Datenbits drann und 12V + und Ground.
Beim PP immer auf die Negierten Pins achten!
Jo und dann kommt der schöne C++ Code:
bei dem Code kannst du dann mit 1 und 2 noch die geschwindigkeit einstellen. Brauchst aber die Wtype.h und Dlportio.h aber die kannst du googlen.Code:#include <iostream.h> #include <wtypes.h> #include "C:\Programme\DLPortIO\API\DlportIO.h" #include <stdlib.h> #include <conio.h> #include <stdio.h> #define data 0x378 #define status 0x379 #define control 0x37A long time=10; void set(int value) { DlPortWritePortUchar(data, (UCHAR) value); Sleep(time); DlPortWritePortUchar(data, (UCHAR) 0x00); } int main(void) { char key; set(0x00); while(true) { if(kbhit()) { key=getch(); if(key=='1') {time--;} if(key=='2') {time++;} cout << time << endl; } set(0x00); set(0x00); set(0x00); set(0x00); } return 0; }
Bei der Set Funtion musst du dan nnoch die Passenden Werte eionsetzen.
0000 0000 = 00hex
Sind die acht Datenbits
0000 0001 = 01hex
Spricht dann den hintersten Bit an usw.
Also ganz hinten Schwarz anschließen usw.
Normalerweise ist am Schrittmotor die Belegung Weiß+ Rot = Ground
Schwarz,Geld,Braun,Orange ist die Schrittreihenfolge.
So ich hoffe ich konnte helfen.
CyA
wow vielendank
werde es gleich mal testen aber was muss ich denn genau unter set schreiben hab nämlich nen Schrittmotor mit 4 ausgängen : schwarz,rot,braun und grün.
mfg
fab
Lesezeichen