Paso 6: El software.
Hacia la derecha:
a 888,0
para x = 1 a 10
out 888, 1
sueño 1
out 888, 2
sueño 1
out 888, 4
sueño 1
out 888, 8
sueño 1
siguiente x
out 888, 0
Manecillas del reloj:
a 888,0
para x = 1 a 10
out 888, 1
sueño 1
out 888, 8
sueño 1
out 888, 4
sueño 1
out 888, 2
sueño 1
siguiente x
out 888, 0
Se compilar este código con:
FBC-lang qb progname.bas
Nota que probablemente se ponga código más extensa más adelante. Tienes suficiente para empezar. El código que he escrito es propiedad y tiene unas rutinas muy especiales que no quiero publicar en este momento.
Ejemplo: http://www.electro-tech-online.com/general-electronics-chat/3631-qbasic-program-controlling-stepper-motors-i-wrote-one.html
----------------------------------------------------------------------------------------------
Lo que alguien escribió en basic obsoleta.
Si alguien hacia fuera allí está interesado en controlar un motor paso a paso unipolar mediante el puerto paralelo en su pc y también utiliza Qbasic luego copie el código siguiente en un archivo qbasic y en él. El programa pedirá al usuario para el modo de operación, por ejemplo. solo modo de la excitación de la bobina o doble modo de la excitación de la bobina, dirección y reloj cuántos ciclos para hacer el retardo. Un buen valor "Muy antiguo" pentium 133mhz PC es en cualquier lugar de 45 sin embargo largo quieres el retraso entre la energización de la bobina a. por debajo de 45 ciclos de reloj el motor paso a paso le gusta malfuntion. ¿Estoy usando sentronics impresora paralela? conector. Modificar el programa a tu gusto. Lo siento no se incluyeron comentarios.
pernos #2 para la bobina 1
#3 para la bobina 2
#4 para la bobina 3
#5 para la bobina 4
#18(can be any ground) para la tierra.
También estoy usando un array de transistores darlington uln2803 para conducir el motor.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;
; Escrito por Sam Bixler;
Fecha 10/03/03;
; Para controlar un motor paso a paso unipolar mediante un puerto paralelo;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;
CLS
VarMode = 0
VarRot = 0
VarRev = 0
VarDelay = 0
INT1 = 0
Principal:
CLS
OUT 888, 0
HASTA $ INKEY <> ""
Imprimir "Introduzca el número de revoluciones"
ENTRADA VarRev
VarRev = VarRev * 50
Imprimir "Entrar en el modo de operación"
Imprimir "1 sola bobina de excitación"
Imprimir "2 para doble bobina de excitación"
ENTRADA VarMode
Imprimir "Introduzca el número de ciclos de retraso"
ENTRADA VarDelay
Imprimir "Introduce la dirección de rotación"
Imprimir "5 para CW 7 de CCW"
ENTRADA VarRot
VarMode = VarRot + VarMode
IF VarMode = 6 THEN GOTO ScCW:
IF VarMode = 7 THEN GOTO DcCw:
IF VarMode = 8 THEN GOTO ScCcw:
IF VarMode = 9 entonces DcCcw GOTO: GOTO más nd:
LAZO
ScCW:
HACER
GOSUB paso 1:
GOSUB Step2:
GOSUB paso 3:
GOSUB Paso4:
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO principal:
LAZO
ScCcw:
HACER
GOSUB Paso4:
GOSUB paso 3:
GOSUB Step2:
GOSUB paso 1:
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO principal:
LAZO
DcCw:
HACER
GOSUB Step5:
GOSUB Step6:
GOSUB Step7:
GOSUB Paso8:
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO principal:
LAZO
DcCcw:
HACER
GOSUB Paso8:
GOSUB Step7:
GOSUB Step6:
GOSUB Step5:
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO principal:
LAZO
Paso 1:
OUT 888, 0
HACER
OUT 888, 1
IF int1 = VarDelay volver
INT1 = int1 + 1
LAZO
Paso 2:
OUT 888, 0
HACER
OUT 888, 2
Int1 IF = 0 entonces retorno
INT1 = int1 - 1
LAZO
Paso 3:
OUT 888, 0
HACER
OUT 888, 4
IF int1 = VarDelay volver
INT1 = int1 + 1
LAZO
Paso4:
OUT 888, 0
HACER
OUT 888, 8
Int1 IF = 0 entonces retorno
INT1 = int1 - 1
LAZO
Step5:
OUT 888, 0
HACER
OUT 888, 3
IF int2 = VarDelay volver
INT2 = int2 + 1
LAZO
Step6:
OUT 888, 0
HACER
OUT 888, 6
IF int2 = 0 entonces retorno
INT2 = int2 - 1
LAZO
STEP7:
OUT 888, 0
HACER
OUT 888, 12
IF int2 = VarRev volver
INT2 = int2 + 1
LAZO
Paso8:
OUT 888, 0
HACER
OUT 888, 9
IF int2 = 0 entonces retorno
INT2 = int2 - 1
LAZO
Nd:
OUT 888, 0