 | Photo du montage |
Le principe de fonctionnementCe module se connecte sur l'interface i2c universelle pour PC décrite sur ce site grace a un cable muni de connecteurs 6P/4C.La base du montage est le module "interface I2C pour PIC16C84" décrit sur ce site auquel a été ajouté quelques composants pour la commande des moteurs. Une fois connecté sur le bus et alimenté via celui-ci ( Seul une alimentation externe pour les moteurs est requise ),le PIC16C84 se comporte comme un composant I2C possédant 8 registres internes 8 bits accessible individuellement en lecture et en écriture.Le contenu de ces registres permettra de commander précisément le sens de rotation ainsi que la puissance électrique fournit à quatre moteurs ( voir le tableau ci-dessous ).D'autre part , il est possible de stocker ces registres dans l'EEPROM du PIC qui assure la rétention des données même en cas de coupure de l'alimentation. Les données stockés dans l'EEPROM peuvent être rechargés dans les registres de manière automatique lors des prochaines mises sous tension ! Ainsi , il est possible de définir un régime de fonctionnement par défaut pour les 4 moteurs lors de la mise sous tension du montage. Pour chaque moteur , on peut controler le sens de rotation ( horaire ou anti-horaire ) et la puissance donnée au moteur. Le controle d'un moteur nécessite donc l'utilisation de deux registres du PIC.
Registre | Fonction du registre | reg0 | Sens du moteur N°1 | reg1 | Puissance du moteur N°1 | reg2 | Sens du moteur N°2 | reg3 | Puissance du moteur N°2 | reg4 | Sens du moteur N°3 | reg5 | Puissance du moteur N°3 | reg6 | Sens du moteur N°4 | reg7 | Puissance du moteur N°4 |
Ce module pourra être détecté automatiquement grace à sa chaine d'identification ( voir interface I2C pour PIC16C84 pour plus de précisions ) qui vaut :
Chaine d'identification = Vari Numéro de version = 1.0
Le montage proposé ici permet de commander quatre moteurs a courant continue en controlant leur vitesse et leur sens de rotation via le bus I2C. Le montage repose sur le principe du hachage de la tension d'alimentation. la figure 1 explique comment en faisant varier le rapport cyclique de la tension d'alimentation on peut controler la puissance électrique fournie a un moteur ( et donc sa vitesse ... ). Notre hacheur repose sur ce principe. Le montage s'articule autour d'un PIC16C84 qui génére les signaux a rapport cyclique variable .
| figure 1 |
Schémas  | Le coeur du montage est un PIC16C84 |
Ce montage sera relié à 4 interfaces de puissances commandant chacune un moteur. Le brochage retenu est le suivant :
Broche du PIC16C84 | Fonction de la broche | RA1 | Sens du moteur N°1 | RB7 | Puissance du moteur N°1 | RA0 | Sens du moteur N°2 | RB3 | Puissance du moteur N°2 | RA2 | Sens du moteur N°3 | RB2 | Puissance du moteur N°3 | RA3 | Sens du moteur N°4 | RA4 | Puissance du moteur N°4 |
 | L'étage de puissance qui pilote un moteur |
L'étage de puissance composé des quatres transistors T1 à T4 permet de commander un moteur a courant continu de 5V à 40V et jusqu'a 3A ( avec radiateur ... ). Le moteur possède une alimentation propre entre +V mot et 0V mot.Attention ! la masse du moteur 0V mot doit être connecté à la masse du bus I2C. En appliquant des signaux de polarité contraire sur R3 et R4 , le moteur sera alimenté. Si l'on inverse la polarité sur les deux entrée , on inverse ainsi , le sens de rotation du moteur. En appliquant des signaux de même niveau sur les deux entrée , le moteur ne sera pas alimenté.
Réalisation pratique  | Brochage du module vu de dessus |
Comme le montre la photo au début de l'article, le montage a été cablé sur une platine d'expérimentation ELEX N°2.Les deux modular jack ont un brochage différent repéré par les symboles comme sur la photo ci-dessus. Pour avoir plus de précision sur la connection de ce module à l'interface allez voir sur la page de cette dernière. NomenclatureRésistances
R1,R2,R3,R4 : 2.2K
Condensateurs
C1,C2 : 20pF C3 : 100nF
Transistors et diodes
T1,T2,T3,T4 : BD679 ( boitier TO126 ) D1,D2 : 1N4004
Circuits Intégrés
IC1 : PIC16C84
Divers :
Un quartz 4Mhz Un porte circuit 6 broches Un porte circuit 18 broches Deux connecteur modular jack 6P/4C à souder sur CI. Le cordon de laison 6P/4C. Un dip-switch à 3 interrupteurs Une barrette sécable de 36pts simple rangée droite Des moteurs courant continu Eventuellement deux plots ou un connecteur pour l'alimentation des moteurs
LogicielLe source VARI.ASM devra être compilé par l'assembleur MPASM de MICROCHIP.Le résultat obtenu est le fichier VARI.HEX qui servira a programmer le PIC16C84. Une unité écrite en Turbo Pascal permet de gérer ce module.Vous pouvez librement télécharger le source ( VARI.PAS ) de cette unité , ou directement l'unité compilée ( VARI.TPU ) a intégrer dans vos projets futurs. Le listing étant documenté , je ne m'attarderais pas sur le fonctionnement de cette unité.
Une DLL ( 16 bits ) sera bientot disponible pour ceux qui désirerait programmer sous windows.
A titre d'exemple, le programme TVARI.EXE permet de tester ce module. Vous pouvez également télécharger le source TVARI.PAS ( nécessite les fichiers BUSI2C.TPU , PIC.TPU et VARI.TPU )
 | Illustration du programme de test |
L'expérience montre que la vitesse de rotation est une fonction quasi-linéaire de la puissance électrique fournit au moteur. Le graphique ci-dessous montre bien la linéarité à partir de 10% de puissance ( il faut bien compenser les frottements ). Ce graphique a été réalisé en respectant le cahier des charges suivant : - Moteur tournant à vide ( sans charge ) - Alimentation nominale des moteurs à 10V - Incrémentation de la puissance par pas de 0,4% continuement de 0% à 100% - Mesure de la vitesse de rotation à l'aide du module tachymètre ( précision de 12 tr/min )
 | Variation de la vitesse en fonction de la puissance électrique |
Date de création : 28/10/2005 @ 17:22
Dernière modification : 31/01/2008 @ 07:46
Catégorie : Bus I2C
Page lue 10587 fois
Prévisualiser la page
Imprimer la page
|