Vous êtes sur la page 1sur 13

Ralisation dune olienne

Laboratoire #6A
Microcontrleur

Capteur et interruptions

TCH098 Rapport de laboratoire


Nom

Groupe

quipe

Note

Service des enseignements gnraux Cheminement Universitaire en technologie Hiver 2009

Laboratoire conu par Hugues Langlois et David Marche

Version janvier 2009

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction TABLE DES MATIRES

1. 2. 3. 4. 5. 6. 7.

NONC DE LA COMPTENCE .............................................................................................................3 CRITRES DE PERFORMANCE .............................................................................................................3 MATRIEL REQUIS ....................................................................................................................................3 DOCUMENTS DE RFRENCE GALEMENT DISPONIBLES ..................................................3 DURE ..............................................................................................................................................................3 INTRODUCTION ..........................................................................................................................................4 CAPTEUR EFFET HALL .........................................................................................................................5 7.1 7.2 7.3 THORIE ..........................................................................................................................................................5 CARACTRISTIQUES LECTRIQUES DU CAPTEUR ..........................................................................................5 MESURE DE CHAMP MAGNTIQUE PAR MICROCONTRLEUR ........................................................................6

8.

LES INTERRUPTIONS ..............................................................................................................................7 8.1 INTERRUPTIONS EXTERNES............................................................................................................................7 8.1.1 Programme simple dinterruptions externes.........................................................................8 8.1.2 Compte tours ....................................................................................................................................9 8.1.3 Tachymtre (mesure de vitesse de rotation) .......................................................................9 8.2 INTERRUPTIONS INTERNES .......................................................................................................................... 11 8.2.1 Compteur du microcontrleur .................................................................................................. 11 8.2.2 Tachymtre prcis ........................................................................................................................ 12

9. 10. 11. 12.

VALUATION ET CHANCIER ......................................................................................................... 13 GRILLE DVALUATION ........................................................................................................................ 13 SUGGESTIONS, REMARQUES, COMMENTAIRES DES TUDIANTS ............................... 13 ANNEXE : RFRENCE DE PROGRAMMATION ................... ERREUR ! SIGNET NON DEFINI. TABLEAU RCAPITULATIF.......................................................................... ERREUR ! SIGNET NON DEFINI. EXEMPLES ET ASTUCES ............................................................................ ERREUR ! SIGNET NON DEFINI.

12.1 12.2

D. Marche, H. Langlois

Page 2 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

1.

nonc de la comptence Utiliser un microcontrleur pour raliser des mesures et contrles en temps rel.

2.

Critres de performance Programmation dun microcontrleur Utilisation des mesures dun capteur externe Implmentation dun systme de contrle dun circuit externe Programmation avec interruptions

3.

Matriel requis Module de dveloppement STK-500 Oscilloscope Gnrateur de fonction Capteur effet Hall Outils de connexion Wire Wrap Fil lectrique Le document de laboratoire, i.e. ce document-ci

4.

Documents de rfrence galement disponibles Le document STK user guide Le document atmega32

5.

Dure

Vous avez cinq heures pour effectuer ce laboratoire.

D. Marche, H. Langlois

Page 3 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

6.

Introduction

Dans la majorit des applications mobiles ou portables, il est ncessaire davoir un systme embarqu compact responsable du contrle de lapplication. Ce systme embarqu est trs souvent un microcontrleur dont le programme est ddi lapplication, et auquel ont ts ajouts des priphriques dentre/sortie tels que des capteurs, un clavier et un cran LCD. Le compteur de vitesse de bicyclette est un exemple classique de systme embarqu capable de : 1. Mesurer la vitesse de rotation dune roue grce un capteur. 2. Raliser des calculs de vitesse, distance parcourue, etc. 3. Rpondre aux commandes dun clavier 4. Afficher des donnes et rsultats sur un cran. Lolienne est un bon exemple dapplication qui peut profiter dun microcontrleur pour la prise de mesures (ex : tension, courant, vitesse de rotation), le calcul (ex : puissance) et la rgulation du gnrateur (ex : courant de rotor). Au cours de ce laboratoire, vous programmerez un microcontrleur pour quil ralise les tches suivantes : 1. Mesure de vitesse de rotation laide dun capteur effet Hall 2. Mesure de tension de sortie de lalternateur avec le convertisseur numrique-analogique 3. Contrle du courant de rotor pour stabiliser la tension de sortie de lalternateur

