Horloge connectée – Carte LED

Bonjour,

J’ai pas mal travaillé sur mon projet d’horloge connectée (voir article précédent).

1] La carte LED

J’ai réalisé le routage de la carte contenant les LED et les drivers de LED. Je l’ai ensuite faite fabriquer par SEEDSTUDIO, le résultat est très satisfaisant pour le prix ! (une 30 aine d’euros pour 5 cartes).

Il faut être un peu patient (3 semaines) car les cartes sont fabriquées en Chine.

J’ai fait fabriquer cette carte car il y a trop de vias pour que je la fasse moi-même.


J’ai soudé les composants moi-même sauf pour les circuits intégrés car ils ont un PAD en dessous pour la dissipation de chaleur.

J’ai fait quelques essais avec une station à air chaud et je pense que c’est faisable. Je n’ai pas pris le risque car les circuits coûtent assez chers (5€ par circuit).

Sur le premier emplacement, j’ai mis de la crème à braser et j’ai chauffé par en dessous, la soudure s’est bien faire.
Sur le second emplacement, j’ai mis de la crème à braser et j’ai mis un petit morceau d’époxy cuivré. J’ai chauffé et la soudure c’est bien faite.

2] Fonctionnement

Les 192 LED RGB sont pilotées par 3 drivers TLC5947. Ils peuvent piloter 24 LED (ou 8 LED RGB) en courant constant et avec un réglage PWM sur chacune d’elles (sur 12 bits par LED).

Un multiplexage des lignes est réalisé par le microcontrôleur, cela permet d’avoir une consommation de courant moins élevée. Elle est de 1.5A avec un éclairage blanc à 100%.

Pour réaliser le multiplexage, j’ai utilisé des transistors PMOS (FDN302P) et un circuit multiplexeur 74HCT138.
Le microcontrôleur étant alimenté en 3V3 et les drivers en 5V, le circuit permet de faire l’adaptation de tension mais aussi d’inverser les commandes des PMOS.

Pour l’adaptation de tension des signaux de commande des drivers, j’ai utilisé un circuit 74HCT125.


J’ai commencé à monter les différents éléments de l’horloge sur une carte essai pour pouvoir faire le développement SOFT avant de faire le routage de la carte microcontrôleur.

Il y a une carte NUCLEO avec un STM32F446, un module WIFI ESP8266, une carte SD, un module UART et une carte d’adaptation pour la carte LED avec les deux circuits cités ci-dessus.

Il devrait bientôt y avoir un module BLUETOOTH BM20 et une carte de gestion son avec un bus I2S (avec un PCM5122).

3] Mise au point

J’ai eu quelques soucis de scintillement au début de la mise au point.

J’ai d’abord fait des réglages de vitesse du multiplexage mais, même en allant vite (1 ms), le scintillement était encore présent.

Les 3 circuits sont en série et sont commandés avec une liaison série (clock/data). Je me suis donc demandé si le microcontrôleur et les drivers étaient assez rapides pour un changement entre chaque ligne.


Il y a 12 bits envoyés par LED et donc un total de 864 bits (12 bits x3 couleurs x24 LED), ceci est fait en moins de 300µs, ce qui est rapide. Ce n’est donc pas le problème.

En vérifiant les alimentations des lignes commandées par les transistors PMOS, j’ai observé deux autres problèmes :

  • Le premier est un problème de parasitage sur l’alimentation, les drivers de LED sont les principaux responsables car il y a beaucoup de commutations internes pour piloter les sorties en PWM.
    J’ai ajouté des condensateurs chimiques à proximité des circuits et ai tenté d’améliorer les liaisons des plans de masse.

  • Le second est un problème de commutation des transistors PMOS.

    Un effet capacitif est présent entre la source et le drain ce qui pouvait poser problème lors de la coupure des alimentations de ligne. J’ai ajouté une résistance entre de drain et la masse ce qui a amélioré la commutation.


    Voici les signaux sans résistance (jaune) et avec résistance (bleu).

    Malgré mes améliorations sur la carte, le problème était toujours présent. J’ai donc cherché une solution SOFT.

    J’ai réussi à éliminer le problème en utilisant la commande « BLANK » des drivers LED. En coupant l’alimentation de toutes les LED avant le chargement des données et en la remettant après, le problème de scintillement a disparu.

    J’ai ensuite réglé la vitesse du multiplexage à 2 ms.

    Pour avoir l’effet « pixels carrés », j’avais envisagé de mettre une grille et un filtre devant les LED (voir article précédent).

    J’ai fait imprimer une grille :

    J’ai ensuite mis un filtre devant la grille mais le résultat ne me convient pas encore, la lumière étant pas assez homogène sur les « pixels ».

    Je vais essayer de trouver une autre solution pour le/les filtre(s).

    4] La suite…

    J’ai aussi travaillé sur la modélisation 3D de l’horloge, je trouve cette étape importante pour avoir une idée du résultat final et pour prendre certaines décisions.

    Pour diffuser du son (musiques de notifications, ect…), j’ai choisi un petit Haut-parleur de la marque VISATON : le BF45.

    Je ne pense pas que la qualité sonore soit extraordinaire avec cet Haut-parleur mais je pense que cela sera suffisant.

    Je vais donc me mettre au développement SOFT, ce qui représente pas mal de travail si je veux faire ce que j’ai en tête.

    A bientôt

  • Horloge connectée

    Bonjour,

    Depuis quelques temps, je travaille sur un nouveau projet d’horloge.

    L’idée est partie d’une vidéo que j’ai vu sur internet, un essai de l’horloge « LaMetric Time » :

    C’est une horloge connectée est entièrement programmable, j’aime beaucoup son fonctionnement et son utilisation. Je ne vais pas reproduire le fonctionnement complet de celle-ci.

    Mon projet va reprendre le même genre d’affichage à LED RGB. Elle aura une connexion WIFI via un module esp8266, un haut-parleur pour pouvoir écouter des MP3.

    J’ai commencé à faire des tests pour l’affichage des 192 LED RGB.

    Mon premier test avait pour but de vérifier la diffusion de la lumière, j’ai donc acheté une plaque avec 64 LED WS2812 et j’ai modélisé et imprimé un cache.

    Pour diffuser la lumière, j’ai démonté un écran LCD pour récupérer les feuilles qui diffusent la lumière du backlight.

    Le résultat me convient, la diffusion de lumière est homogène et j’ai bien « l’effet » pixels carrés.

    Pour éviter une consommation de courant élevée, je n’ai pas retenu les LED de type WS2812.

    Je choisi une solution à base de LED RGB traditionnelles en boitier CMS 5050 et je vais les commander avec trois circuits TLC5947. Je vais également utiliser un multiplexage des lignes.

    J’ai trouvé sur ebay une carte avec un circuit TLC5947. Je l’ai montée avec une matrice RGB et je vais pouvoir faire des essais de fonctionnement de ce circuit et voir si avec le multiplexage, je ne perds pas trop de luminosité.

    Je vais faire fonctionner cette carte avec une carte de développement STM Nucléo.

    L’année dernière j’ai investi dans un oscilloscope numérique RIGOL et je vais pouvoir partager des captures de signaux de celui-ci.

    A bientôt pour la suite du projet.