0% ont trouvé ce document utile (0 vote)
14 vues3 pages

Manipulation de données analogiques avec PIC

Le document décrit trois manipulations utilisant un microcontrôleur PIC16F877A : acquisition d'un signal analogique, mesure de température avec un capteur LM35, et comparaison de deux tensions avec des comparateurs analogiques. Des programmes en C doivent être développés pour chaque manipulation.

Transféré par

Fahem Yaiche D4b
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues3 pages

Manipulation de données analogiques avec PIC

Le document décrit trois manipulations utilisant un microcontrôleur PIC16F877A : acquisition d'un signal analogique, mesure de température avec un capteur LM35, et comparaison de deux tensions avec des comparateurs analogiques. Des programmes en C doivent être développés pour chaque manipulation.

Transféré par

Fahem Yaiche D4b
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ecole Nationale Supérieure des Technologie Avancées Département GEII

Ing 3 AII Année : 2023/2024


Matière : Systèmes Temps Réel Mr. [Link]
------------------------------------------------------------------------------------------------------------------------------------------------ ----------------

TP2 : Manipulation de données analogiques par un microcontrôleur.

But de TP
Comprendre l’organisation et le fonctionnement du module de conversion analogique/numérique. Mener à bien
un processus d’acquisition de données analogiques par un microcontrôleur. Application : numérisation d’un
signal aléatoire issu d’un potentiomètre, mesure de température à l’aire du capteur analogique. Utilisation des
comparateurs analogiques.

Matériels et logiciels utilisés


Carte de développement EasyPIC à base du microcontrôleur PIC16F877A, multimètre, PC, environnement de
développement MicroC PRO for PIC.

Préparation théoriques
1) Module de conversion A/N : A titre de préparatif, il est demandé de comprendre les différentes
configurations possibles au moyen des registres : ADCON0, ADCON1, INTCON, PIE1, TRISA, TRISE, en
se référant au document technique de PIC16F877A. Déterminer leurs contenus pour vérifier le cahier des
charges suivant, utiliser ‘x’ pour les bits non concernés ou celle dont la valeur est indifféremment 0 ou 1 :
 L’acquisition se fait à travers le canal 0 : AN0/RA0.
 Le module est mis sous tension mais il n’est plus en marche.
 Le résultat de chaque conversion est justifié à droit (voir figure 11-4 du datasheet, p.132).
 L’horloge de conversion a une fréquence de F OSC/32, FOSC est la fréquence d’horloge du microcontrôleur.
 Les tensions de référence sont VDD et VSS.
 Toutes les interruptions sont désactivées, y compris l’interruption de la fin de conversion A/N.
Orientations :

 En mettant à 1 le bit ADCON0<2>, cela met en route la conversion d’un seul échantillon. A l’issu de cette
opération, ce bit est mis automatiquement à 0 et une interruption se produit. Avant de procéder à
récupérer le mot qui correspond à l’échantillon convertie, il faut donc toujours tester ce bit. Le bit ADIF
du registre PIR1 peut être utilisé autrement si les interruptions sont activées.
 Une ligne d’E/S utilisée comme chaine d’acquisition doit être configurée en entrée. Donc, les registres
TRISA et TRISE doivent être convenablement configurés.
Plus d’informations concernant le module de comparaison sont données dans le datasheet (pp. 135-142).
2) Comparateurs analogiques : A titre de préparatif, répondre aux questions suivantes :
 Que devront-ils les contenus des registres : CMCON, CVRCON, INTCON, PIE2, TRISA pour avoir le
fonctionnement suivant : le premier comparateur est uniquement utilisé, les interruptions ne sont pas prises
en charge.
 Que devront ils les contenus des mêmes registres pour avoir le fonctionnement suivant : le module
comparateur utilise une tension de référence interne de 3V, RA0 et RA1 sont respectivement les entrées de
la tension externe des deux comparateurs. L’interruption du module est pris en charge, les sorties des deux
comparateurs sont respectivement reliées à RA4 et RA5.
1
Ecole Nationale Supérieure des Technologie Avancées Département GEII
Ing 3 AII Année : 2023/2024
Matière : Systèmes Temps Réel Mr. [Link]
------------------------------------------------------------------------------------------------------------------------------------------------ ----------------

Manipulations
Activité 1 : Acquisition d’un signal aléatoire produit par un potentiomètre.

