Informatique Industrielle : TP 7 – Microcontrôleur LCD & CONVERSION ANALOGIQUE NUMERIQ
Télécharger PDFTP7 – Microcontrôleur : LCD et Conversion Analogique-Numérique
Objectifs
L'objectif de ce TP est de : - prendre en main l'affichage LCD de la carte EasyPIC7 - réaliser un voltmètre à l'aide du Convertisseur Analogique Numérique (CAN) du PIC
I. Prise en main de l'afficheur LCD
Sur la carte EasyPIC7, l'afficheur LCD est connecté en mode 4 bits. Il est commandé par la partie basse du PORTB. Les bits RB0, RB1, RB2 et RB3 constituent le bus de données, tandis que les bits RB4 et RB5 permettent de contrôler les commandes RS (Register Select) et E (Enable) de l'afficheur.
TRAVAIL PRATIQUE (LCD)
Tous les boutons des switchs doivent être en position OFF, sauf ceux des boutons 5 et 6 de SW4 qui activent le rétro-éclairage de l'afficheur. Tous les programmes doivent utiliser l'horloge interne du PIC configurée à FOSC = 8 MHz.
1. Programme TP7-A.c
Afficher : - "TP PIC" sur la première ligne - les nombres "04", "05" et "2015" sur la deuxième ligne
2. Programme TP7-B.c
Afficher un compteur 8 bits (0, 1, 2, ..., 255) sur la première ligne.
3. Programme TP7-C.c
Afficher un compteur 16 bits (0, 1, 2, ..., 65535) sur la deuxième ligne.
4. Programme TP7-D.c
Afficher une chaîne de plus de 16 caractères, puis la faire défiler vers la gauche.
5. Programme TP7-E.c
Afficher une chaîne de plus de 16 caractères, puis la décaler d'un caractère vers la droite ou la gauche à chaque pression sur RC0 ou RC1.
Attention : si l'afficheur contient un nombre à plusieurs chiffres (ex. 34567) et qu'un nombre plus petit est affiché à la même position (ex. 88), les chiffres restants (567) ne sont pas effacés et le résultat affiché devient "8856".
II. Conversion Analogique-Numérique
La carte EasyPIC7 dispose de deux potentiomètres (P1 et P2). La tension à leur sortie varie entre 0 V et 5 V. Les jumpers J15 et J16 permettent de connecter ces potentiomètres aux entrées analogiques RA0, RA1, RA2, RA3 ou RA5.
Il est important de : - déconnecter les résistances de pull-up/down des entrées/sorties analogiques de la masse ou de Vcc - déconnecter les LEDs reliées aux entrées/sorties analogiques
Méthodologie
Exemple : une tension de 3,836 V est mesurée sur une entrée analogique. Après conversion par le CAN du PIC, on obtient le nombre N = 785. Pour afficher la tension en volts sous forme décimale (3,836) : - Convertir N en mV (M) via la règle de trois : M = (N × 5000) / 1023. - Dans l'exemple, M = 3836 mV. - Convertir M en un tableau de 5 chiffres (BCD) avec la fonction sprintf. - Afficher le chiffre BCD[1] (toujours 0 pour M ≤ 5000), suivi d'une virgule, puis les chiffres BCD[2], BCD[3], BCD[4] et BCD[5].
L'acquisition des données analogiques se fait via la fonction : unsigned ADC_Read(unsigned short channel); (voir documentation de la bibliothèque ADC_library).
TRAVAIL PRATIQUE (CAN)
1. Observer la carte et localiser les potentiomètres P1 et P2 ainsi que les jumpers J15 et J16.
2. À l'aide du jumper J15, connecter RA0 au potentiomètre P1.
3. Vérifier sur SW1 que RA0 n'est pas connectée à une résistance de pull-up/down.
4. Vérifier sur SW6 que PORTA n'est pas connecté aux LEDs.
5. Programme TP7-F.c
Convertir le nombre 63579 en un tableau de 5 chiffres à l'aide de la fonction sprintf et l'afficher sous le format suivant : 6-3-5-7-9.
6. Programme TP7-G.c
Prendre une mesure de RA0 toutes les 0,5 secondes et afficher le nombre N obtenu sur le LCD.
7. Programme TP7-H.asm
Compléter TP7-G.c pour réaliser les fonctions suivantes : a) Prendre une mesure du signal RA0 et afficher le nombre N correspondant sur la première ligne du LCD. b) Convertir le nombre N en mV (M) via la règle de trois : M = (N × 5000) / 1023. c) Convertir M en un tableau de chiffres sous le format BCD : 0 m c d u (le premier chiffre est toujours 0 car M ≤ 5000 mV). d) Afficher les chiffres sous le format : m,cdu (exemple : 3836 mV → 3,836 V).
FAQ
Comment configurer le PIC pour utiliser le CAN en mode 10 bits ?
Le CAN du PIC est généralement configuré en mode 10 bits par défaut. Vérifiez dans la documentation du PIC et de la bibliothèque ADC_library que le canal sélectionné (RA0, RA1, etc.) est bien configuré pour ce mode.
Pourquoi les chiffres ne s'affichent-ils pas correctement dans le programme TP7-E.c ?
Si des chiffres restent affichés après un changement de valeur (ex. 34567 → 88), cela est dû au fait que le LCD conserve les caractères non mis à jour. Utilisez lcd_out pour effacer toute la ligne avant d'afficher la nouvelle valeur.
Comment éviter les interférences lors de la lecture analogique ?
Assurez-vous que les résistances de pull-up/down sont déconnectées et que les LEDs ne sont pas branchées sur les entrées analogiques. Utilisez des condensateurs de découplage si nécessaire pour stabiliser les signaux.