D. Marche, H. Langlois

Page 4 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500STK500 Introduction

7.

Capteur effet Hall

7.1 Thorie En 1879, Edwin Hall fit la dcouvert dcouverte suivante : quand une plaque conductrice portant un courant (I) est place dans un champ magntique (B), le courant est dvi et une diffrence de potentiel (VH) apparait sur la plaque. Il est donc possible de surveiller le niveau de tension (VH) pour dtecter la variation de densit de champ magntique ou de courant. Ce principe est la base de nombreux senseurs modernes s appels capteurs effet Hall. En ralit la tension produite par effet Hall est en gnral trs faible. Pour cette raison, la puce d dun capteur effet Hall intgre souvent, en plus du semi-conducteur qui joue le rle de la plaque conductrice, un circuit damplification qui permet dobtenir une plage de tension directement utilisable par un microcontrleur. Les capteurs que nous utiliserons possdent trois bornes de connexions : 1. Lalimentation positive de 5V (A+) 2. La masse (A-) 3. Le signal de sortie (S) 7.2 Caractristiques lectrique lectriques du capteur Dterminez la plage de tension de sortie du capteur : 1. laide de loutil de connexion Wire Wrap et du fil fourni, branchez lalimentation du capteur (A+ et A-) ) aux bornes dalimentation ( (VTG et GND) ) du port A. 2. Avec loscilloscope, vrifi vrifiez les tensions dalimentation de A+ et A-. 3. laide dun aimant, vrifiez la tension de la sortie S selon la densit de champ magntique (B) et le ple prsent (Nord/Sud).
Mes. A+ (V) Mes. AB nul (V) (V) (V) Mes. Mes. S B max. un ple B max. lautre ple (V) Mes.

Effet Hall

Capteur effet Hall

D. Marche, H. Langlois

Page 5 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

7.3 Mesure de champ magntique par microcontrleur Avec le convertisseur numrique analogique (CNA) du microcontrleur, il est possible de convertir la tension de sortie du capteur en valeur numrique : 1. Vrifiez que les bornes dalimentation du capteur sont toujours connectes aux bornes GND et VTG du port A. 4. laide de loutil de connexion Wire Wrap branchez la sortie du capteur (S) au CNA du microcontrleur: la broche A0 du port A. 2. Programmez le microcontrleur pour que le CNA convertisse la tension de la broche A0 en valeur numrique et affiche cette valeur sur les DEL. Note : vous pouvez partir du projet de dpart du dossier Hall. 3. laide dun aimant, vrifiez les valeurs binaires obtenues selon la densit de champ magntique (B) et le ple prsent (Nord/Sud).
Mes. Mes. Mes.

Valeur binaire affiche sur les DEL B nul B max. un ple B max. lautre ple

4. Utilisez la fonction de conversion binaire thermomtre fournie pour afficher la densit de champ magntique la faon dun thermomtre. Faites vrifier le fonctionnement. Note : la fonction de conversion se trouve dans projet du dossier Hall. 5. crivez le programme principal de votre solution (fonction main)

D. Marche, H. Langlois

Page 6 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

8.

Les interruptions

Les interruptions sont des fonctions avances qui permettent dinterrompre momentanment le cours normal du programme pour excuter certaines instructions quand des vnements particuliers sont dtects. Ces derniers peuvent tre internes ou externes au microcontrleur. Le changement de tension sur un port est un exemple dinterruption externe au microcontrleur qui peut tre utilis pour interrompre le programme. Les microcontrleurs possdent des compteurs qui sont souvent utiliss comme des chronomtres pour dclencher des interruptions internes intervalles rguliers. 8.1 Interruptions externes Les broches INT0 et INT1 de lATMEGA32 peuvent tre utilises pour dtecter les changements de niveau de tension. Ces broches correspondent aux bits 2 et 3 du port D (PD2 et PD3). Pour lier une fonction dinterruption externe une de ces broches, il faut configurer certains registres du microcontrleur :
7 6
INT0