1. Compte tenu des paramètres du cahier des charges précédent, écrire un programme en C qui permet de
gérer la conversion de la tension de sortie du premier potentiomètre. Utiliser le deuxième afficheur 7
segments pour visualiser la partie entière de l’amplitude de tension. Il est à noter que cette dernière varie
entre 0 et 5 V. Tester le programme développé. Tourner le potentiomètre et prélever à l’aide d’un multimètre
la tension de sortie qui correspond à chaque changement immédiat de la valeur reportée.
2. Effectuer les modifications nécessaires pour visualiser le contenu des registres ADRESL et ADRESH au
moyen des LED connectées respectivement au port B et port C. Constater l’influence de la variation de
tension de sortie du potentiomètre sur les contenus de ces deux registres.
Orientations :
Le programme déroule comme suit : Configurations/initialisations - Mise en marche de la conversion - Attente
de la fin de conversion (en testant ADCON0<2>) - Si c’est le cas, récupération du mot de 10 bits dans un entier
non signé - Conversion du mot récupéré en valeur entre 0 et 5 - Le mot à envoyer vers l’afficheur est généré en
fonction de la valeur de tension (ce mot peut être généré directement à partir du mot récupéré après la
conversion) - L’affichage - Remise à 1 de ADCON0<2> - Reprise des étapes qui suivent et ainsi de suite.
Activité 2 : Mesure de la température en utilisant le capteur LM35 analogique.
Dans la manipulation précédente, le potentiomètre peut être remplacé par un capteur de température analogique
tel que le LM35. Ce dernier dispose de trois bornes et peut être utilisé avec le microcontrôleur tel qu’il est
représenté dans la figure 1. La tension de sortie du capteur varie linéairement en fonction de la température
ambiante, et ce avec une quantité de 10 mV/°C. À 25 °C. Le fonctionnement normal du capteur est dans
l’intervalle qui d’étend de 2 jusqu’à 150 °C.
On considère maintenant que l’interruption associée au module de conversion A/N est autorisée et que
l’acquisition de la tension de sortie du capteur se fasse à travers AN6/RE1. Les autres paramètres du cahier des
charges sont toujours les mêmes.
Développer un programme en C qui permet de gérer la conversion de la tension de sortie du capteur en
information binaire, transformer cette information en valeur de température, puis visualiser cette dernière sur les
trois premiers afficheurs 7 segments.
Orientations :

 La conversion est enclenchée en mettant à 1 le bit ADCON0<2>. Avant d’y procéder, les configurations et
les initialisations nécessaires doivent être effectuées. L’unité d’exécution doit rentrer dans une boucle
d’attente juste après l’enclenchement de conversion.
 Une interruption est émise à l’issue de chaque conversion. Dès lors, ADCON0<2> se met à 0, le bit ADIF du
registre PIR1 se met à 1 et l’exécution se branche automatiquement vers le sous-programme d’interruption.
 Le sous-programme d’interruption doit être placé avant la fonction main(). Il est défini de la même façon
qu’une fonction, mais il doit obligatoirement porter le nom void interrupt().

2
Ecole Nationale Supérieure des Technologie Avancées Département GEII
Ing 3 AII Année : 2023/2024
Matière : Systèmes Temps Réel Mr. [Link]
------------------------------------------------------------------------------------------------------------------------------------------------ ----------------

 ADIF doit être remis à 0 à la fin du sous-programme d’interruption. Autrement, l’unité d’exécution va détecter
une autre interruption juste au moment de reprise de la boucle d’attente.
 Afin de permettre une nouvelle conversion, ADCON0<2> doit être remis à 1 au niveau de la boucle d’attente.
Cette dernière peut toutefois contenir d’autres instructions pour exploiter, par exemple, le mot binaire
récupéré de la dernière conversion (de préférence avant l’enclenchement de la conversion).

Fig. 01 : Utilisation du capteur LM235 avec un microcontrôleur.

Activité 3 : Comparaison de deux tensions.


On veut comparer les tensions issues des deux potentiomètres montés sur la carte de développement (soient
V1 et V2). La LED connectée à RA4 s’allume lorsque V 1 < V2. Autrement, la LED connectée à RA5 qui doit
s’allumer. Les tensions V1 et V2 sont respectivement appliquées sur RA0 et RA3 (un pont doit être créé entre la
sortie du deuxième potentiomètre et RA3 en utilisant un fil).
Développer puis tester un programme en C qui permet au module de comparaison de réaliser cette tâche, on
considère que seul le premier comparateur qui est opérationnel et que les interruptions sont désactivées. Il est
rappelé aussi que RA4 requiert un tirage haut (pull-up).
Orientations :
Après avoir effectué les configurations nécessaires, le programme doit rentrer dans une boucle infinie dans
laquelle l’état de RA5 est mis à jour en fonction des résultats de comparaison (et non pas RA4 parce qu’il est
mis à jour automatiquement par le comparateur).

Vous aimerez peut-être aussi