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.
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
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à !
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.
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...
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.
(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, ...