Étape 6: Le logiciel.
Dans le sens horaire :
par 888,0
pour x = 1 à 10
sur 888, 1
dormir 1
sur 888, 2
dormir 1
sur 888, 4
dormir 1
sur 888, 8
dormir 1
prochaine x
sur 888, 0
Aiguilles :
par 888,0
pour x = 1 à 10
sur 888, 1
dormir 1
sur 888, 8
dormir 1
sur 888, 4
dormir 1
sur 888, 2
dormir 1
prochaine x
sur 888, 0
Vous compilera ce code avec :
FBC-lang qb progname.bas
Note que je mettrai probablement un code plus étendue par la suite. Vous avez assez de vous aider à démarrer. Le code que j’ai écrit est protégé par copyright et a certaines routines très spéciales dont je ne veux pas publier en ce moment.
Exemple : http://www.electro-tech-online.com/general-electronics-chat/3631-qbasic-program-controlling-stepper-motors-i-wrote-one.html
----------------------------------------------------------------------------------------------
Ce que quelqu'un a écrit en basic hérité.
Si quelqu'un à ther est intéressé dans le contrôle d’un moteur pas à pas unipolaire via le port parallèle sur votre pc et aussi les utilisations Qbasic puis copiez le code ci-dessous dans un fichier de qbasic et avoir à lui. Le programme vous invite à l’utilisateur pour le mode de fonctionnement par exemple. unique mode d’excitation bobine ou double mode d’excitation de bobine, direction et horloge combien cycles pour faire le retard. Une bonne valeur pour mon « Très antique » pentium 133mhz pc est partout de 45 à toutefois depuis longtemps, vous voulez le délai entre la mise sous tension de bobine pour être. inférieure à 45 cycles d’horloge le moteur pas à pas aime malfuntion. J’utilise sentronics imprimante parallèle ? connecteur. Modifier le programme à votre goût. Désolé je ne comprend pas commentaires.
broches #2 pour bobine 1
#3 bobine 2
#4 bobine 3
#5 bobine 4
#18(can be any ground) pour le sol.
J’utilise aussi un tableau de transistor darlington uln2803 pour conduire le moteur.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;
; Écrit par Sam Bixler ;
Date 10/03/03 ;
; Pour commander un moteur pas à pas unipolaire via un port parallèle ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;
CLS
VarMode = 0
VarRot = 0
VarRev = 0
VarDelay = 0
INT1 = 0
Principal :
CLS
SUR 888, 0
FAIRE jusqu'à INKEY$ <> ""
IMPRIMER « Entrer le nombre de tours »
VarRev d’entrée
VarRev = VarRev * 50
IMPRIMER « Entrer le Mode de fonctionnement »
IMPRIMER « 1 simple bobine excitation »
IMPRIMER « 2 double bobine excitation »
VarMode d’entrée
IMPRIMER « Entrer le nombre de cycles de retard »
VarDelay d’entrée
IMPRIMER « Saisir le sens de rotation »
PRINT « 5 pour CW 7 pour CCW »
VarRot d’entrée
VarMode = VarRot + VarMode
IF VarMode = 6 THEN GOTO ScCW :
IF VarMode = 7 THEN GOTO DcCw :
IF VarMode = 8 THEN GOTO ScCcw :
IF VarMode = 9 THEN GOTO DcCcw : nd ELSE GOTO :
BOUCLE
ScCW :
FAIRE
GOSUB Etape 1 :
GOSUB Etape 2 :
GOSUB Etape 3 :
GOSUB Etape 4 :
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO Main :
BOUCLE
ScCcw :
FAIRE
GOSUB Etape 4 :
GOSUB Etape 3 :
GOSUB Etape 2 :
GOSUB Etape 1 :
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO Main :
BOUCLE
DcCw :
FAIRE
GOSUB Etape 5 :
GOSUB Etape 6 :
GOSUB Step7 :
GOSUB étape8 :
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO Main :
BOUCLE
DcCcw :
FAIRE
GOSUB étape8 :
GOSUB Step7 :
GOSUB Etape 6 :
GOSUB Etape 5 :
VarRev = VarRev - 1
IF VarRev = 0 THEN GOTO Main :
BOUCLE
Etape 1 :
SUR 888, 0
FAIRE
SUR 888, 1
Int1 IF = VarDelay puis retournez
INT1 = int1 + 1
BOUCLE
Etape 2 :
SUR 888, 0
FAIRE
SUR 888, 2
Int1 IF = 0 THEN RETURN
INT1 = int1 - 1
BOUCLE
Etape 3 :
SUR 888, 0
FAIRE
SUR 888, 4
Int1 IF = VarDelay puis retournez
INT1 = int1 + 1
BOUCLE
Etape 4 :
SUR 888, 0
FAIRE
SUR 888, 8
Int1 IF = 0 THEN RETURN
INT1 = int1 - 1
BOUCLE
Etape 5 :
SUR 888, 0
FAIRE
SUR 888, 3
IF int2 = VarDelay puis retournez
Int2 = int2 + 1
BOUCLE
Etape 6 :
SUR 888, 0
FAIRE
SUR 888, 6
Int2 IF = 0 THEN RETURN
Int2 = int2 - 1
BOUCLE
Étape 7 :
SUR 888, 0
FAIRE
SUR 888, 12
IF int2 = VarRev puis retournez
Int2 = int2 + 1
BOUCLE
Étape8 :
SUR 888, 0
FAIRE
SUR 888, 9
Int2 IF = 0 THEN RETURN
Int2 = int2 - 1
BOUCLE
ND :
SUR 888, 0