Horloge VFD

Bonjour

Je vous présente mon projet « Horloge VFD » finalisé.

A travers cet article, je vais expliquer le fonctionnement électronique de l’horloge et des tubes VFD que j’ai utilisés sur celle-ci.

Bonne lecture et à bientôt pour voir la suite de mes projets en cours 🙂


Pour commencer, voici quelques photos de l’ensemble :

1] Tubes VFD IV-12 (ИВ-12) :

Les tubes VFD (vacuum fluorescent display) que j’ai sélectionnés pour cette horloge, sont des afficheurs qui étaient utilisés dans les années 80.

Ils ont la particularité d’être très résistants au froid. Ils étaient notamment utilisés en URSS.

Cela permet de leurs donner une seconde vie et je trouve qu’ils sont beaux.

Vous pouvez les trouver à l’achat sur ebay. Les vendeurs se trouvent souvent en Russie ou en Ukraine.

Ces afficheurs sont composés d’une cathode chauffée (filament), d’anodes et d’une grille. Le tout est scellé dans une enveloppe de verre où règne un vide poussé.

Leurs fonctionnement sont assez similaire à une triode (avec chauffage direct). La cathode chauffée permet la libération de ses électrons de son support.

La grille permet de favoriser ou restreindre le passage des électrons, cela permet notamment de pouvoir faire du multiplexage.

Lorsque la grille est une anode sont au potentiel positif, les électrons frappent la partie fluorescente du segment commandé.

Sur une triode, une faible variation de tension de la grille permet une plus grosse variation du courant récolté par l’anode.

C’est le premier dispositif d’amplification d’un signal électronique qui a été inventé (par Lee De Forest en 1906).

La cathode doit être alimentée par une tension de 1.5V ±0.15V et consomme un courant de 100mA ±10mA.

La cathode se trouve à l’avant de l’afficheur, elle s’éclaire très faiblement et ne perturbe donc pas la lecture.

Une connexion est faite en bas de l’afficheur et une autre est en haut et passe par l’arrière de celui-ci.

Cathode (filament) alimentée

Connexion des anodes et passage de la connexion de la cathode jusqu’en haut de l’afficheur

La grille se trouve entre la cathode et les anodes.

Les anodes et la grille doivent être alimentées par une tension de 25 à 30V.

La grille consomme un courant de 12 à 17mA et les anodes (segments) un courant inférieur à 1mA.

Des documentations sont disponibles en fin d’article (en russe), j’ai réalisé la traduction des caractéristiques :

Toutes les documentations sont disponibles en fin d’article.

Sur les photos suivantes, nous pouvons observer la grille et le filament :

2] La carte électronique :

Comme indiqué dans l’article précédent, j’ai testé les services du site PCBWay pour la fabrication du PCB.

Je n’ai pas eu de problème sauf pour les perçages du connecteur d’alimentation mais je me suis rendu compte que le GERBER n’était pas très clair à ce propos.

J’ai donc fait les perçages avec ma mini perceuse (dremel), comme c’est du double face pas de problème pour procéder ainsi.

Les fichiers GERBER sont disponibles en fin d’article.

Photos de la carte avant et après soudage des composants

J’ai réalisé des horloges il y a quelques années avec un PCB fabriqué par moi même.

Je fournis les fichiers en fin d’article pour que vous puissiez la fabriquer plus simplement.

2-1] Description :

Cette horloge intègre :

  • un microcontrôleur PIC18
  • quatre tubes VFD
  • un driver VFD
  • cinq LEDs
  • un driver LED PWM
  • trois alimentations
  • un RTC
  • une pile de sauvegarde
  • un capteur de lumière
  • un capteur de température
  • deux amplificateurs opérationnels
  • quatre boutons poussoirs

2-2] Les alimentations :

Pour cette application, il faut intégrer :

  • une alimentation 5V pour le microcontrôleur, le RTC et les amplificateurs opérationnels.
  • une alimentation 1.5V 500mA pour les cathodes des tubes VFD
  • une alimentation 30V 150mA pour les anodes et la grille des tubes VFD

L’alimentation 5V est faite par un régulateur linéaire en boitier SOT89.

Il n’est pas facile de créer une alimentation 1.5V avec un courant de sortie de 500mA. Cette consommation de courant est due à l’alimentation des 4 cathodes (4 x 110mA max).

J’ai choisi d’utiliser le circuit MC34063 qui convient très bien pour le faire. Il est configuré en montage « step-down ».

Pour l’alimentation 30V, j’ai choisi d’utiliser le même circuit. Il peut être également configuré en montage « step-up ».

2-3] Les « driver » VFD et PWM :

Pour la gestion des tubes VFD, j’ai utilisé un circuit spécialisé : Le MAX6934.

Il permet de commander jusqu’à 32 grilles/anodes via une interface série.

Il permet d’utiliser une tension allant de 8 à 76V. Il est possible d’en mettre plusieurs en série.

Pour cette application, toutes les sorties sont utilisées (4 x 7 anodes + 4 x 1 grille).

