Dernière mise à jour :
06/10/2013
Présentation
Le montage décrit ici est un compteur / décompteur qui permet
d'afficher une valeur comprise entre 0000 et 9999 à l'aide d'un
encodeur optique.
Le nombre affiché s'incrémente si on tourne l'axe de l'encodeur
optique dans le sens des aiguilles d'une montre, et se décrémente quand
on essaye de remonter le temps. L'affichage est de type 4 x
7 segments et peut être de petite ou grande taille. Le système de
comptage est
basé sur un petit
microcontrôleur PIC 16F628A. Le circuit permet, grâce à un cavalier, d'inverser
les signaux logiques de commande des afficheurs, ce qui lui permet de
travailler aussi bien avec des modèles AC (Anode Commune) que des
modèles
CC (Cathode Commune).
Schéma
Le schéma qui suit ne révèle aucune surprise
particulière, on devine de suite qu'il est fait appel à
du
multiplexage
au niveau de l'affichage, pour un nombre de fils réduit.
Affichage de la valeur (0000 à 9999)
La visualisation du nombre à afficher est
assurée par un procédé de
multiplexage
d'affichage grâce auquel un seul afficheur est allumé à un instant donné. Cela permet de
consommer moins de courant et d'avoir moins de fils électriques à
câbler.
Les
afficheurs peuvent être des afficheurs simples de type anode commune ou
cathode commune, style D350PA (anode commune) ou D350PK (cathode
commune), ou tout autre modèle "géant" de votre choix:
- pour utilisation d'afficheurs de type anode commune : placer le cavalier
JP1 côté +5 V
-
pour utilisation d'afficheurs de type cathode commune : placer le
cavalier JP1 côté masse
La logique de commande des
points commun (C1 à C4) reste dans les
deux cas positive. En mode anode commune (cas du schéma proposé), une
seule des quatre sorties RA0 à RA3 est à l'état logique haut à un
instant donné, les autres sorties étant alors à l'état bas. Cela est
souhaité car ici les transistors Q1 à Q4 sont montés en "suiveur de
tension" et non en "interrupteur", quoi que d'un point de vue
fonctionnel on obtient la même chose, à quelques dizièmes de volts près
au niveau des anodes communes. En mode cathode commune, la commande
des transistors (de type NPN) reste avec une logique positive en les
utilisant en commutateur : émetteur des transistors à la masse et
collecteur sur les cathodes communes. Les résistances montées en série
avec la base des transistors ne sont pas nécessaires si on
utilise des afficheurs à anode commune, puisque les transistors sont
utilisés en suiveur et non en interrupteur (mais elles ne gênent pas le
fonctionnement si vous les laissez en place). Par contre elles sont
indispensables si on utilise des afficheurs à cathode commune avec des
transistors NPN montés en interrupteurs.
Affichage 0000 à 9999, 000 à 999, 00 à 99 ou 0 à 9 ?
Ah,
ce montage vous intéresse mais vous n'avez besoin que de deux
afficheurs. Et bien sûr, après 99 c'est la valeur 00 qu'on voit
apparaître puisque le maximum est 9999 et qu'après 99 arrive la valeur
100. Hum... il y a sûrement une solution à ce petit problème. Et si
vous appuyiez sur le bouton poussoir SW1 avant de mettre le montage
sous tension, que se passerait-il ? Eh bien ce petit coquin de montage
comprendrait que vous souhaitez passer en mode configuration, et vous
laisserait alors choisir le nombre d'afficheurs à utiliser : 1, 2, 3 ou
4. Une fois entrée en mode configuration, il vous suffit d'appuyer
autant de fois que nécessaire sur SW1 pour satisfaire vos désirs les
plus profonds (avec quelques limites j'en conviens). Une fois le nombre
d'afficheurs à "activer" spécifié, mettez le montage hors tension et
rallumez-le en laissant SW1 relâché. Simple, n'est-ce pas ? Et bien
entendu, votre choix est sauvegardé en EEPROM pour vous éviter de
refaire l'opération à chaque redémarrage.
Horloge
On
utilise ici l'horloge 4 MHz interne du PIC qui est bien suffisante tant
en terme de vitesse que de stabilité, on n'a pas besoin ici de la
précision d'un quartz. Le circuit se contente en effet de modifier
la valeur d'une variable et de l'afficher, ça aurait pu être pire.
Choix de l'encodeur optique
Je ne me suis pas posé la question car j'en avais déjà sous la main. J'ai fait mes tests avec un
encodeur optique Grayhill que j'avais déjà utilisé pour mon
alimentation ajustable 014c.
Avec
le code proposé et cet encodeur, il faut trois ou quatre crans de
rotation pour incrémenter ou décrémenter le nombre affiché. J'ai fait
en sorte que ça se passe comme ça dans le code pour que les chiffres ne
défilent pas trop vite, mais tout ajustage est bien sûr possible en fonction du nombre de pulsations délivrées par tour complet.
Détails afficheurs
Les
afficheurs
sept segments
représentés sur le schéma électronique sont de type "génériques" et ne
correspondent pas à un modèle précis (référencé) que l'on peut acheter. C'est
pourquoi ils ne possèdent ni référence ni numéro de broche. La
raison est que vous
pouvez utiliser plusieurs modèles d'afficheurs à anode commune ou à
cathode commune. Pour ma part, j'utilise souvent les afficheurs de type
D350PA (anode commune) ou D350PK (cathode commune) qui possèdent deux
rangées de 5 broches en haut et en bas. Leur brochage est indiqué
ci-après.
Il
existe d'autres types d'afficheurs (autres références) qui adoptent le
même brochage. Par exemple TDSR5150 (anode commune) ou TDSR5160
(cathode commune). Mais vous pouvez bien sûr adopter d'autres
afficheurs avec des broches positionnées différement et même, pourquoi
pas, un afficheur 4 digits déjà multiplexé... c'est ce que j'ai utilisé
pour mon prototype. Je ne préconise
aucun afficheur en particulier, tout du moins tant que je n'ai pas
réalisé l'implantation du circuit. Et vous avez bien
sûr le droit de récupérer des pièces d'anciennes cartes en
panne... plus facile bien sûr si les afficheurs sont posés sur support,
ce qui malheureusement est rarement le cas.
Prototype
Réalisé avec ma platine EasyPic 7 et deux, trois bricoles à côté.
Rien d'autre à dire de spécial, l'affichage ne scintille pas et j'imagine que ce sont des
choses qui peuvent arriver à tout le monde.
Logiciel du PIC
Fichier binaire compilé
*.hex
disponible dans l'archive suivante.
Compteur
points 002 - 16F628A (06/10/2013)
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é.
Historique
06/10/2013
-
Première mise à disposition.