Electronique > Réalisations > Affichage / mesures > Voltmètre 004

Dernière mise à jour : 26/06/2011

Présentation

Mon premier voltmètre basé sur l'emploi d'un microcontrolleur ! Mais jusqu'où ira donc notre folie des grandeurs ? Un galvanomètre à aiguille ne serait-il point suffisant pour mesurer une tension ? Figurez-vous que je ne me suis pas posé la question de cette façon.

voltmetre_004_pcb_3d_a

En bouquinant un peu à gauche et à droite, j'ai découvert l'existence d'un PIC de type 12F675, qui dans un petit boitier de 8 pattes (même taille que les bons vieux LM741 et NE555) intègre un convertisseur analogique / numérique (ADC) avec quatre entrées analogiques multiplexées (les quatres entrées peuvent être numérisées les unes après les autres). Je me suis dit que ce petit circuit, que je dois être un des rares à ne pas encore connaitre, se devait de rejoindre ceux avec qui j'ai fait mes premiers pas. J'ai donc expérimenté un peu avec ce circuit, qui au travers du schéma décrit ici, permet l'affichage sur deux barreaux de 8 leds chacun, de deux tensions continues distinctes. Ou l'affichage sur un seul barreau de 16 leds, d'une tension continue unique, avec une résolution double. Puis pour faire suite à la demande particulière d'un internaute, j'ai réalisé une troisième version logicielle permettant un affichage sous forme de petit ruban lumineux de 4 leds se déplaçant sur l'échelle de 16 leds. En résumé, quatre versions et trois effets visuels différents selon version utilisée :
- Version 004 : échelle de 0 V à +5 V, mode 2 x 8 leds ou 1 x 16 leds
- Version 004b : échelle de 0 V à +2,5 V, mode 2 x 8 leds ou 1 x 16 leds
- Version 004ca : échelle de 0 V à +2,5 V, mode 1 x 16 leds
- Version 004cb : échelle de 0 V à +5,0 V, mode 1 x 16 leds

voltmetre_004_leds_001

Usages possibles

Ce circuit réclame une tension d'entrée comprise entre 0 V et +5 V (version logicielle 004 ou 004cb) ou une tension d'entrée comprise entre 0 V et +2,5 V (version logicielle 004b ou 004ca) pour une pleine échelle d'affichage. N'importe quelle grandeur physique, telle que température, humidité, pression, vitesse, tension, courant, peut être affichée, dès l'instant où l'on dispose du capteur adéquat et de son électronique associée.

Schéma 004 (versions logiciel 004 et 004b)

Un petit PIC de type 12F675, deux registres à décallage CD4094, quelques leds, et voilà !

voltmetre_004

Remarque : les leds peuvent être remplacées par des baregraphes (si ces derniers possèdent 10 leds, deux ne seront alors pas utilisées).

Echelle de mesure
Dépend de la version du logiciel flashé dans le PIC :
- Version 004 : échelle de 0 V à +5 V
- Version 004b : échelle de 0 V à +2,5 V

Le principe général
- Si interrupteur SW1 fermé, acquisition de la tension analogique présente sur l'entrée AN0, et affichage sur l'ensemble des 16 leds. Une tension de 0 V se traduit par l'extinction de toutes les leds, une tension de 2,5 V (version logicielle 004) ou de 1,25 V (version logicielle 004b) se traduit par l'allumage des huits premières leds (en partant du bas), et une tension de 5 V (version 004) ou de 2,5 V (version 004b) se traduit par l'allumage de toutes les leds. L'écart entre chaque led est linéaire. Le pas est donc d'environ 0,31 V (version 004) ou de 0,15 V (version 004b).
- Si interrupteur SW1 ouvert, acquisition de la tension analogique présente sur l'entrée AN0 pour affichage sur les huit premières leds (bargraphe inférieur), et acquisition de la tension analogique présente sur l'entrée AN1 pour affichage sur les huit dernières leds (bargraphe supérieur). Une tension de 0 V se traduit par l'extinction de toutes les leds, une tension de 2,5 V (version 004) ou de 1, 25 V (version 004b) se traduit par l'allumage des quatre premières leds (en partant du bas), et une tension de 5 V (version 004) ou de 2,5 V (version 004b) se traduit par l'allumage des huit leds. L'écart entre chaque led est là aussi linéaire. Le pas est donc d'environ 0,62 V (version 004) ou de 0,31 V (version 004b).
Les acquisitions ont lieu toutes les 100 ms, et chacune dure approximativement 5 ms, en tenant compte du temps pris pour la mise à jour de l'affichage.

