Je vous conseille de voir la page sur le fonctionnement des moteur pas à pas avant de continuer..
I. Le port parallèle
Le brochage ci dessus correspond à un connecteur mâle.Toutes les broches ne sont pas décrites bien évidemment...
Par l'intemédiaire de Q-basic, il est possible de définir l'état des broches D0 à D7 car ce sont des broches de sorties et il est possible de vérifier l'état du "strobe" étant, celle-ci, une broche d'entrée.
Les instructions à utiliser sont donc:
OUT 888,n : cette instruction envoi l'information "n" sur le port "888" (ou &H378 en héxadécimal) qui correspond aux broches D0-D7.
a=INP(890) : cette instruction permet d'insérer dans la variable "a" l'état du port 890 (ou &H37A en héxadécimal) qui correspond au strobe.
Le composant ULN2803 (ou 2003) permet uniquement d'alimenter de façon adéquate le moteur pas à pas (jusqu'à 500mA).
Après avoir branché le moteur pas à pas, il suffit de lancer le programme pour le gérer. Vous pouvez le télecharger ICI.
Voici son fonctionnement :
r = 12 |
t = 6 |
y = 3 |
u = 9 |
CLS |
INPUT "Vitesse de votre processeur (ex:Pour 200MHz tapez 200) : ", x |
1 CLS |
PRINT "Programme de commande d'un moteur pas a pas" |
PRINT "Commande pas par pas : 1" |
PRINT "Commande continu avec changement de sens : 2" |
PRINT "Quitter : 3" |
10 INPUT "Votre choix : ", a |
IF a > 3 OR a < 1 THEN GOTO 10 |
IF a = 1 THEN GOSUB pas |
IF a = 2 THEN GOSUB cont |
IF a = 3 THEN END |
pas: |
CLS |
PRINT "Tout se fera dans le sens des aiguilles d'une montre " |
20 INPUT "nombre de pas : ", q |
IF q < 1 THEN GOTO 20 |
w = INT(q / 4) |
e = 0 |
n(1) = r: n(2) = t: n(3) = y: n(4) = u |
DO WHILE e < w |
FOR I = 1 TO 4 |
OUT 888, n(I): FOR z = 1 TO (25 * x): NEXT z |
NEXT I |
e = e + 1 |
LOOP |
GOTO 1 |
cont: |
n(1) = u: n(2) = y: n(3) = t: n(4) = r |
50 CLS |
PRINT "Pour arreter taper sur une touche" |
DO WHILE INKEY$ = " |
FOR I = 1 TO 4 |
OUT 888, n(I): FOR z = 1 TO (25 * x): NEXT z |
NEXT I |
40 LOOP |
CLS |
PRINT "Pour changer de sens : 1" |
PRINT "Pour revenir au menu principal : 2" |
PRINT "Pour quitter : 3" |
70 INPUT "votre choix :", f |
IF f > 3 OR f < 1 THEN GOTO 70 |
IF f = 3 THEN END |
IF f = 1 THEN |
IF n(1) = r THEN |
n(1) = u: n(2) = y: n(3) = t: n(4) = r: GOTO 50 |
ELSEIF n(1) = u THEN n(1) = r: n(2) = t: n(3) = y: n(4) = u: GOTO 50 |
END IF |
END IF |
IF f = 2 THEN GOTO 1 |
END |
No comments:
Post a Comment