Electronique > Réalisations > Affichage / Mesure > Compteur points 002

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.

compteur_points_002_pcb_3d_a

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.

compteur_points_002

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:
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

encodeurs_optiques_bases_000ac encodeurs_optiques_bases_000ac2

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.

d350_brochages_001a d350_brochages_001b

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é.

compteur_points_002_proto_001a compteur_points_002_proto_001b compteur_points_002_proto_001c

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.