Commande des tubes nixie
utilisation pour alimenter des tubes nixie
TechTalk
Root » Serveurs » ElectroNique » Nixie » Interface arduino vers BCD

Sur cette page je veux vous montrer comment réaliser une horloge à affichage par tubes nixie. Tous les problèmes qu'on peut rencontrer en créant une horloge passent en revue.
-

-

Le schéma a été réalisé avec des composants de récupération ou trouvés au fond de mes tiroirs: il serait en théorie possible de réaliser un circuit plus optimal nécessitant moins de composant, mais le but ici était de "faire avec" ce que j'ai sous la main.

L'alimentation à commutation est décrite ici. Par rapport à un transfo classique, elle a l'avantage de moins consommer.

Pour commander les tubes nixie, on n'a pas vraiment le choix: il faut utiliser un circuit 74141 qui a été conçu spécifiquement pour cette tache, mais il y a des alternatives au 74141.

L'entrée du 74141 est un code BCD (binary coded decimal) sur 4 bits. Quand un code incorrect est fourni (par exemple IIII) aucun des chiffres de l'afficheur n'est alimenté.

Pour fournir 7 codes BCD, il faut 23 lignes de communication avec le processeur. C'est possible (certains petits microprocesseurs ont suffisamment de sorties), mais ce n'est pas élégant. L'arduino n'en a pas assez. De plus, il nous faut trois entrées pour pouvoir commander l'horloge (mise à l'heure). Et le microprocesseur doit de plus être connecté à une horloge qui garde l'heure même en cas de coupure de courant (real time clock avec une petite pile de 3V et un cristal de 32.768kHz).

On va utiliser 3 latches (mémoires) de type CD4099BE, ce qui nous permet de limiter le nombre de lignes de communication à 7.

  • La ligne W (write) permet de sélectionner la puce à accéder (la fonction correspond à un CE (chip Enable).
  • La ligne Data qui va vers toutes les puces indique s'il faut écrire un O ou un I
  • Les trois lignes Address qui indiquent quel bit de la puce doit être modifié.
Notre système a donc un bus d'adresse et de données, même si le bus de données ne fait qu'un bit de large!

Il faut ici un effort de programmation car nous utilisons une indirection. Pour écrire les secondes (unités) il faut donc sélectionner le latch 3 avec la lignes W correspondante. Il faut maintenant mettre en mémoire les 4 bits de portée la plus basse. L'adresse est un code BCD sur 3 bits, ce qui permet de sélectionner une des 8 lignes en sortie. Nous mettons à tour de role les 4 adresses sur le bus, la valeur à enregistrer et puis mettons la ligne W correspondante au niveau bas pour que la puce enregistre les données.

En pratique. Supposons que nous voulons allumer le chiffre 5 des secondes. Le driver 74141 doit recevoir le code BCD 0101 sur les lignes DCBA

  1. Mettre l'adresse 000 sur le bus adresse
  2. Mettre un 1 sur le bus data
  3. Attendre 1µs
  4. Donner on ordre d'écriture en mettant la ligne W au zéro pendant 1µs.
  5. Remettre la ligne W à 1 et attendre 1µs.
  6. Répéter l'opération pour l'adresse 001 (data = 0)
  7. Répéter l'opération pour l'adresse 010 (data = 1)
  8. Répéter l'opération pour l'adresse 011 (data = 0)
Pour allumer le chiffre 4 (BCD 0100) des dixaines de secondes, il faut:
  1. Enregistrer à l'adresse 100 une donnée 0
  2. Enregistrer à l'adresse 101 une donnée 0
  3. Enregistrer à l'adresse 110 une donnée 1
L'adresse 111 ne doit pas être utilisée pour les dixaines de secondes, puisque les dixaines de secondes vont de 0 à 5. Les entrées non utilisées du 74141 sont mises à la masse (0).

De plus, nous voulons fournir le jour de la semaine, mais nous avons un latch trop peu. Heureusement qu'il nous reste des lignes inutilisées: les dixaines de secondes et de minutes peuvent être encodées sous 3 bits et pour les heures nous avons assez avec deux bits. Cela nous donne 4 lignes, dont nous en utilisons 3 pour coder les jours de la semaine. La quatrième ligne peut par exemple être utilisée pour une alarme.

Pour faire clignoter un chiffre (chiffre sélectionné pour changer sa valeur) on transmet alternativement le code du chiffre et un code incorrect (aucune ligne sélectionné: chiffre éteint). Cela ne fonctionne même pour les jours de la semaine (1 à 7) où il y a un code non-utilisé, notament le code 000.

Tout cela complique la programmation, mais il est plus facile de changer une ligne de code que de remplacer une puce.

La puce CD4099BE est en technologie CMOS. C'est bien, cela ne consomme pratiquement rien, mais ce n'est pas très rapide, et sûrement pas sous 5V. Pour éviter les erreurs, il faut que chaque niveau soit stable pendant au moins 1µs avant de donner l'instruction d'écriture, qui elle aussi doit durer 1µs. Cette lenteur n'est pas un problème, car nous n'avons que 7 chiffres à écrire par seconde.

Si vous utilisez un cable plat pour relier le 74141 aux tubes nixie, faites attention: les sorties ne sont pas dans un ordre logique 12345.... Il vaut mieux souder le cable selon la position des pins et corriger le tir au soquet du tube (qui a des connections plus larges).

Cathode poisoning

C'est la cathode qui est éclairée, tandis que l'anode commune ne produit pratiquement pas de lumière.

Pendant le fonctionnement, de la matière se détache de la cathode et va se déposer sur les autres électrodes à proximité (donc les autres cathodes). C'est causé par le bombardement ionique (les électrons vont vers le plus (anode) tandis que les ions vont vers la cathode négative). Cela s'appelle l'empoisonnement de la cathode (cathode poisoning). Cet effet se produit éaglement avec les tubes électroniques.

Les cathodes qui ne sont pas utilisées sont recouvertes par de la matière mauvaise conductrice en provenance des cathodes actives. Le tube nixie éclaire moins à cet endroit. L'effet est le plus présent à l'endroit où la cathode incriminée se trouve près des autres cathodes qui sont plus souvent actives.

Les particules qui se détachent peuvent également se déposer sur le verre, lui donnant une teinte grise. Cet effet est moins prononcé.

On peut réduire ce problème en utilisant les cathodes in criminées à une puissance plus élevée (par exemple 30mA au lieu de 15mA) jusu'à ce que l'effet n'est plus visible.

Une autrepossibilité est d'utiliser ces cathodes à un moment où personne ne regarde l'écran (en pleine nuit). Un temps de fonctionnement de 2% serait suffisant pour éviter l'effet.

La suite: La technologie CMOS ou TTL

L'arduino peut également être utilisé pour commander une installation de chauffage.

Publicités - Reklame

-