Stap 6: De software.
Met de klok mee:
uit 888,0
voor x = 1 tot en met 10
uit 888, 1
slaap 1
uit 888, 2
slaap 1
uit 888, 4
slaap 1
uit 888, 8
slaap 1
volgende x
uit 888, 0
Tegen de klok:
uit 888,0
voor x = 1 tot en met 10
uit 888, 1
slaap 1
uit 888, 8
slaap 1
uit 888, 4
slaap 1
uit 888, 2
slaap 1
volgende x
uit 888, 0
U zal compileert deze code met:
FBC-lang qb progname.bas
Opmerking die ik waarschijnlijk up meer uitgebreide code later put zal. Hebt u genoeg om te beginnen. De code die ik heb geschreven is auteursrechtelijk beschermd en heeft enkele zeer bijzondere routines die ik wil niet te publiceren op dit moment.
Voorbeeld: http://www.electro-tech-online.com/general-electronics-chat/3631-qbasic-program-controlling-stepper-motors-i-wrote-one.html
----------------------------------------------------------------------------------------------
Wat iemand anders schreef in oudere basic.
Als iemand uit ther geïnteresseerd in het controleren van een unipolaire stappenmotor via de parallelle poort op uw pc en ook gebruik Qbasic is dan kopieer de onderstaande code in een bestand van qbasic en hebben op het. Het programma vraagt de gebruiker om de bewerkingsmodus bijv. single coil excitatie mode of dubbele spoel excitatie mode, richting en hoeveel klok cycli te maken van de vertraging. Een goede waarde voor mijn "Zeer oude" pentium 133mhz pc is overal van 45 tot hoe lang u wilt dat de vertraging tussen de spoel energization te zijn. onder 45 klokcycli graag de stappenmotor in malfuntion. Ik ben met behulp van parallelle printer sentronics? connector. Het wijzigen van het programma naar uw wens. Sorry ik bevatte geen opmerkingen.
#2 pinnen voor spiraal 1
#3 voor spoel 2
#4 voor spiraal 3
#5 voor spiraal 4
#18(can be any ground) voor grond.
Ik ben ook met behulp van een uln2803 darlington transistor matrix om te rijden op de motor.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;
; Geschreven door Sam Bixler;
Datum 03-10-03;
; Voor het beheersen van een unipolaire stappenmotor via een parallelle poort;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;
CLS
VarMode = 0
VarRot = 0
VarRev = 0
VarDelay = 0
INT1 = 0
Hoofdpodium:
CLS
UIT 888, 0
DOEN tot INKEY$ <> ""
AFDRUKKEN "Voer het aantal omwentelingen"
INVOER VarRev
VarRev = VarRev * 50
AFDRUKKEN 'Voer de bewerkingsmodus'
AFDRUKKEN "1 voor single coil excitatie"
AFDRUKKEN "2 voor dubbele coil excitatie"
INVOER VarMode
AFDRUKKEN "Geef het aantal cycli van vertraging"
INVOER VarDelay
AFDRUKKEN "Enter draairichting"
AFDRUKKEN "5 voor CW 7 voor CCW"
INVOER VarRot
VarMode = VarRot + VarMode
IF VarMode = 6 dan GOTO ScCW:
IF VarMode = 7 dan GOTO DcCw:
IF VarMode = 8 dan GOTO ScCcw:
IF VarMode = 9 dan GOTO DcCcw: anders GOTO nd:
LOOP
ScCW:
DOEN
GOSUB stap 1:
GOSUB Step2:
GOSUB Stap3:
GOSUB Stap4:
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO Main:
LOOP
ScCcw:
DOEN
GOSUB Stap4:
GOSUB Stap3:
GOSUB Step2:
GOSUB stap 1:
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO Main:
LOOP
DcCw:
DOEN
GOSUB Stap5:
GOSUB Stap6:
GOSUB Step7:
GOSUB Stap8:
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO Main:
LOOP
DcCcw:
DOEN
GOSUB Stap8:
GOSUB Step7:
GOSUB Stap6:
GOSUB Stap5:
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO Main:
LOOP
Stap 1:
UIT 888, 0
DOEN
UIT 888, 1
Als int1 = VarDelay vervolgens terug te keren
INT1 = int1 + 1
LOOP
Stap 2:
UIT 888, 0
DOEN
UIT 888, 2
Als int1 = 0 dan terug
INT1 = int1 - 1
LOOP
Stap3:
UIT 888, 0
DOEN
UIT 888, 4
Als int1 = VarDelay vervolgens terug te keren
INT1 = int1 + 1
LOOP
Stap 4:
UIT 888, 0
DOEN
UIT 888, 8
Als int1 = 0 dan terug
INT1 = int1 - 1
LOOP
Stap5:
UIT 888, 0
DOEN
UIT 888, 3
Als int2 = VarDelay vervolgens terug te keren
INT2 = int2 + 1
LOOP
Stap6:
UIT 888, 0
DOEN
UIT 888, 6
Als int2 = 0 dan terug
INT2 = int2 - 1
LOOP
Step7:
UIT 888, 0
DOEN
UIT 888, 12
Als int2 = VarRev vervolgens terug te keren
INT2 = int2 + 1
LOOP
Stap8:
UIT 888, 0
DOEN
UIT 888, 9
Als int2 = 0 dan terug
INT2 = int2 - 1
LOOP
ND:
UIT 888, 0