Compteur de clics

Bonjour !
Voici notre premier petit projet de niveau 2 ! Ho !
Dans cette fiche nous allons concevoir un compteur de clic de 0 à 9. Ce montage sera à base de CD4017 (compteur décimal) et de CD4511 (driver d'affichage BCD) : ça pose déjà un problème d'optimisation de communication Décimal-to-BCD... heureusement, il existe d'autres composants faits pour... des convertisseurs DEC/BCD, des compteurs BCD, ... mais comme ça on se fait chier et on va lire 2 fiches.

Voici donc le projet final, de gauche a droite : interrupteur push, CD4017, réseau de diode, CD4511, 7 segments, LED BCD :

Introduction

Le principe est simple.

Lorsque l'utilisateur appuie sur l'interrupteur Push, il envoie un signal (0→Vcc→0) au CD4017, ce dernier réagissant aux fronts montants, incrémente sa sortie de 0 à 9. Ces sorties sont donc à tour de rôle à un niveau 1, le reste du temps, elles sont à 0.
Par un "réseau" de diode, on convertit le décimal (0,1,2,3,4,5,6,7,8,9) vers du BCD (A,B,C,D) du CD4511. Le CD4511 convertit le BCD vers du 7 segments (f,g,a,b,c,d,e)

Liste de matériel

Compteur :
-1x CD4017, compteur décimal
-1x CD4511, driver 7sgmt BCD
-15x 1N4448, diode de signal...
-1x C1, condo polarisé : valeur non critique, tension > tension d'alim, 100-200uF
-1x Afficheur 7 sgmt CATHODE COMMUNE
-7x Résistance ~330 Ohms : valeurs approximatives
-4x Résistance ~680 Ohms : valeurs approximatives
-1x Résistance ~680 kOhms : valeurs approximatives
-1x Interrupteur push
-1x BreadBoard
-Du fil à strap... toujours utile
 

Théorie & Application

Voici le schéma global. Dans cette partie "théorie" on expliquera tour à tour le CD4017, CD4511 et l'afficheur. Je ne donnerai pas de schéma plus détaillé, mais je tacherai de bien décrire l'ensemble et vous comprendrez mieux.

Schéma


Et voici le fonctionnement in situ :


CD4017 [DATASHEET]

Le CD4017 est un CI de la famille des CD4000, je vous invite a lire la datasheet, c'est un bon entrainement !

Décrivons d'abord chaque pin et la fonction associée:
-Pin 1 : sortie 5
-Pin 2 : sortie 1
-Pin 3 : sortie 0
-Pin 4 : sortie 2
-Pin 5 : sortie 6
-Pin 6 : sortie 7
-Pin 7 : sortie 3
-Pin 8 : Vss : reliée directement à la masse, fait partie de l'alimentation
-Pin 9 : sortie 8
-Pin 10 : sortie 4
-Pin 11 : sortie 9
-Pin 12 : Carry Out : je n'ai pas trop compris... cette sortie est à 1 sur 0-4 et à 0 sur 5-9
-Pin 13 : Clock Inhibe : à 0 ne "fait rien", à 1 empêche le signal d'être effectif
-Pin 14 : Clock : input du signal, incrémente le CI selon le signal
-Pin 15 : Reset : à 0 ne "fait rien", à 1 remet le compteur à 0
-Pin 16 : Vcc : reliée directement à Vcc, fait partie de l'alimentation

Dans l'histoire, nous relions donc Reset, Vss et Clock Inhibe (8,13,15) à la masse afin de pouvoir incrémenter comme il faut notre système (c'est l'objectif quand même). Vcc est reliée à Vcc. Clock est reliée à notre interrupteur.
Vous noterez le petit montage à ce niveau ; j'ai passé 4H hier soir pour comprendre pourquoi sans ça, ça fonctionnait mal... et bien il faut sur le signal une réel mise à la masse pour éviter un comportement antenne (je pouvais lancer le compteur très rapidement en rapprochant mon doigt du fil. Bref, tout ça pour dire que sur ce petit montage, R1, de forte valeur (680k) permet une mise à la masse quand l'interrupteur est ouvert, et évite un court circuit lorsque l'interrupteur est fermé. C'est empirique mais ça fonctionne.

A t=0, seul la sortie 0 est à 1. Lorsqu'on active l'interrupteur, on fait monter la valeur de 1. La sortie 0 passe à 0, la sortie 1 passe à 1. Et ainsi de suite !
Je vous conseil avant de faire la suite du montage, de placer 1 LED par sortie, toutes reliées par le biais d'une résistance de 400 Ohms à la masse. Vous aurez donc un petit chenillard manuel.


CD4511 [DATASHEET]

Encore un composant de cette famille, je vous invite également à lire la datasheet !

Nous allons encore une fois décrire chaque pin :
-Pin 1 : B : correspond au second bit du BCD d'entrée
-Pin 2 : C : correspond au troisième bit du BCD d'entrée
-Pin 3 : LT : Lampe Test : à 0, oblige l'ensemble des segments à s'allumer, qu'importe l'état du reste des entrées (A,B,C,D,BI,LE), à 1, active le reste
-Pin 4 : BI : Blanking : LT à 1, shunte les inputs ABCD. Les sorties sont donc à 0 (7sgmt éteint)
-Pin 5 : LE : Latch Enable : le loquet. A 0, le loquet est ouvert, à 1 il est verrouillé. Verrouiller le loquet permet de laisser afficher la dernière valeur (celle pendant le verrouillage) même si ABCD change
-Pin 6 : D : correspond au dernier bit du BCD d'entrée
-Pin 7 : A : correspond au premier bit du BCD d'entrée
-Pin 8 : Vss : reliée directement à la masse, fait partie de l'alimentation
-Pin 9 : e : relié au segment correspondant (cf schéma)
-Pin 10 : d : relié au segment correspondant (cf schéma)
-Pin 11 : c : relié au segment correspondant (cf schéma)
-Pin 12 : b : relié au segment correspondant (cf schéma)
-Pin 13 : a : relié au segment correspondant (cf schéma)
-Pin 14 : g : relié au segment correspondant (cf schéma)
-Pin 15 : f : relié au segment correspondant (cf schéma)
-Pin 16 : Vcc : reliée directement à Vcc, fait partie de l'alimentation
 

7sgmt


Bref, vous l'aurez compris, l'objectif est de relier chaque décimal à son combo BCD correspondant. Par exemple : la sortie 1 du CD4017 sera reliée à A du CD4511, la sortie 3 sera reliée à A et B, la sortie 7 à A, B et C, ...

L'ensemble des correspondances est inscrit dans la datasheet mais voici un petit screen de ce tableau.

Tableau de correspondance CD4511


Pourquoi utiliser des diodes me direz vous ? Et bien sans ça, toutes les entrés se parasitent puisqu'on a chaque fois un point commun. Il est donc impératif d’interdire tout retour et correspondance entre A, B, C et D : pour se faire, nous utilisons des diodes. Il y à 15 niveaux haut sur l'ensemble de ABCD pour les 10 valeurs. Il nous faut donc 15 diodes... coup de pot, à 3 centimes la diode on va pas jouer les pisses vinaigres.
15 diodes, quelques straps plus tard, vous avez normalement reliée correctement le CD4017, le CD4511 comme il faut. Ne reste que la partie la plus simple, relier l'afficheur 7 segments et les 4 LEDs pour visualiser le signal BCD (A B C )

7 Segments

Je remet l'image, ça donne l'impression d'une grande fiche... mais voilà l'ensemble des infos sur ce simple dessin :

Tableau de correspondance CD4511


Je dis l'ensemble mais il manque une petite info : les pins 3 et 8 sont, pour un cathode commune, reliées à la masse. (je ne me trompe pas, c'est comme ça)

