Sand glass traffic light

Il y a quelques années, j’étais tombé sur un article qui montrait un feu tricolore totalement repensé. J’avais trouvé l’idée tout simplement excellente!

sandglass_signal3

Exit les 3 ampoules classiques! Le tout est remplacé par un sablier en LED qui donne une estimation du temps des différentes phases.

En explorant les méandres de mon cerveau, je suis retombé sur ce concept et je me suis dit que cela devait être réalisable avec un Arduino, des LEDS et un peu d’électronique.

Je me suis donc penché sur le sujet et j’ai essayé de tirer les grosses lignes de ce projet.

Le design

Capture d’écran 2016-05-17 à 01.04.20

A partir du dessin, j’ai dessiné la matrice de leds. Je n’ai pas exactement le même nombre mais j’ai fait en sorte que cela tombe bien. Et c’est le cas: 400 leds tout pile!

Je n’ai pas encore dessiné les contours mais ce n’est pas important pour l’instant, je me concentre avant tout sur l’aspect technique. Vu que je commande mes leds sur Ebay  j’aurai entre 15 jours et un mois pour terminer le design à mon aise 🙂

La technique

Je vais devoir utiliser des leds RGB (des diffuses pour que ça ne soit pas trop agressif pour les yeux). Ok!

C’est la que les choses se corsent. Comment gérer toutes ces leds? Anode ou cathode commune?

Ca paraît évident, on va devoir multiplexer le tout. J’ai déjà utilisé des SN74HC595 pour multiplexer des leds ou des afficheurs 7 segments (je détaillerai une autre fois ce projet). Un 595 ne peut gérer que 8 sorties par circuit. Il y a en plus 3 couleurs par led à gérer.
Un rapide calcul nous donne: (400leds/8 sorties)*3 couleurs = 150 circuits intégrés!! Arghhh!! Sans compter les 3 résistances par LED => 1200 résistances de 330 Ohm!

Bon il va falloir raisonner autrement.

J’ai décidé de m’inspirer des cubes de leds. Je tombe sur un projet plutôt bien détaillé: un cube de 8x8x8 leds RGB. Je me concentre surtout sur la partie commande et là je trouve exactement ce que je voulais: le pilotage des leds se fait à l’aide de drivers de leds (pléonasme?).

Je repart donc à la recherche d’infos et je découvre un circuit que me convient: le TCL5940.

Je découvre qu’il n’y a plus besoin de s’embarrasser de résistances pour chaque led, le circuit le fait pour nous! Il suffit de lui donner le courant de référence qui traverse chaque led (ex: 20mA) et c’est tout!

Pas mal non?

Ce que je retiens de ce circuit:

  • Alimentation de 3 à 5,5v
  • 16 sorties
  • Gère la PWM
  • Fournit un courant stable et défini à l’aide d’une résistance
  • Possibilité de gérer certaines erreurs (T°, leds cramée) à l’aide de flags spécifiques.

 

Là on progresse bien.
Il existe une librairie Arduino qui gère ce circuit. En me renseignant sur son fonctionnement, j’apprends qu’il est préférable d’utiliser des leds à anode commune.

Voilà qui répond à une autre de mes questions. J’ai donc commandé mes 500 leds à anode, histoire de potasser un peu mon projet pendant la livraison.

J’ai ensuite commencé à déterminer des blocs de 16 leds. 400/16= 25 tout rond!

Prochaine étape: potasser sur le multiplexage du tout. Je pense avoir trouvé le fonctionnement mais ça sera pour un autre jour, il est temps pour moi de rejoindre les bras de Morphée.

Publicités