Vous avez besoin rapidement de monter un projet pour commander des moteurs (continu ou pas à pas) avec un ordinateur ?
Vous pouvez le faire simplement grâce au port parallèle (appelé aussi port imprimante LPT) de votre ordinateur.
Le port parallèle permet simplement la commande de 8 pins, c’est-à-dire 8 bits qui pourront avoir un état haut (1) ou un état bas (0).
8 bits permettent d’adresser 256 valeurs différentes (de 0 à 255).
Je vais vous présenter comment réaliser un montage pour commander deux moteurs, tout en gérant les deux sens de rotations de vos moteurs (tourner dans le sens horaire, ou inverse).
C’est un montage simple avec un minimum de composants. Je vous donnerai les clés pour le compléter afin qu’il réponde à vos besoins.
Première étape le matériel
* Fer à souder
* Etain
* Petits fils
* Support pour souder (de préférence avec des lignes de circuit)
* Prise male port parallèle à 25 pins
* ULN 2803 (circuit à 18 pattes, c’est un opto-coupleur)
* L293 (c’est un pont H, permettant de commander dans les deux sens les moteurs)
* 8 diodes de puissance
* 2 moteurs
* Alimentation pour les moteurs (suivant le voltage requis par les moteurs)
Or moteurs, alimentation et outils, vous en avez pour moins de 10€.
Cheminement
Nous allons en premier repérer les 8bits du port parallèle qui nous intéressent
Nous allons utiliser l’opto-coupleur ULN 2803 pour protéger le port parallèle de toute surtension et débit de courant afin de protéger votre ordinateur
Nous connecterons le L293 pour gérer les moteurs.
Nous brancherons les moteurs
Nous connecterons 4 diodes de puissance pour protéger chaque moteur
Nous verrons quelques solutions pour programmer la commande des moteurs via le port parallèle
Le port parallèle
Cet article n’a pas vocation à présenter le port parallèle. Je résumerais seulement en disant que nos 8bits de données se trouvent du pin 2 au pins 9 et que du pins 25 au 18 ce sera la masse.
ULN 2803
Il comprend 18 pattes : 8 pattes IN venant du port parallèle, 8 pattes OUT liées aux IN, 1 patte alimentation, une patte de masse.
Ce composant est vraiment une interface qui va permettre de travailler avec des signaux de commandes sans prendre de risque pour votre ordinateur.
L293
Pour commander un moteur sur le L293, il y a trois pattes.
Une patte (EN = enable) pour activer le moteur, sans activation le moteur ne peut être contrôlé.
Deux pattes pour indiquer le sens : les signaux doivent être opposés (1/0 pour un sens et 0/1 pour l’autre sens.).
En clair pour deux moteurs il nous faut donc 6 pins du port parallèle, les deux autres ne seront pas exploitées.
L’alimentation est commune pour le L293 et ULN 2803
La masse est commune pour le L293 et ULN 2803 et le port parallèle
Les diodes de puissance
Elles vont servir à protéger le moteur et aussi le circuit de commande (L293). On a besoin de deux diodes par sens de rotation et par moteur, cela nous fait 8 diodes à monter et en inverse comme vous pouvez le constater sur le schéma suivant…
Schéma
Utilisation
Le port parallèle c’est donc 8 bits : b0 b1 b2 b3 b4 b5 b6 b7
Il va falloir mettre certains bits à la valeur 1 et d’autres à la valeur logique 0.
Exemple commande du moteur 1
Mettre le bit relié à la commande EN1 à 1
Mettre un des deux bits de commande de sens de rotation à 1.
Pour faire tourner dans l’autre sens, il faut inverser les deux, (1->0 et de 0->1)
Pour arrêter le moteur il suffit de passer l’état EN1 à 0.
C’est identique pour l’autre moteur qui est totalement indépendant avec ses 3 bits de commande.
Éléments de programmation
Tout est possible maintenant, lancer des exécutions plus ou moins complexe :
M1 tourner à gauche durant 3sec ;
M2 tourner à droite durant 4sec ;
M1 à droite durant 2sec ;
M1 à gauche durant 1sec ;
Etc.
Vous pouvez aussi relier un joystick à la commande de vos moteurs ou plus simplement aux touches du clavier.
Vous pouvez commander le port parallèle avec quasiment tous les langages de programmation.
J’ai testé personnellement :
Le C, assez compliqué, difficile de faire une interface graphique simplement
Le perl, nécessite l’installation de module, fonction bien sous linux, de nombreuses interactions possibles
Le C#.net, nécessite le Framework .net installé et Visual Studio pour programmer, c’est très simple à mettre en œuvre, de nombreuses interactions possibles
Pour gérer un plus grand nombre de moteurs ou libérer des pins du port parallèle
Il vous faudra rajouter des L293 qui permettent de gérer deux moteurs dans les deux sens. Si vous n’avez besoin que d’un sens, ils peuvent en gérer quatre.
Il vous faudra optimiser la gestion des bits disponibles, via l’utilisation de porte NON, pour commander le L293 avec une seul PIN.
Enfin si vos besoins sont supérieurs à la commande de plus de 8 moteurs, il vous faudra utiliser un démultiplexeur.
une grue meccano motorisé et commandé par un ordinateur via le port parallèle.
Source: knol.google.com/k | CC