commande proportionnelle de deux moteurs pas à pas

Réalisation: commande proportionnelle de 2 moteurs pas à pas
Le schéma
Comme le montre le schéma, le circuit comporte peu de composants. C'est bien entendu le micro-contrôleur ST6225 qui en est "le coeur" puisqu'il réalise les actions suivantes:
* Captage de la consigne de vitesse de rotation des deux moteurs.
* Elaboration des signaux de commande des enroulements des deux moteurs.
Outre le ST6225, on peut identifier:

- Le dispositif de RESET du micro-contrôleur constitué de R1 et C1 (impulsion à l'état bas à la mise sous tension).
- Le quartz de 8MHz et les deux condensateurs de 22pF nécessaires au fonctionnement de l'horloge interne du ST6225.
- Un dispositif d'affichage constitué de six diodes LED, trois par moteur, permettant à l'utilisateur d'identifier visuellement l'état de chaque moteur (arrêt, sens de rotation horaire ou anti-horaire).
- Deux interrupteurs K0 et K1, de type mini-interrupteurs en boîtier DIL, permettant de sélectionner le mode de fonctionnement de chaque moteur: pas entiers ou demi-pas.
- Les potentiomètres P1 et P2 de réglage de la vitesse et du sens de rotation.


Les diodes LED étant commandées par le port B, le courant les traversant est limité à 5mA grâce aux résistances RD (limite du courant délivré par le port B). La fréquence du quartz a été choisie égale à 8MHz (valeur max.) afin que le temps d'exécution d'une instruction soit le plus court possible. Dans ces conditions, la fréquence de commande
des enroulements peut atteindre quelques centaines de hertz. Les consignes de vitesse sont fournies par deux potentiomètres de 1k  (P1 et P2). Cette valeur étant très faible par rapport à l'impédance d'une entrée analogique du ST6225, il n'est pas nécessaire de filtrer la tension (cela reste vrai tant que la liaison filaire entre les potentiomètres et le circuit est courte). Les signaux de commande des enroulements sont fournis par le port A, configuré en sortie. La tension de 5V est délivrée par un régulateur intégré de type 7805.
Le programme
Configuration
des entrées/sorties Presque toutes les broches d'entrées/sorties sont utilisées et donc nécessairement configurées.
* Le port A : tout en sortie, avec étages symétriques (push-pull).
- PA0 à PA3 commandent les enroulements du moteur 1,
- PA4 à PA7 commandent les enroulements du moteur 2.
* Le port B : tout en sortie, avec étages à drains ouverts.
- PB0 à PB5 commandent les LED d'indication "MARCHE", "SENS1" et "SENS2" des deux moteurs:
- PB0 à PB2 pour le moteur 1
- PB3 à PB5 pour le moteur 2. Seuls
- PB6 et PB7 ne sont pas utilisés.
* Le port C : si aucune conversion analogique/numérique n'est effectuée, celui-ci est configuré tout en entrée logique sans interruption, PC4 et PC5 sans résistance de rappel au +VDD, PC6 et PC7 avec résistance de rappel. Pour pouvoir effectuer une conversion analogique/numérique de la tension présente soit sur PC4, soit sur PC5, le bit correspondant du registre d'option est forcé à l'état 1, ce qui configure l'entrée en mode analogique (celle-ci est directement reliée au convertisseur intégré). Bien entendu, on ne peut effectuer une conversion simultanée sur PC4 et PC5 sous peine de relier les deux curseurs de P1 et P2 et donc d'endommager le ST6225 si l'un est au +5V et l'autre au 0V.
Le tableau ci-dessous résume la configuration de chaque port.
Acquisition et conversion A/N
Pour convertir différentes tensions appliquées sur différentes broches du micro-contrôleur, on utilise une technique de multiplexage logiciel. C'est à dire que l'on configure en entrée analogique une et une seule entrée à la fois. Après avoir effectué la conversion, la même entrée est configurée en entrée logique sans résistance de rappel au +5V et sans interruption. Si cette technique n'est pas utilisée, cela peut éventuellement aboutir à une détérioration matérielle , il faut donc le savoir et programmer l'application en conséquence.
Mode de fonctionnement
Pour chaque moteur est associé un potentiomètre dont la valeur de la tension correspond à une consigne de vitesse. Cette tension étant convertie sous forme numérique, le fonctionnement du moteur est le suivant:
* Potentiomètre à mi-course: moteur à l'arrêt
* Potentiomètre en butée gauche ou droite: moteur tournant à vitesse maximale dans le sens horaire ou anti-horaire.
Une zone "morte" a été définie par logiciel, telle que le moteur soit à l'arrêt lorsque le potentiomètre est "environ" à mi-course. Ceci permet de pouvoir réellement arrêter chaque moteur, car il est impossible de placer le curseur à mi-course avec une précision de 1/256 de tour (n'oublions pas que la conversion se fait sur 8 bits). La valeur numérique correspondant à la consigne de vitesse et de sens de chaque moteur est utilisée pour définir la fréquence de commande des moteurs (table des fréquences dans la mémoire EPROM du ST6225). La commande périodique des enroulements est assurée par une routine d'interruption du temporisateur. Telles que sont définies les constantes du programme, la fréquence de commande peut varier d'environ 13 pas (ou demi-pas) à 180 pas (ou demi-pas) par seconde. Chaque moteur peut être commandé en mode "pas entiers biphasés" ou en mode "demi-pas" à l'aide de deux mini-interrupteurs.
Réalisation pratique
Tracé du circuit imprimé 
Implantation des composants
 La réalisation du circuit ne pose aucun problème particulier. Toutefois vous veillerez à bien souder le quartz et les deux condensateurs de 22pF , qui sont les pièces maîtresses de l'horloge intégrée au ST6225. En ce qui concerne la liaison entre les deux potentiomètres et le circuit, il est préférable que les fils soient courts (pour que les tensions présentes sur PC4 et PC5 soient les plus stables possible).