Il existe des circuits avec moins de sorties dans la même famille de composants chez Maxim integrated.

Les tubes sont montés sur des petits supports qui conviennent parfaitement pour leur maintien mécanique et pour compenser la hauteur des LEDs.

Ce sont des picots que j’ai récupérés il y a plusieurs années et je n’arrive pas à retrouver les mêmes. Si vous avez une source merci de m’en informer 🙂

Pour la gestion des LEDs RGB, j’ai choisi d’utiliser un circuit PCA9685 du fabricant NXP.

J’ai déjà utilisé ce circuit dans plusieurs projets : L’horloge RGB et le sapin de Noël.

Il permet de contrôler 16 LEDs en PWM 12 bits via un bus I2C. Dans cette application 15 sorties sont utilisées (5 LEDs x 3 couleurs).

Les LEDs sont couplées à un transistor MOSFET.

Cela permet d’alimenter les LEDs en 12V et de ne pas augmenter la consommation en courant en sortie du régulateur 5V.

Attention ! Les LEDs sont en anodes communes.

La LED des secondes a été montée sur deux supports LED. Ce sont les mêmes que j’avais utilisés sur l’horloge RGB. Ils avaient été achetés sur ebay.

2-4] Les capteurs et leur amplification :

L’horloge intègre deux capteurs : un capteur de lumière et un capteur de température.

Le capteur de lumière permet de détecter une baisse de lumière et de pouvoir éteindre les LEDs la nuit (pour éviter une pollution lumineuse).

Une option de réglage permet la gestion de l’éclairage des LEDs. Trois modes sont disponibles (voir la vidéo).

Le capteur de lumière utilisé est une photorésistance. Il est monté sur un pont diviseur de tension puis amplifié via un circuit AOP non-inverseur.

Le montage non-inverseur à un gain de 2.

La sortie du montage est reliée à une entrée ADC du microcontrôleur.

Je vais ajouter un réglage sur l’horloge afin de pouvoir ajuster le niveau de détection car cela dépend de l’emplacement de celle-ci.

Le capteur de température utilisé est un LM35.

Il a été placé à l’opposé des alimentations pour éviter de perturber la mesure au cas ou les alimentations chauffent (et c’est le cas).

Le montage non-inverseur a un gain de 4,9.

La sortie du montage est reliée à une entrée ADC du microcontrôleur.

La tension de sortie du capteur est proportionnelle à la température (10mV par °C).

Ce montage peut être donc utilisé pour une plage de température allant de 0° à 100°C.

Les capteurs ont été montés avec un support LED pour leur maintien mécanique. J’ai utilisé les mêmes que sur la LED des secondes.

2-5] Le circuit RTC :

Le circuit RTC (real-time clock) permet la gestion de l’horloge en temps réel. C’est lui qui stocke les heures, les minutes, les secondes…

Le circuit choisi est un PCF8563 du fabricant NXP.

Une pile 3V et une double diode permettent de garder le circuit RTC alimenté lors des coupures de courant.

Quand la tension 5V est présente la diode D3 est passante et la diode D4 est bloquée (tension cathode supérieure à anode). La pile n’est pas utilisée.

Quand la tension 5V n’est pas présente la diode D3 est bloquée et la diode D4 devient passante. La pile n’est pas utilisée pour alimenter le RTC.

Cela permet de sauvegarder l’heure et de ne pas régler l’horloge à chaque coupure d’alimentation.

La pile est de référence CR2032 et est placée dans un support qui permet de la changer facilement.

Un quartz de 32.768kHz est nécessaire pour le fonctionnement du RTC. Il a été monté dans un support LED pour son maintien mécanique.

2-6] Le microcontrôleur :

Le choix du microcontrôleur a été fait en fonction de ce que j’avais en stock et au nombre d’entrées/sorties nécessaires.

Mon choix s’est porté sur un PIC18F2520 du fabricant Microchip.

Désormais, j’ai plus l’habitude de travailler sur du STM32 mais une petite piqûre de rappel ne fait pas de mal 🙂

Il est couplé à un quartz externe de 20Mhz.

2-7] Les boutons poussoirs :

Quatre boutons poussoirs sont présents pour permettre de régler l’horloge (heures/minutes, éclairage).

Un manuel d’utilisation est disponible dans les fichiers en fin d’article.

Il est aussi possible de voir les possibilités de réglages dans la vidéo qui suit.

3] Vidéo de présentation :

Voici une vidéo de présentation de l’horloge qui reprend sommairement les explications précédentes et permet de voir son fonctionnement.

4] Fichiers et liens :

Voici la liste des fichiers et liens utiles pour la réalisation et la compréhension de cet horloge :

PCB et montre connectée ?

Bonjour,

J’ai eu l’occasion de tester un service de fabrication de PCB, PCBWAY.com.

J’en ai donc profité pour fabriquer des horloges VFD que j’avais déjà présentées.

J’ai modifié le routage car sur les premières que j’ai fabriquées, j’avais eu des contraintes de routage dues à la fabrication des cartes par mes propres moyens.

