je me suis fait une petite station de controle pour un train electrique.
Ca commence à bien fonctionner mais je voudrait faire un pupitre de controle facilement déportable à base de boutons poussoir et de leds.
Je souhaiterai utiliser le moins de fils possible entre l'Arduino et ce pupitre (dans l'idéal moins de 8)
J'ai trouvé une solution pour multiplexer les leds à l'aide d'un controleur d'affichage (eventuellement MM5451) mais je cherche une solution pour multiplexer mes poussoirs (entre 15 et 20)
normalement les leds actuelles fonctionnent à 5mA, donc ça convient
0,5) si t'as pas peur, il y une solution avec un module à tlc5947, qui t'éviterait d'utiliser des résistances pour les leds
il en faudra quand-même une pour les boutons. Autre inconvénient, il faudra 4 fils pour le spi et retour des boutons (au lieu de 2 pour l'i2c)
Oui soit tlc5947 ou alors à base de PCA9685 qui vous donne 16 PWM à courant constant. Utilisé pour des servo souvent il peut être utilisé pour des LEDs à anode commune (current sink).
Le PCA9685 est en I2C et aussi chaînable (on peut en associer jusqu’à 62 donc 992 sorties PWM
oui aussi, une solution mcp23017 pour les boutons + pca9685 pour les leds, est des + sensées
... je pense à une autre solution : mcp23017 + tlc5947, où les 3 lignes d'entrée du tlc5947 sont commandées par 3 sorties du mcp23017
-> ça me plaît bien, alors j'ai fait un dessin
je suis parti d'un dessin existant, alors on va du bas vers le haut
j'ai mis 8 volts par exemple, dans le cas où l'on dispose d'une alim quelconque, pas forcément régulé ; mais si on a une alim 5 volts cela simplifie encore les choses. Le but est de ne pas utiliser le 5 volts de l'arduino, mais le régulateur intégré au module à tlc5947
il n'y a que 4 fils entre la base et le tableau
on peut chaîner des tlc5947 et ajouter des mcp23017 si besoin
autres avantages du tlc5947, on dispose de 24 sorties pour les leds, et on peut peaufiner le réglage du milliampérage
un inconvénient toutefois : pour changer la luminosité d'une led, le travail de l'arduino est conséquent (et peu gratifiant), mais cela ne devrait pas poser de problème de timing pour cette application (je connais assez bien), à condition aussi que l'arduino n'a pas trop de travail par ailleur
tu peux tout faire en n'utilisant que des mcp23017. Dans ce cas, pour les leds, il faut ajouter des résistances à calculer en fonction de la couleur de chaque led
si tu veux la possibilité de varier l'intensité lumineuse par l'arduino, il faut du pca9685. Ici les résistances ne sont pas indispensables, mais je les préconise pour ajuster le courant au mieux, cad. 5 mA au lieu de 9 mA. Elles seront à calculer en fonction de la couleur de chaque led, en tenant compte des résistances déjà présentes sur le module
des bibliothèques i2c, c'est l'avantage d'arduino, existent pour simplifier au maximum la vie du programmateur, mais c'est en effet une bonne chose de se documenter un peu avant
Je me demandais justement si il y'avait un intérêt à passer le signal I2C destiné au MCP23017 à travers le TLC5947(pour la régulation je suppose)
J'ai commandé un MCP23017. je verrais bien si je m'en sors. A priori, si'j'arrive à en faire travailler 1, ça a pas l'air trop compliqué d'en rajouter derriere.
le tlc5947 ne fonctionne malheureusement pas en i2c, mais avec un protocole spécial qui nécessite 3 fils
mon idée c'était d'éviter de rajouter ces 3 fils entre l'arduino et le tableau, en faisant fabriquer les 3 signaux de commande du tlc5947 par le mcp23017 (les 3 flèches sur le dessin) mais la simplification de câblage entraîne une complication du logiciel, qui n'est pas rentable en termes d'heures de travail (ou de loisir), donc on laisse tomber
à signaler les modules à SX1509 qui font à la fois commande pwm pour les leds et prise en compte de clavier / boutons
on ne peut pas tout avoir, les inconvénient par rapport au tlc5947 sont qu'il fonctionne en 3v3 et qu'il faut des résistances pour les leds
mais il a aussi des fonctions comme les "dimming et blinking" qui peuvent être intéressantes, entre autres en modélisme ferroviaire, notamment pour les signaux lumineux
OK oui alors un mcp23017 pour les boutons (16 boutons possibles) + deux PCA9685 pour les LEDs (32 LEDS possibles) ça devrait le faire, les deux sont en I2C