Re: Comptage d'impulsions, à l'aide de relais
Au début de ce post, il s'agissait de compter des évènements asynchrones (un contacteur à came qui se ferme, par exemple).
Aujourd'hui, ça se fait très simplement avec un compteur chinois équipé d'un microcontrôleur (moins de 30 euros sur ebay) - à monter dans une découpe de panneau ...
Pour répondre à ce problème, il existe par ailleurs d'innombrables schémas à relais, plus ou moins rusés, venus du fond des âges, et dont le seul but - à l'origine - était d'économiser sur le matériel (moins de relais, please) ou bien d'utiliser des lots de relais pas toujours adaptés au problème - un seul jeu de contacts, par exemple - mais disponibles en quantités ...
Si les relais sont bien choisis et le montage bien conçu, ça peut fonctionner très longtemps et très bien.
MAIS .. Car il y a un MAIS :
Dès que la chaîne de comptage devient un peu longue (*) ou la fréquence de comptage un peu trop rapide, donc : dès que le temps de propagation de l'info dans les différents étages du compteur devient trop long vis à vis de la durée de l'impulsion d'entrée, on a furieusement intérêt à revenir à un schéma en logique synchrone, quitte à fabriquer (à l'entrée du montage) le signal CLOCK à partir du signal DATA, à l'aide d'un circuit de temporisation ... A relais (monostable double, par exemple). Ainsi, et sans avoir besoin de recourir à des techniques de suréchantillonnage, on pourra considérer que le signal DATA est déjà bien stable - setup time - lorsque survient le front actif du signal CLOCK, et qu'il sera encore stable suffisamment longtemps - hold time - après l'autre front du signal CLOCK.
(*) exemple : quand il faut compter jusqu'à 10.000 ou 100.000 impulsions, et non pas jusqu'à 10
I. Approche intuitive
Dans une approche intuitive et non systématique (= bricolage conceptuel) le compteur se composera d'un certain nombre de diviseurs par 2, montés dans une chaîne de division (**). Avec N étages élémentaires de comptage on peut définir jusqu'à "2 puissance N" étapes, dans le cadre d'un cycle complet de fonctionnement (cf. notion d'automate fini). Cette chaîne de comptage sera donc associée à une logique de décodage des états compteur : dans ce but, on emploiera de préférence une logique à diodes (style 1N4004 ou 1N4007) pour réduire l'encombrement et le prix de revient: certes, on peut toujours s'amuser à fabriquer des fonctions NAND, NOR, XOR ... avec de simples relais, mais ça devient vite monstrueux (prix, encombrement, consommation électrique)
(**) à commande synchrone ou asynchrone, mais bonjour les "glitches" et les aberrations de fonctionnement, si la commande d'horloge est asynchrone
Pour constituer un diviseur par 2, en logique synchrone : une bascule D suffit, mais pour implémenter une bascule D il faut au moins 3 relais électromécaniques ... Plus un 4e relais supplémentaire, équipé d'au moins un jeu de contacts inverseurs, ceci pour inverser la polarité du signal DATA (quand la donnée n'est pas fournie par un jeu de contacts inverseurs, à la sortie de l'étage diviseur précédent)
Par rapport au schéma canonique de la bascule D à semiconducteurs (exemple - 1/2 de 74LS74) :
- pour inverser la polarité de la donnée d'entrée (signal DATA) on utilise un relais équipé d'un jeu de contacts inverseurs
- Chaque porte NAND sera constituée d'un relais équipé d'au moins un jeu de contacts inverseurs
- la bascule RS sera remplacée par un seul relais, dans un câblage quasi identique à celui de la fonction START/STOP (cf. contacteurs pour moteurs) : le bouton poussoir START étant remplacé par le jeu de contacts (NO) d'une des portes NAND, le bouton poussoir STOP étant remplacé par le jeu de contacts (NF) de l'autre porte NAND.
- le but de chaque porte NAND étant d'éviter qu'on puisse appliquer simultanément (sur les entrées de la bascule RS) le signal START et le signal STOP
Pour faire revenir le compteur à zéro : il suffit de couper l'alimentation des seuls relais de comptage ... En dehors des intervalles de temps ou le signal d'entrée est actif, d'où l'intérêt d'employer (en logique synchrone) une horloge dotée de plus de 2 phases, si l'on veut obtenir une RAZ bien propre, à partir d'un bête bouton-poussoir "RAZ".
II. Approche systématique : le Séquenceur Universel
- en logique synchrone, ce qu'on appelle "circuits de comptage" recouvre en réalité toute une famille de dispositifs, formes plus ou moins dégénérées du Séquenceur Universel
Un Séquenceur Universel réalise l'implémentation matérielle d'un graphe étapes-transitions
Sur le plan pratique ce séquenceur se divise en deux sections :
- l'étage d'entrée, purement combinatoire, destiné à encoder des combinaisons de signaux logiques sous forme de sommes de produits ; dans un circuit intégré programmable, cela est par exemple réalisé dans un PLA (Programmable Logic Array)- autrefois, au laboratoire ou à l'atelier (jusqu'aux années 70) et pour des signaux "lents" cela se faisait "en dur", sous la forme de matrices à diodes programmables : tableaux percés de trous, repérés en XY, puis équipés selon les besoins de diodes enfichables, que l'on insérait dans des jacks (cf. catalogues Ghielmetti)
- l'étage de sortie , constitué d'une couche de bascules D (ou JK), destiné à mémoriser les sorties (***) de l'étage combinatoire : une partie des données latchées sert à coder l'état interne du système, ces données participent à l'élaboration de l'étape suivante et sont donc réinjectées à l'entrée du système; les sorties restantes sont plus ou moins directement exploitables pour commander des actionneurs (moteurs, électrovannes, etc)
Pour activer tout cela, il faut au minimum une horloge à 2 phases, sinon 4 ...
(***) supposées stables, après un certain temps d'attente : si certains évènements externes surgissent de manière erratique (entrées asynchrones) il faut commencer par synchroniser les données correspondantes avec l'horloge du séquenceur, avant d'appliquer ces données synchronisées à l'entrée du séquenceur proprement dit
Conclusion : réaliser de but en blanc un compteur à relais, de nos jours, c'est juste une façon particulièrement vicieuse d'affoler les élèves des sections techniques ... Parce que ça pose à la fois des problèmes de principe (mieux vaudrait commencer par l'étude du Séquenceur Universel, sous sa forme canonique) et des problèmes pratiques de réalisation (pour être sûr que ça marche, mieux vaut prévoir dès le départ un montage de tout le matériel dans une très, très grande armoire, avec tous les relais montés sur rail DIN, un bloc d'alimentation spécial et des "LEDs témoin" partout, pour faciliter le déverminage en mode pas à pas).