Les tensions mesurées
Ce sont celles qui sont appliquées sur les connecteurs d'entrées J1 (pour In1) et J2 (pour In2). Pour les tests, j'ai utilisé des potentiomètres cablés entre masse et +5 V, mais en pratique toute source de tension comprise entre 0 V et +5 V (ou entre 0 V et +2,5 V pour la version logicielle 004b) conviendra.

voltmetre_004_tests_pot

Attention, le PIC utilisé à besoin d'une source de tension fournie sous faible impédance de sortie (max 1 KO), pour un fonctionnement correct. Le cas échant, vous pourrez ajouter un étage suiveur à AOP entre la source de tension à mesurer et les entrées du PIC.

Acquisition et affichage
Une fois l'acquisition des tensions d'entrée effectuée, les valeurs lues sont "codées" afin de pouvoir être envoyées sous forme sérielle aux diverses leds. Les registres à décallage CD4094 se chargent simplement de la conversion série / parallèle des données envoyées par le PIC. Une légère modification du "codage" des données série peut permettre d'utiliser plusieurs afficheurs 7 segments (trois ou quatre) au lieu des leds, c'est ce que j'ai fait avec mes voltmètres 005 et 005b.

Schéma 004c (version logicielle 004c)

Affichage petit ruban de 4 leds parmi 16...

voltmetre_004c

Avec cette version, seule l'entrée GP0/AN0 (In1) est mise à contribution, l'entrée GP1/AN1 est ignorée. L'affichage ne se fait pas en mode bargraphe mais avec un petit ruban (barreau) de 4 leds qui se déplace sur la rangée de 16 leds en fonction de la tension d'entrée. Quand on se rapproche des extrêmités basse ou haute, le nombre de leds allumées diminue de 4 à 1 (il y en a toujours au moins une allumée pour savoir si la tension d'entrée est au minimum ou au maximum).

Choix d'échelle d'affichage
Pour échelle d'affichage de 0 V à 2.5 V, utiliser le code source ou fichier Hex version 004ca
Pour échelle d'affichage de 0 V à 5.0 V, utiliser le code source ou fichier Hex version 004cb

Logiciel du PIC

Le fichier binaire compilé (*.hex), ainsi que le code source langage MikroPascal sont disponibles dans l'archive suivante (code écrit et compilé avec MikroPascal V8.3). L'archive Voltmètre 004c contient les codes source et fichiers hex des deux versions 004ca et 004cb.
Voltmètre 004 - Pour PIC 12F675 - pour échelle 0 V à +5 V (07/10/2008)
Voltmètre 004b - Pour PIC 12F675 - pour échelle 0 V à +2,5 V (25/11/2009)
Voltmètre 004c - Pour PIC 12F675 - pour échelles 0 V à +2,5 V et 0 V à +5,0 V (14/03/2010)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Non réalisé de mon côté. La vue 3D n'existe que pour donner un aperçu des composants utilisés.

Prototype de Frédéric (circuit 004c)

Merci à Frédéric pour son retour positif.

voltmetre_004c_proto_fred_001a_tn
(clic pour gros plan)

Très beau CI qu'il a réalisé là ! On y voit deux ou trois ajouts pas prévus sur mon schéma, le monsieur n'est pas débutant et ça se voit.

Evolutions possibles

On peut imaginer tellement de choses... Mémorisation des crêtes pour usage en vumètre, mémorisation des mini et maxi d'une température, sélection du mode d'affichage en mode barre ou mode point pour cloner le fonctionnement des célèbres LM3914, remplacement de l'entrée de mode en entrée de comptage pour faire du montage un compte-tours, ajouter des décodeurs BCD / 7 segments associés à des afficheurs pour visualisation d'un nombre, ...