Voltmètre numérique 3 digits avec PIC16F877
Catégorie : Réalisation de cartes électroniques | Mise à jour le : 16/10/2017 11:54 |
Ajouté par : Technologuepro | Lectures : 28660 |
Commentaires : 0 [ Poster un commentaire ] | Note : Non évalué |
Ce montage est un voltmètre 3 digits basé sur le microcontrôleur PIC16F877A. le calibre est de 0 à 48V DC avec une précision de 0.1V Utile pour l’affichage de la tension dans vos applications qui ne nécessitent pas une grande précision, ce montage ne nécessite que 3 afficheurs 7 segments, un microcontrôleur et quelques résistances.
Lecture de la tension par le microcontrôleur PIC16F877La tension à mesurer est divisée par 10 grâce au montage pond diviseur de tension comme indiqué dans la figure suivante: La tension qui entre au microcontrôleur est égale à R1/(R1+R2) * la tension à mesurer. La diode D1 nous permet de protéger le microcontrôleur contre l’inversion de polarités de la tension à mesurer, toutefois cette diode crée une chute de tension équivalente à son seuil qui est égale à environ 0.6V dans notre cas. Cette chute de tension et la tolérance de précision des résistances étudiées devront être corrigées dans le programme du microcontrôleur par étalonnage. La diode Zener D2 permet de protéger le microcontrôleur conte les surtensions. La tension sur la broche RA0 du microcontrôleur sera limité par la tension seuil de 4.7V de la diode Zener D2. La tension du pond diviseur a besoin d'être interprétée par le microcontrôleur pour cela on a recours à un convertisseur analogique numérique (CAN), ou en anglais ADC (Analog to Digital Converter) dont la fonction est de traduire une grandeur analogique (tension) en une valeur numérique (codée sur plusieurs bits), proportionnelle au rapport entre la grandeur analogique d'entrée et la valeur maximale du signal. Certains microcontrôleurs de type PIC (PIC16F876, PIC16F877,…) ont l'avantage de posséder un module convertisseur analogique numérique (CAN) interne à n bits. Les microcontrôleurs PIC16F87x tel que le PIC16F876 et le PIC16F877 possèdent un convertisseur analogique numérique sur 10 bits, ce dernier permet de convertir une tension analogique comprise entre Vref- et Vref+ en une valeur numérique comprise entre 0 et 1023. Pour exploiter ce convertisseur il est nécessaire de configurer certains registres dans le microcontrôleur, dans notre cas on s’intéressera uniquement au registre ADCON1 pour sélectionner et activer les entrées analogiques multiplexées avec le port A et le port E (PIC16F877).
Les bits PCFG3 … PCFG0 : Ces 4 bits permettent la sélection et la configuration des entrées analogiques à utiliser conformément au tableau ci-dessous : NB :
Le bit ADFM : Le convertisseur CAN fournit un nombre binaire naturel de 10 bits (B9 B8 B7 B6 B5 B4 B3 B2 B1 B0). Deux registres (2 x 8 bits) sont nécessaires pour stocker le résultat de la conversion. Ce sont les registres :
Deux formats sont disponibles suivant la valeur du bit ADFM (bit 7 du registre ADCON1) : La fonction prédéfinie de mikropascal pro ADC_Init() permet de configurer automatiquement le module convertisseur analogique numérique du microcontrôleur avec les réglages suivants :
Cette fonction doit être appelée après avoir sélectionné les entrées analogiques avec le registre ADCON1 Deux autres fonctions ADC_Get_Sample(canal) et ADC_Read(canal) permettent de lire automatiquement le résultat de la conversion à partir des registres ADRESH et ADRESL La fonction ADC_Get_Sample(canal) permet de lire le résultat de la dernière opération de conversion sur le canal fournit sous forme d’un mot sur 16 bits, la justification des 10 bits du résultat dépend du bit ADFM du registre ADCON1 Exemple : Lecture de la dernière valeur lue par le convertisseur analogique numérique sur le canal 0 (RA0/AN0) var v : word ... v := ADC_Get_Sample(0); La fonction ADC_Read(canal) permet d’initialiser le convertisseur, démarrer une opération de conversion puis lire le résultat de conversion sur le canal fournit sous forme d’un mot sur 16 bits, la justification des 10 bits du résultat dépend du bit ADFM du registre ADCON1 Exemple : Initialisation puis lecture de la valeur fournie par le convertisseur analogique numérique sur le canal 0 (RA0/AN0) var v : word ... v := ADC_Read(0); Affichage de la tension par le microcontrôleur PIC16F877
Pour afficher la tension sur 3 digits avec un chiffre après la virgule (00.0 à 48.0) on a besoin de trois afficheurs 7 segments. Dans notre cas on n’aura pas besoin de décodeurs 7 segments car les afficheurs seront directement liés au microcontrôleur PIC16F877 (il y a suffisamment de PINs libres) Pour des raisons de simplification du routage de la carte j’ai relié les PIN des afficheurs 7 segments aux Pin du microcontrôleur pas dans l’ordre mais de façon à minimiser au maximum les croisements des fils sur le typon.
Programme
Réalisation pratiquePour simplifier encore la carte j’ai diviser le schéma en deux parties qui feront à leur tour deux carte séparées qui seront liées ensemble par des connecteurs de type SIL
Routage
|
Lectures recommandées sur ce thème :
Cours
Cours Mesure - Catégorie : Cours Electricité
TP
TP Systèmes Temps réel - Catégorie : TP Automatisme et Informatique Industrielle
TP Mesure electrique - Catégorie : TP Electricité
Téléchargements
Exemple pour la Gestion du convertisseur A/N du PIC6F876 - PIC16F877 - (15/01/2009)
Annuaire
EduLabo - (18/08/2013)
Forums
programmes general - (16/04/2013)
voltmétre numérique a base de pic 16f877 - (13/02/2013)
Commentaires
Aucun commentaire dans la base de données