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 |