5
INT2

1. GICR

INT1

Les bits 5, 6 et 7 du registre GICR (General Interupt Control Register) permettent dactiver les interruptions causes par les broches INT2, INT0 et INT1.
7 6 5 4 3
ISC11

2
ISC10

1
ISC01

0
ISC00

2. MCUCR

Les bits 0 3 du registre MCUCR (MCU Control Register) permettent de dfinir les types de signaux qui doivent dclencher les interruptions INT0 et INT1. Par exemple, pour linterruption INT0 :
ISC01 ISC00

Description

0 0 1 1
7 6
INTF0

0 1 0 1
5
INTF2

Interruption sur niveau bas Interruption sur front montant et descendant Interruption sur front descendant Interruption sur front montant

3. GIFR

INTF1

Les bits 5, 6 et 7 du registre GIFR (General Interupt Flag Register) passent 1 lorsque des interruptions sont dclenches.

D. Marche, H. Langlois

Page 7 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

8.1.1 Programme simple dinterruptions externes Le programme suivant permet dutiliser la broche INT0 (PD2) du microcontrleur pour contrler le clignotement des DEL.
// Exemple dutilisation des interruptions // PORTD front montant sur PD2, PORTB pour les 8 DEL #include <avr/io.h> #include <avr/interrupt.h> #include "global.h" // Fonction excute lors de chaque interruption dclenche par INT0. SIGNAL (SIG_INTERRUPT0) { PORTB=~PORTB; //inverser la valeur du port B } // Programme principal int main (void) { // Configuration du port B pour le contrle des DEL DDRB = 0xFF; // Configurer le port B en sortie PORTB= 0xFF; // initialiser le port B (DEL teintes) // Configuration de l'interruption MCUCR= 0x03; // utiliser le front montant comme vnement GICR|= 0x40; // activer l'interruption int0 sei(); // activation des interruptions while(1); }
1. Utilisez le gnrateur de fonction pour appliquer une onde carre (0V-5V) sur la broche PD2 su microcontrleur : utilisez la sortie TTL/CMOS. 2. Chargez le programme ci-dessus dans le microcontrleur. 3. Vrifiez que vous obtenez bien un clignotant dont la frquence est dfinie par le signal du gnrateur de fonction. (Faites vrifiez le fonctionnement) 4. Modifiez votre circuit pour que le clignotant soit contrl par le passage de laimant devant le capteur effet Hall. (Faites vrifier le fonctionnement)

// boucle principale (infinie)

D. Marche, H. Langlois

Page 8 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

8.1.2 Compte tours 1. Modifiez la fonction dinterruption du programme prcdent pour raliser un compte tours qui incrmente la valeur binaire affiche par les DEL chaque passage dun aimant devant le capteur effet Hall.
// Fonction excute lors de chaque interruption dclenche par INT0. SIGNAL (SIG_INTERRUPT0) {

2. Testez votre programme et faites vrifiez le fonctionnement de votre compte tours.

8.1.3 Tachymtre (mesure de vitesse de rotation) Lalgorithme suivant permet de raliser un tachymtre en combinant la fonction de dlai et les interruptions du capteur effet Hall : INTERRUPTION DU CAPTEUR : INCRMENTER LE COMPTEUR DE NOMBRE DE TOURS. PROGRAMME PRINCIPAL : RPTER POUR TOUJOURS : REMETTRE 0 LE COMPTEUR DE NOMBRE DE TOURS. ATTENDRE 1 SECONDE. AFFICHER LA VALEUR DU COMPTEUR DE NOMBRE DE TOURS.

D. Marche, H. Langlois

Page 9 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