Pour notre maquette nous avons choisi des diodes LED de trois couleurs différentes: Rouge pour l'arrêt, verte pour le sens 2 et jaune pour le sens 1. Si vous souhaitez intégrer le montage dans un boîtier, il faudra souder les diodes LED à une hauteur suffisante pour que celles-ci apparaissent sur sa face supérieure. Les potentiomètres pourront être fixés sur la face avant.
La tension de 5V étant délivrée par un régulateur intégré, l'alimentation extérieure peut varier de 8V à environ 15V sans risque de dommage. Vous pourrez par exemple alimenter le montage à partir de la tension de commande des moteurs, qui est généralement de l'ordre de la dizaine de volts.
Utilisation
A la mise sous tension, une diode LED parmi les trois, pour chaque moteur, doit s'allumer. En faisant tourner l'axe de chaque potentiomètre, vous devez constater que:
* en butée gauche ou droite, ce sont les diodes "Sens1" ou Sens2" qui s'allument;
* à mi-course, c'est la diode "Arrêt" qui s'allume.
Si le montage n'est pas encore connecté à un interface de puissance, vous pouvez toutefois vous assurer qu'un signal périodique est bien délivré sur chaque sortie du port A. Pour cela il suffit de connecter un haut-parleur en série avec une résistance (1k  par exemple) entre chacune d'elles et la masse. La fréquence du signal audible doit varier avec la position de chaque potentiomètre. A mi-course le signal audible doit disparaître.
Pour commander les deux moteurs, il suffit de connecter à notre montage un interface de puissance. Un tel circuit a été publié dans nos pages, en Novembre 96 (n°208). Vous y trouverez aussi un article sur les moteurs pas à pas qui vous renseignera sûrement sur les différentes façons de commander un tel moteur (plus particulièrement en ce qui nous concerne, sur les modes "pas entiers biphasés" et "demi-pas"). La sélection du mode "pas entiers" ou "demi-pas biphasés" est réalisée à l'aide des mini-interrupteurs K0 et K1, comme indiqué sur le schéma de principe. Afin de régler finement la vitesse des moteurs, il est recommandé de monter des boutons de gros diamètre extérieur .
Vous pourrez exploiter avec profit ce montage pour animer vos réalisations mécaniques (maquettes, prototypes...) ou encore pour tester le bon fonctionnement de vos moteurs.
E. QUAGLIOZZI
Nomenclature Résistances R1: 18 k  1/4W RD: 680  1/4W P1, P2: potentiomètres rotatifs, linéaires, de 1 k  Condensateurs C1: 1 µF/16V C2, C3: 22 pF C4: 100 µF/16V Semi-conducteurs D1: Diode 1N4001 à 4007 DEL: Led 5mm (par exemple: 2 rouges, 2 vertes, 2 jaunes) Circuits intégrés IC1: micro-contrôleur ST62E25 ou ST62T25(version
REG: régulateur 5V de type 7805 Divers  Qtz: quartz 8MHz 4 x mini-interrupteurs en boîtier DIP

Enregistrer un commentaire

0 Commentaires