اﻟﺟﻣـﮭورﯾــﺔ اﻟﺟزاﺋرﯾــﺔ اﻟدﯾﻣﻘراطﯾــﺔ اﻟﺷﻌﺑﯾــﺔREPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE ……………………………………………………………………….…………………………………………………………… … N° d’ordre : …. Série : …. Mémoire Présenté en vue de l’obtention du Diplôme de Master en Electrotechnique Option Electrotechnique Thème DECODEUR DE VITESSE A L’AIDE D’ARDUINO Présenté par: BOUCHOUKH FAYSSAL Encadreur: DR. MEHAZZEM FATEH Promotion 2013/2014 MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE CONSTANTINE I FACULTE DES SCIENCES DE LA TECHNOLOGIE DEPARTEMENT : ELECTROTECHNIQUE وزارة اﻟﺗﻌﻠﯾ ــ م اﻟﻌﺎﻟ ــ ﻲ و اﻟﺑﺣ ــ ث اﻟﻌﻠﻣ ـ ﻲ ﺟﺎﻣﻌ ـــــــ ﺔ ﻗﺳﻧطﯾﻧ ـــــــــ ﺔ1 ﻛﻠـﯾــﺔ ﻋﻠوم اﻟﺗﻛﻧوﻟوﺟﯾ ﺎ: اﻟﻛﺗروﺗﻘﻧ ﻲ
38
Embed
D V AL’AIDE - lec-umc.org · PDF fileMémoire Présenté en vue de l’obtention du Diplôme de Master en Electrotechnique Option Electrotechnique Thème.....
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
الجمـھوریــة الجزائریــة الدیمقراطیــة الشعبیــةREPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
II.2. Le codeur incrémental ……………….…………………………………………………...14
II.2.1. Principe du codeur incrémental ………………….……………………….……….……15
II.2.2. Caractéristique principales d'un codeur incrémental ……………….….…....................16
iii
II.2.3 Raccordement d’un codeur incrémental …………………………..…………..…..…….16
II.2.3.1. A une moteur électrique ………….……………………………...……………….16
II.2.3.2. A une carte arduino ..……………………………………………………...…..….17
II.2.4. Calcul de la fréquence de sortie (f) des impulsions du codeur …………......………….17
II.2.5. Les principaux avantages et inconvénients de codeur incrémental …………...……….18
II.2.5.1. Les avantages …………………………..…………………………………………18
II.2.5.2. Les Inconvénients ………….………………………………………………..……18
II.2.6. Principaux types d’unités de traitement utilisées dans l’industrie et le codeur qui leursont généralement associés ……………………………………………………………....….19
II.3. Carte Dspace 1104 ………………………………………………………….…………....19
Figure III.2 : Circuit de communication ………………………………………………......….….23
Figure III.3 : interface de ControlDesk……………………………………………………….......24
Figure III.4 : Control Panel……………………………………………………………………….25
Figure III.5 : model en MATLAB………………………………………………………..……….25
Figure III.6 : Signal A et B d’un codeur…………………………………………………….……26
Figure III.7 : Signal A…………………………..…………………………………………..….…26
Figure III.8 : Algorithme de fonctionnement ……………………………………………..……. 27
Figure III.9 : la vitesse de rotation (dSPACE)……………………………..………………..……27
Figure III.10 : la vitesse de rotation (Arduino)…………………………… …………………..…28
Figure III.11 : Comparaison entre les deux vitesses…………………………………..…….....…28
Tableau II.7 : Différentes unités de traitement utilisées…………………………………...…..…19
1
INTRODUCTION GENERALE
Le système Arduino est une plateforme open-source d'électronique programmée qui est
basée sur une simple carte à microcontrôleur (de la famille AVR), et un logiciel, véritable
environnement de développement intégré, pour écrire, compiler et transférer le programme
vers la carte à microcontrôleur.
Arduino peut être utilisé pour développer des objets interactifs, pouvant recevoir des
entrées d'une grande variété d'interrupteurs ou de capteurs, et pouvant contrôler une grande
variété de lumières, moteurs ou toutes autres sorties matérielles. Les projets Arduino peuvent
être autonomes, ou bien ils peuvent communiquer avec des logiciels tournant sur votre
ordinateur.
Les applications dans le domaine d’entrainements des machines électriques à vitesse
variable dépendent principalement de la vitesse de rotation. Cette dernière est mesurée grâce à
un capteur de vitesse, qui ne nous permet pas souvent d’avoir de bons résultats avec précision.
Cela est du principalement aux unités de traitement (dans ce travail, nous allons parler de la
carte Dspace) utilisées dans le domaine industriel ou dans la recherche scientifique liée à la
mesure de la vitesse. Afin d’améliorer la qualité de cette mesure, nous proposons dans le cadre
de ce projet l’utilisation de la carte Arduino, afin de faire un prétraitement avant l’exploitation
directe de la mesure issue du capteur de vitesse dans des applications d’entrainements
électriques.
Ce travail est structuré comme suit :
Le premier chapitre, présente des généralités sur la carte Arduino, ainsi qu’une description
détaillée de son fonctionnement.
Le deuxième chapitre, présente le principe du codeur incrémental et son utilisation dans
notre projet.
2
Le troisième chapitre, est consacré à la présentation de la réalisation. Dans un premier
temps, nous allons utiliser la carte dspace pour traité les signaux délivrés par le codeur
incrémental. Dans un second temps nous allons traiter les mêmes signaux au moyen d’un
circuit de communication via la carte Arduino.
Enfin, nous terminons ce mémoire par une conclusion générale.
Chapitre I
Présentation d’unecarte Arduino
Chapitre I Présentation d’une carte Arduino
4
I.1. Introduction
Le système Arduino est une solution simple et abordable pour développer des montages
électroniques numériques programmables à base de microcontrôleurs.
C’est une plateforme open-source qui est basée sur une simple carte à microcontrôleur (de la
famille AVR), et un logiciel, véritable environnement de développement intégré, pour écrire,
compiler et transférer le programme vers la carte à microcontrôleur.
Arduino peut être utilisé pour développer des applications matérielles industrielles légères ou
des objets interactifs (création artistiques par exemple). Les cartes Arduino peuvent recevoir sur
les broches d’entrées une très grande variété de capteurs et contrôler sur les broches de sortie une
grande variété d’actionneurs (lumières, moteurs ou toutes autres sorties matériels).
Les projets Arduino peuvent être autonomes, ou communiquer avec des logiciels sur un
ordinateur.
Les cartes électroniques peuvent être fabriquées manuellement ou bien être achetées pré
assemblées ; le logiciel de développement open-source est téléchargeable gratuitement [1].
I.2. L’arduino UNO
Figure I.1 : Résumé des caractéristiques
de la carte Arduino Uno
Microcontrôleur ATmega328
Tension d'alimentation interne 5V
Tension d'alimentation externe 7 à 12V
Entrées/sorties numériques 14 dont 6 sorties PWM
Entrées analogiques 6
Courant max par broches E/S 40 mA
Courant max sur sortie 3,3V 50mA
Mémoire Flash 32 Ko
Mémoire SRAM 2 Ko
mémoire EEPROM 1 Ko
Fréquence horloge 16 MHz
Chapitre I Présentation d’une carte Arduino
5
I.2.1. Dimensions et organisation
Dimensions = 68.6mm x 53.3mm
La carte s'interface au PC par l'intermédiaire de sa prise USB.
La carte s'alimente par le jack d'alimentation (utilisation autonome) mais peut être
alimentée par l'USB (en phase de développement par exemple).
Figure I.2 : Interface de carte Arduino Uno.
I.2.2. Alimentation
La carte Arduino UNO peut être alimentée par l’USB ou par une alimentation externe. La
source est sélectionnée automatiquement.
La tension d’alimentation extérieure (hors USB) peut venir soit d’un adaptateur AC-DC ou de
piles. L’adaptateur peut être connecté grâce à un ‘jack’ de 2.1mm positif au centre.
Le raccordement vers un bloc de piles peut utiliser les bornes GND et VIN du connecteur
d’alimentation (POWER). La carte peut fonctionner à l’aide d’une tension extérieure de 7 à 12
volts. Les broches (pins) d’alimentation sont les suivantes :
VIN : La tension d’entrée positive lorsque la carte Arduino est utilisée avec une source de
tension externe (à distinguer du 5V de la connexion USB ou autre source 5V régulée).
Vous pouvez alimenter la carte à l’aide de cette broche, ou, si l’alimentation est fournie
par le jack d’alimentation, accéder à la tension d’alimentation sur cette broche [3].
Connecteur USB
Jack d’alimentation externe
Entrées/Sorties digitales 0-13
Bouton Reset
Entrées/Sorties digitales 14 -19
Entrées analogiques 0-5
Broches d’alimentations
5v et 3.3v GND
Microcontrôleur ATmega328
Chapitre I Présentation d’une carte Arduino
6
5V : La tension régulée utilisée pour faire fonctionner le microcontrôleur et les autres
composants de la carte (pour info : les circuits électroniques numériques nécessitent une
tension d’alimentation parfaitement stable dite « tension régulée » obtenue à l’aide d’un
composant appelé un régulateur et qui est intégré à la carte Arduino). Le 5V régulé
fourni par cette broche peut donc provenir soit de la tension d’alimentation VIN via le
régulateur de la carte, ou bien de la connexion USB (qui fournit du 5V régulé) ou de tout
autre source d’alimentation régulée [3].
3. 3V : Une alimentation de 3.3V fournie par un régulateur 3.3v LP2985 est disponible
sur la carte. Ceci est intéressant pour certains circuits externes nécessitant cette tension
au lieu du 5V. L’intensité maximale disponible sur cette broche est de 50mA
GND : Broche de masse (ou 0V).
I.2.3. Mémoire
L'ATmega 328 dispose de 32 kilo-octets de mémoire de programme. Cette mémoire est de
type Flash, analogue à celle que l'on trouve par exemple dans les clés USB.
L'ATmega 328 contient aussi de la mémoire vive ou RAM, analogue dans son principe à la
mémoire vive de vos PC, mais en beaucoup plus petite quantité puisque l'on ne dispose ici que
de 2 kilo-octets (contre plusieurs Giga octets dans un PC par exemple). Cette mémoire est
généralement utilisée pour les variables employées dans les programmes, pour stocker des
résultats temporaires lors de calculs, etc. Elle présente la particularité de pouvoir être lue et écrite
à tout instant par le microcontrôleur mais elle « oublie » son contenu dès qu'il n'est plus alimenté.
L’ATmega 328 dispose également de mémoire EEPROM, acronyme qui signifie mémoire
programmable et effaçable électriquement. La taille de cette EEPROM est seulement de 1 kilo-
octet. Cette mémoire EEPROM est une mémoire dans laquelle le microcontrôleur peut lire à
tout instant. Il peut aussi y écrire et effacer son contenu, avec plus de facilité comme dans la
mémoire Flash de programme, mais avec moins de facilité que dans la mémoire vive. En
contrepartie, et comme c'est le cas pour la mémoire flash de programme, le contenu de
l'EEPROM est conservé même lorsqu'elle n'est plus alimentée. C'est donc une mémoire qui sera
utilisée pour conserver des données ou des paramètres que l'on doit pouvoir retrouver d'une
utilisation à l'autre de l'Arduino [2].
Chapitre I Présentation d’une carte Arduino
7
I.2.3.1. Horloge
L’horloge est pilotée par quartz et fonctionne à la fréquence de 16 MHz.
Ainsi par exemple, la fonction delay(xxx), qui génère un délai de xxx ms, sait que l'horloge
fonctionne à 16 MHz et fait donc automatiquement appel aux instructions nécessaires pour
générer le délai que vous avez réellement demandé dans votre programme.
I.2.3.2. Entrées et sorties
Chacune des 14 broches numériques de la carte Uno peut être utilisée en entrée (input) ou
en sortie (output), en utilisant les fonctions pinMode(), digitalWrite(), et digitalRead().
Elles fonctionnent en logique TTL (0V-5V) ; chacune pouvant fournir (source) ou recevoir un
courant maximal de 40 mA et dispose si besoin est d’une résistance interne de ‘pull-up’.
En outre, certaines broches ont des fonctions spécialisées [3] :
Serial : broche 0 (RX) et broche1 (TX). Permet de recevoir (RX) et de transmettre (TX)
des données séries TTL. Ces broches sont raccordées à leurs homologues sur le chip
Atmega16U2 spécialisé dans la conversion USB-to-TTL série.
Interruptions externes 2 et 3 : Ces broches peuvent être configurées pour déclencher
une interruption sur une valeur LOW, sur un front montant ou descendant, ou encore sur
le changement de valeur. (voir la fonction attachInterrupt() pour des détails).
PWM : 3, 5, 6, 9, 10, and 11 : Output 8-bit de PWM avec la fonction analogWrite().
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ces broches fournissent le support de
communication SPI en utilisant la ‘librairie’ spécialisée.
LED : Il y a une LED repérée L connectée à la broche digitale 13.
La carte Uno à 6 broches d’entrée analogiques, A0 à A5, chacune avec 10 bits de résolution
(1024 valeurs différentes).
Par défaut les mesures sont effectuées de la masse à 5V (valeur de référence), mais il est possible
de spécifier la valeur de référence en utilisant la broche VREF et la fonction analogReference().
En outre, certaines broches ont des fonctions spécialisées :
I2C : 4 (SDA) and 5 (SCL). Permettent le support du bus I2C (TWI) en utilisant le
‘library’ Wire.
Chapitre I Présentation d’une carte Arduino
8
Autres broches sur la carte :
AREF : Tension de référence déjà mentionnée.
Reset : Permet au niveau bas (LOW de faire un reset du contrôleur. Elle est utilisée
typiquement pour monter un bouton ‘reset’ aux cartes additionnelles (‘shields’) bloquant
celui de la carte principale.
I.2.4. Communication
La carte Arduino Uno a de nombreuses possibilités de communications avec l’extérieure.
L’Atmega328 possède une communication série UART TTL (5V), grâce aux broches
numériques 0 (RX) et 1 (TX).
Figure I.3: Communication vers l’ordinateur.
Un contrôleur Atmega16U2 sur la carte, gère cette communication série vers l’USB et
apparaît comme un port de communication virtuel pour le logiciel sur l’ordinateur.
Le firmware de l’16U2 utilise le protocole USB, et aucun driver externe n’est nécessaire.
Windows a cependant besoin d’un fichier .inf, à l’installation. Le logiciel Arduino possède un
logiciel série (Telnet) intégré permettant l’envoi et la réception de texte. Les DELs RX et TX sur
la carte clignoteront pour indiquer la transmission de données vers l’ordinateur.
Une librairie ‘SoftwareSerial’ permet la transmission de données série à partie de chacune des
broches numériques du Uno.
L’Atmega328 supporte le bus I2C (TWI) et le protocole de communication synchrone maître-
esclave SPI. Le logiciel Arduino inclut un ensemble de fonctions pour mettre en œuvre l’un ou
l’autre.
Chapitre I Présentation d’une carte Arduino
9
I.2.5. Programmation
La carte Arduino Uno peut être programmée directement avec « l’Arduino software ».
L’Atmega328 sur la carte Uno est pré programmé avec un ‘bootloader’ qui permet de charger le
code d’une nouvelle application sans utiliser un programmateur hardware externe.
Il communique avec un ordinateur en utilisant le protocole STK500 d’ATMEL.
Mais vous pouvez programmer le contrôleur de la carte en utilisant le port ICSP (In-Circuit
Serial Programming).
Le code source du firmware du contrôleur auxiliaire Atmega16U2 est disponible.
I.2.5.1. Reset automatique
Toutes les cartes Arduino actuelles sont équipées d'un poussoir de reset manuel. Un
appui sur celui-ci permet donc de relancer l'exécution d'un programme si nécessaire, soit parce
qu'il s'est « planté » soit tout simplement parce que l'on souhaite le faire repartir de son début.
Mais il existe aussi sur les cartes Arduino une autre source de reset.
Un reset automatique à la mise sous tension qui permet ainsi au programme contenu en
mémoire du microcontrôleur de démarrer automatiquement dès que la carte Arduino est
alimentée.
I.2.5.2 Protection de surintensité USB
La carte Arduino Uno possède une protection par fusible pour le port USB si un courant
de plus de 500mA est demandé. La déconnexion durera tant que la source de consommation
excessive n’aura pas cessé.
I.3. Présentation de l’Espace de développement Intégré (EDI) ArduinoLe logiciel Arduino a pour fonctions principales :
de pouvoir écrire et compiler des programmes pour la carte Arduino
de se connecter avec la carte Arduino pour y transférer les programmes
de communiquer avec la carte Arduino
Cet espace de développement intégré (EDI) dédié au langage Arduino et à la programmation des
cartes Arduino comporte :
Chapitre I Présentation d’une carte Arduino
10
Une BARRE DE MENUS comme pour tout logiciel une interface graphique (GUI),
Une BARRE DE BOUTONS qui donne un accès direct aux fonctions essentielles du
logiciel et fait toute sa simplicité d'utilisation,
Un EDITEUR (à coloration syntaxique) pour écrire le code de vos programmes, avec
onglets de navigation,
Une ZONE DE MESSAGES qui affiche indique l'état des actions en cours,
Une CONSOLE TEXTE qui affiche les messages concernant le résultat de la
compilation du programme
Le logiciel Arduino intègre également :
Figure I.4: espace de développement intégré.
Barre de menus
Barre de boutons
Onglets des fichiersouverts
Fenêtre d’édition desprogrammes
Zone de messagesdes actions en cours
Console d’affichage desmessages de compilation
Chapitre I Présentation d’une carte Arduino
11
Un TERMINAL SERIE (fenêtre séparée) qui permet d'afficher des messages textes
reçus de la carte Arduino et d'envoyer des caractères vers la carte Arduino.
Cette fonctionnalité permet une mise au point facilitée des programmes, permettant
d'afficher sur l'ordinateur l'état de variables, de résultats de calculs ou de conversions
analogique-numérique : un élément essentiel pour améliorer, tester et corriger ses
programmes.
I.3.1. Description de la barre des boutons
Vérifier/compiler : Vérifie le code à la recherche d'erreur.
Transférer vers la carte : Compile votre code et le transfère vers la carte Arduino.
Nouveau : Crée un nouveau code (ouvre une fenêtre d'édition vide)
Ouvrir : Ouvre la liste de tous les programmes dans votre "livre de programmes". Cliquer
sur l'un des programmes l'ouvre dans la fenêtre courante.
Enregistrer : Enregistre votre programme.
Moniteur Série : Ouvre la fenêtre du moniteur (ou terminal) série.
I.3.2. Description de la structure d’un programme
Le langage Arduino est basé sur les langages C/C++.
Un programme utilisateur Arduino est une suite d’instructions élémentaires sous forme
textuelle, ligne par ligne. La carte lit puis effectue les instructions les unes après les autres, dans
l’ordre défini par les lignes de code, comme lors d’une programmation classique. Cette structure
se décompose en trois parties :
Chapitre I Présentation d’une carte Arduino
12
La structure d’un programme Arduino
Doit toujours comporter les fonctions
Setup( ) et loop ( )
Figure I.5: la structure d’un programme.
I.4. Conclusion
Arduino est un kit de développement et de prototypage très adapté pour une large gamme
d’applications dans le domaine de l'électrotechnique. Cela revient à sa facilité d'utilisation, sa
grande capacité à traiter l'information, et son faible cout.
Fonction principale : VOID SETUP()Initialisation des ressources de la carteConfiguration des entrées/sortiesDéfinition de la vitesse de fonctionnementdu port série, etc.
Cette partie ne sera exécutée qu’une seule fois
Définition des constantes et variables globales
Directive de compilation ; Define, Include, etc
Fonction boucle : VOID LOOP()Description du fonctionnement généraldu programmeGestion des interactions entre les entrées/sortiesCette partie sera exécutée en boucle
Chapitre IICapteur de Vitesse
Chapitre II Capteur de Vitesse
14
II.1. Introduction
Dans le domaine industriel, le positionnement est une information absolument nécessaire.
Il ne suffit pas de connaître une position définie par un endroit prédéterminé mais plutôt la
position du mobile au moment où cela est nécessaire.
Le codeur rotatif est le capteur qui permet d’obtenir une position angulaire dans les machines
électriques. Il offre également la possibilité du réglage de la vitesse.
Le capteur ou codeur optique rotatif, introduit dans les années 1970, est aujourd’hui très répandu
et remplace souvent les génératrices tachymétriques, les résolveurs et les capteurs résistifs.
Le codeur optique, le plus répandu, est lié mécaniquement à un arbre qui l’entraîne. Il est
constitué d’un système mécanique qui comporte un disque en verre portant des gravures opaques
dont l’écartement est fonction du pas angulaire que l’on veut obtenir. Le faisceau lumineux,
traversant le disque, est la plupart du temps généré par une diode électroluminescente et le
faisceau modulé est capté par une photodiode ou un phototransistor.
Le signal électrique recueilli, en signal carré plus facile à traiter.
Il existe deux types de capteurs rotatifs : le codeur incrémental et le codeur absolu.
II.2 Le codeur incrémental
Le codeur incrémental est un générateur d’impulsions, il est destiné au contrôle de
déplacement. Il est généralement constitué de trois pistes : deux pistes externes divisées en
intervalles d’angles égaux de telle sorte que les signaux carrés obtenus soient déphasés de 90°,
ce qui informe sur le sens de rotation du codeur. La troisième piste ne comporte qu’une seule
fenêtre transparente dont la durée électrique est de 90°. Ce signal permet de définir un zéro de
comptage et une position de référence. La résolution dépend du comptage des fronts.
Elle est multipliée par deux en comptant les fronts montants et descendants d’une piste et par
quatre en comptant tous les fronts des deux pistes.
Le codeur incrémental présente des limites, il est sensible aux coupures de l’alimentation, il en
suffit d’une pour que le codeur perde sa position réelle. Il est alors nécessaire de le réinitialiser.
Il est sensible aux parasites qui peuvent être comptabilisés comme des impulsions lorsque les
signaux complémentaires ne sont pas pris en compte.
Une erreur de positionnement peut survenir lorsque la fréquence de comptage est élevée.
Enfin, si le codeur ne fonctionne que pour une fraction de tour, cas de mouvements oscillants, le
recalage par le top zéro n’est pas possible [4] [5] [6].
Chapitre II Capteur de Vitesse
15
Figure II.1: Description d’un codeur Figure II.2: Codeur incrémental GI355
II.2.1. Principe du codeur incrémental
Le disque rotatif comporte au maximum trois pistes.
Une ou deux pistes extérieures divisées en n intervalles d'angles égaux, alternativement
opaques et transparents.
Pour un tour complet de l'axe du codeur, le faisceau lumineux est interrompu n fois et
délivre n signaux carrés (A et B) en quadrature.
Figure II.3: Le disque rotatif Figure II.4: Diagrammes de sorties
Chapitre II Capteur de Vitesse
16
Le déphasage (90° électrique) des signaux (A er B) permet de déterminer le sens de
rotation :
- Dans un sens, pendant le front montant du signal A, le signal B est au niveau logique zéro.
- Dans l'autre sens, pendant le front montant du signal A, le signal B est au niveau logique 1.
Le front montant de la voie verte se présente Le front montant de la voie rouge se présente
avant celui de la voie rouge. avant celui de la voie verte.
La piste extérieure (Z : top zéro) comporte une seule fenêtre transparente et délivre un
seul signal par tour.
Le signal Z (d'une longueur de T/4 électrique) détermine une position de référence qui
permet la réinitialisation à chaque tour.
Le comptage-décomptage des impulsions par l'unité de traitement permet de définir
la position du mobile.
II.2.2. Caractéristiques principales d'un codeur incrémental
Nombre de points par tour ou nombre d'impulsions par tour.
nombre de voies ou nombre de pistes (exemple: 6 pistes A, B, Z, A inv, B inv, Z inv).
tension d'alimentation.
vitesse maximale de rotation.
II.2.3. Raccordement d’un codeur incrémentalII.2.3.1 à un moteur électrique
L’axe du codeur est lié mécaniquement à l’arbre de la machine qui l’entraine.
Cet axe fait tourner un disque qui lui est solidaire.
Chapitre II Capteur de Vitesse
17
Figure II.5: Raccordement moteur/codeur
II.2.3.2. à une carte arduino
Le raccordement des sorties du codeur aux entrées de la carte arduino.
Voie A on peut connaître les caractéristiques de déplacement d’un mobile et voie B
permettent de déterminer le sens de rotation.
Figure II.6: Raccordement codeur/arduino
II.2.4. Calcul de la fréquence de sortie (f) des impulsions du codeur
Pour un codeur incrémental, il est indispensable de calculer la fréquence maximale
d'utilisation afin de s'assurer des compatibilités des caractéristiques électriques avec les entrées
du système de traitement.
Le codeur incrémental fournit deux types de signaux. Les signaux d’incrémentation (A, A inv,
B, B inv) et d’initialisation (Z, Z inv) peuvent être exploités.
MACHINEASYNCHRONE
Phototransistor
Traitement del’information
Codeur
Signal
Codeur Compteurd’impulsion
Voie ACalcule des
Caractéristiquedu déplacement
Base detemps
Sens de RotationVitesseFréquence
Carte arduino
Voie B
Diodeélectroluminesce
nte
Disque gradué
Accouplement
Chapitre II Capteur de Vitesse
18
Signal d’incrémentation (A) :
Ce signal carré est généralement de fréquence élevée. La formule de calcul de la fréquence
(f en Hz) est :
avec : N= vitesse d’utilisation de l’axe entraînant (en tr/mn).
et R = résolution souhaitée en période par tour (p/tr).
Pour le codeur incrémental GI355 et le moteur asynchrone utilisé dans ce projet :
N=1500 tr/mn
R=1024 p/tr
Donc la fréquence : f = 25600 Hz.
II.2.5 Les principaux avantages et inconvénients de codeur incrémental
II.2.5.1. Les avantages :
Le codeur incrémental est de conception simple (son disque ne comporte que deux
pistes) donc plus fiable et moins onéreux.
Économique
II.2.5.2. Les Inconvénients:
II est sensible aux coupures du réseau : chaque coupure du courant peut faire perdre
la position réelle du mobile à l'unité de traitement. Il faudra alors procéder à la
réinitialisation du système automatisé.
Il est sensible aux parasites en ligne, un parasite peut être comptabilisé par le
système de traitement comme une impulsion délivrée par le codeur.
Les fréquences des signaux A et B étant généralement élevées, il faudra vérifier que
le système de traitement est assez rapide pour prendre en compte tous les
incréments (impulsions) délivrés par le codeur. Le non comptage d’une impulsion
induit une erreur de position qui ne peut être corrigée que par la lecture du « top
zéro» [7] [9].
Chapitre II Capteur de Vitesse
19
II.2.6. Principaux types d’unités de traitement utilisées dans l’industrie et lecodeur qui leur sont généralement associés [8]
Unités de traitementCodeur incrémental
Fréquence du signal (kHz)
< 200 Hz < 40 kHz > 40 kHz
Automatesprogrammables
Entrées TOR
Cartes de comptagerapide ou cartes
d’axes
Commandes numériques
Micro-ordinateurs Entrées parallèles
Cartes spécifiques (la carte arduino)
Tableau. II.7 : Différentes unités de traitement utilisées
II.3. Carte Dspace 1104
La carte DS1104 joue un rôle principal dans l’étude pour contrôler les machines électriques,pour cela, nous allons donner quelques caractéristiques.
II.3.1. Présentation
La carte DSPACE assure les aspects logiciels et numériques de la commande, depuis
l'acquisition numérique des signaux d'entrées jusqu'aux signaux (MLI/PWM) de commandes des
bras de pont (signaux de sorties).
La carte DS1104 contenant les éléments suivants [10]:
Deux processeurs (Maitre, Esclave).
Contrôleurs d’interruption.
Des mémoires.
Des temporisateurs.
Des interfaces.
Chapitre II Capteur de Vitesse
20
II.3.2. Processeur Maitre PPC
L’unité principale de traitement, Motorola MPC8240, se compose :
Un noyau Power PC 603 (Horloge interne à 250 MHZ).
Un contrôleur d’interruption.
Contrôleur synchrone de la mémoire DRAM.
Plusieurs temporisateurs.
Une interface PCI.
Le maitre PPC contrôle les unités entrées/sorties suivantes :
Unité de ADC (Analog Digital Converter) : comportant (8) convertisseurs analogique /