Pour nos LEDs, vous allez simplement venir chercher un point sur A, B, C et D et les relier à des LEDS vers la masse.

Dans l'ensemble vous vous demandez pourquoi il vous reste 11 résistances sous le coude ? C'est simple ! Les LEDs et l’afficheur 7 segments sont de même nature et vous aurez surement oublié de placer 1 résistance par LED soit 7 juste pour l'afficheur ! (et non une, car il peu y avoir 7 LEDs allumé simultanément pour le N°8)
J'utilise des résistances de 680 Ohms pour les LED BCD car les valeurs moindres font qu'elles consomment trop et font dysfonctionner le système pour le N°7 (ou 3 LEDs sont allumées). L'affichage 7 segments est basé sur des 330 Ohms (vous pouvez prendre + ou - selon l'éclat du segment souhaité)


Et notre condensateur ?
Eh bien le mieux est d'essayer sans ! Sans, on à une faible stabilité, et lors de la mise sous tension/hors tension, 4 valeurs ont été incrémentées seules...
Ce condensateur s'appel un condensateur de découplage : il s'agit d'un condensateur de valeur élevée (200µF par exemple) qui a pour objectif de lisser les fluctuations de tension dans l'alimentation. Ainsi, au démarrage il amortit la "vibration" qui incrémente à tord notre système et de même à l'extinction. J'ai aussi noté un meilleur comportement au clic (l'interrupteur fait passer 1 et 1 valeur seulement).
Il est très simple à placer : directement sur Vcc et masse et au plus proche (distance) du composant à protéger (ici notre CD4017)

Et ensuite ?

Vous voulez sûrement faire un compteur de 0 - 99 ?! C'est très très simple !

Tableau de correspondance CD4511


Il suffit donc de décaler le 1→pin0, 2→pin1, ..., 0→pin9 et de relier ce pin 9 à la clock d'un second ensemble CD4017+CD4511. Ainsi voici comme se déroule l'incrémentation :

-ON : Afficheur 0 affiche "1", Afficheur 1 affiche "0" = 01
-Click : Afficheur 0 affiche "2", Afficheur 1 affiche "0" = 02
-Click : Afficheur 0 affiche "3", Afficheur 1 affiche "0" = 03
-Click : Afficheur 0 affiche "4", Afficheur 1 affiche "0" = 04
-Click : Afficheur 0 affiche "5", Afficheur 1 affiche "0" = 05
-Click : Afficheur 0 affiche "6", Afficheur 1 affiche "0" = 06
-Click : Afficheur 0 affiche "7", Afficheur 1 affiche "0" = 07
-Click : Afficheur 0 affiche "8", Afficheur 1 affiche "0" = 08
-Click : Afficheur 0 affiche "9", Afficheur 1 affiche "0" = 09
-Click : Afficheur 0 affiche "0" ET Afficheur 1 affiche "1" = 10
...

Bon, si vous avez l’½il vous remarquerez rapidement que le décalage du second système n'est pas bon, ma feignantise m'aura perdu... ainsi on va afficher "11" au lieu de "10". A vous de corriger ça.

Je ne vous montrerai pas ce montage car ma breadboard est vraiment trop petite... mais soyez assuré que ça fonctionne.

Vos réactions (1) :

Bougie

Carry out, c'est le bit de retenue au cas où une opération peut être arrondie. Utile si on veut arrondir un nombre à l'unité supérieure. Bon, là c'est pas nécessaire mais ça pourrait l'être dans un autre schéma. :)

21/12/2016 à 11:04

Vous avez besoin d'aide ? Utilisez le Forum plutôt que les commentaires.

Un commentaire ?

* Champs obligatoires