1. En vous inspirant de cet algorithme, crivez (ou imprimez) le programme de tachymtre affichant le nombre de tours par seconde sur les DEL du STK500. Vous pouvez dfinir une variable globale pour le compteur de nombre de tours. Cette variable est accessible par toutes vos fonctions, y compris la fonction dinterruption et la fonction principale (main). Par exemple, pour dfinir une variable globale entire nomme count : #include <avr/io.h> #include <avr/interrupt.h> #include <avr/delay.h> #include "global.h" volatile int count; // dfinition dune variable globale pour le nombre de tours. ...

2. Programmez le microcontrleur pour en faire un tachymtre et faites vrifier son fonctionnement.

D. Marche, H. Langlois

Page 10 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

8.2 Interruptions internes Le microcontrleur peut lui-mme crer des interruptions. Les interruptions internes les plus frquemment utilises sont celles produites par les compteurs du microcontrleur. 8.2.1 Compteur du microcontrleur La fonction de dlai de base (_delay_ms) est ralise par une boucle (while) qui occupe le microprocesseur pendant un certain temps. Quand de nombreuses interruptions sont gnres comme dans le cas du tachymtre, la fonction de dlai est interrompue frquemment, et la valeur finale de dlai devient incertaine. Dans ce cas, une mesure prcise de vitesse de rotation devient impossible. LATMEGA32 possde des compteurs dont lopration est indpendante du CPU et nest donc pas ralentie par lexcution du programme ou des interruptions. Ces compteurs peuvent tre utiliss pour gnrer des interruptions intervalles rguliers. La fonction suivante permet dactiver un compteur qui gnre des interruptions chaque seconde lorsque la frquence dhorloge est de 8 MHz.
// TimerInterupt1s: Fonction activant le compteur 0 de l'ATMEGA32 // et crant une interruption par seconde si la frquence est de 8Mhz. // value: 1 pour activer le compteur, 0 pour dsactiver void TimerInterupt1s(unsigned char value) { TCNT1=0; // remettre le compteur 0 if(value){ TIMSK |= (1<<OCIE1A); //Activer la comparaison du compteur avec un seuil OCR1A = 0x7A12; //Seuil pour 1s entre chaque interruption quand f=8Mhz TCCR1B |= (1<<CS12); //Dfinition du multiplicateur et dmarrage du compteur } else{ TIMSK &= ~(1<<OCIE1A); //Dsactiver la comparaison et les interruptions TCCR1B &= ~((1<<CS12) | (1<<CS11) | (1<<CS10)); //arrter le compteur } } // routine dinterruption du compteur SIGNAL (SIG_OUTPUT_COMPARE1A) { TCNT1 =0; // remettre le compteur 0 }

D. Marche, H. Langlois

Page 11 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

8.2.2 Tachymtre prcis Modifiez le programme de tachymtre prcdent pour viter lutilisation de la fonction de dlai _delay_ms . 1. crivez (ou imprimez) le nouveau programme qui doit faire appel aux interruptions externes du capteur Hall et aux interruptions internes du compteur du microcontrleur.

2. Programmez le microcontrleur pour en faire un tachymtre et faites vrifier son fonctionnement. 3. Compteur de vitesse : modifiez votre tachymtre pour quil affiche la vitesse en km/h, en supposant que laimant est install sur une roue de 33 centimtres de rayon. Laffichage doit tre en code thermomtre et chaque DEL doit correspondre 6 km/h. Faites vrifier le fonctionnement du compteur de vitesse.

D. Marche, H. Langlois

Page 12 de13

E.T.S.

Laboratoire ELE 1A

Microcontrleur et STK500- Introduction

9.

valuation et chancier

Ce laboratoire dune dure de 5h00 heures est valu en quipe. Chacun des programmes de la grille dvaluation doit tre vrifiez en classe par le professeur.

10.

Grille dvaluation Programme faire vrifier pendant le laboratoire 1. Mesure de champs magntique 2. Clignotant interruption 3. Clignotant interruption par effet Hall 4. Compte tours 5. Tachymtre 6. Tachymtre prcis 7. Compteur de vitesse Question, Mesures Total /10 /10 /10 /10 /15 /20 /10 /15 /100

11.

Suggestions, remarques, commentaires des tudiants

D. Marche, H. Langlois

Page 13 de13

E.T.S.