Les PCB sont de bonne qualité et la communication avec les différents services est aussi de qualité.

Je vais fabriquer les horloges et je referai un article avec un retour d’expérience sur le montage.

J’en profiterai pour partager le schéma/routage de la carte ainsi que le programme du PIC.


Il y a quelques temps, j’ai vu qu’il existait des petits écrans ronds.

J’ai demandé à un fabricant (Maclight) s’il pouvait m’envoyer un échantillon et il a gentiment accepté.

J’en ai donc profité pour choisir un écran TFT rond de 1.54 pouces de référence MLT015Q24-CTR3. Il a également un dalle tactile capacitive.

Le fabricant a également accepté de m’envoyer un écran de 1.69 pouces de référence MLD169-160128C.

Quand j’aurais bien avancé mon projet d’horloge connectée, je me lancerais probablement dans un projet de montre connectée.

J’ai déjà quelques éléments qui pourraient être intégrés dans ce projet :

En haut à droite, c’est un module Bluetooth de chez microchip (BM71).

En bas à droite, c’est un oxymètre de pouls de chez Maxim (MAX30101)

J’attends également un module GPS miniature, mais il va falloir réfléchir à l’emplacement de l’antenne 50 ohm si je décide de l’intégrer.

A bientôt 🙂

Télécommande IR

Bonjour,

Pour mon horloge VFD qui est en cours de réalisation, j’ai fabriqué une télécommande infrarouge.

Un récepteur infrarouge TSOP138 a été prévu pour le réglage de l’horloge à distance.

Fabrication

J’ai commencé par choisir le boîtier de la télécommande, j’ai sélectionné la référence 2955-40GNL du fabricant CAMDENBOSS car il ne coûte pas cher (moins de 5€).

camdenboss 2955-40r-4 Details du boitier

Il est équipé de 4 touches et d’un conducteur de lumière pour une LED, le seul inconvénient est que le circuit va avoir une forme complexe à dessiner sur un logiciel de CAO électronique.

Grâce à la documentation du boîtier, j’ai réalisé le PCB avec un logiciel de CAO mécanique. J’ai ainsi pu importer un fichier DXF dans le logiciel de CAO électronique et avoir le contour de la carte.

PCB boitier 3D Boitier dxf

Pour le découpage de la carte, j’ai utilisé une dremel et une lime.

Telecommande IR Telecommande IR

Fonctionnement

La télécommande est principalement constituée d’un PIC16LF1906, d’un LMC555 et d’un circuit de portes logiques SN74AUP1G57.

schéma_principe

  • Le PIC permet de faire la détection des touches, de gérer les alimentations des autres circuits, d’envoyer la trame de données et d’allumer la LED de visualisation.
  • Le CI LMC555 permet de générer un signal de 38kHz avec un rapport cyclique de 3/4.
  • Le CI SN74AUP1G57 permet d’inverser le signal du LMC555 et d’envoyer les trames de données commandées par le PIC.
  • Le transistor MOSFET permet de couper l’alimentation du CI LMC555 et CI SN74AUP1G57 lors de la veille de la télécommande.

Code RC5

J’utilise le protocole RC5 qui est très utilisé pour les télécommandes infrarouges.

Le récepteur que j’utilise fonctionne avec une porteuse de 38kHz.

tsop1838

Le code RC5 se compose d’une suite de 14 bits envoyés en code biphase. La trame est composée d’une porteuse à 38kHz qui a un rapport cyclique de 1/4.

sous porteuse

code-biphase

La composition de la trame est la suivante :

  • 2 bits toujours à « 1 » qui servent à la synchronisation.
  • 1 bit de répétition. Il change d’état à chaque nouvel envoi de code.
  • 5 bits d’adresse. Ils permettent la sélection de l’appareil à commander.
  • 6 bits de code qui permettent de choisir la commande désirée.

trame rc5

Exemple de trame RC5 :

exemple rc5

La trame dure 24.892ms (14×1778µs). La trame suivante ne sera émise que 88.886ms après la fin de la précédente.

trames_rc5

Voici quelques relevés faits sur la télécommande :
lmc555
code_pic
trame_555
Ce dernier relevé est le mixage des deux autres signaux (forme de la trame et porteuse de 38kHz).

Voici le signal émis par la télécommande et celui reçu par le capteur infrarouge.
trame_emt_rect

Gestion de l’autonomie de la pile

Pour que la pile de la télécommande dure le plus longtemps possible, il faut faire attention à la consommation en courant.

Lorsqu’il n’y a pas d’appui sur une touche de la télécommande pendant au moins 5 secondes, les alimentations des CI LMC555 et SN74AUP1G57 sont coupées par le transistor MOSFET et le PIC passe en veille.

Ce système fonctionne assez bien puisque la consommation est de 1.1µA en veille.

consommations

Il me reste à faire la détection d’une tension trop faible sur la pile (Brown out reset) et le décodage de la trame par l’horloge.