Multiplexeur et variation d'intensité

Bonjour à tous,

J'aimerais réaliser une installation comportant 50-60 leds indépendantes, via plusieurs muliplexeurs ( HC595 ). Jusque là ça va, mais j'aimerais pouvoir faire varier l'intensité de chaque led .... indépendamment. J'ai vu (et testé) qu'on pouvait faire varier l'intensité d'une led en se servant des ports analog, mais est-ce possible de gérer ça via le multiplexeur ? Au niveau programmation ? ( ce qui me semble impossible, vu qu'on envoi un bit : 0 ou 1 ) ou au niveau électronique ?

Je m'y connais en prog, mais je découvre l'électronique et arduino depuis la semaine dernière ...

Merci d'avance pour votre aide

via plusieurs muliplexeurs ( HC595 )

Petite correction pour commencer, le HC595 est un registre à décalage pas un multiplexeur. C'est donc une fonction logique et comme tel tu ne peux pas lui faire remplir de fonction analogique.
Par contre tu peux jouer sur la luminosité perçue en modulant le temps que la LED est allumée.

Merci pour ta réponse. Par contre j'ai pas tout compris :

le HC595 est un registre à décalage pas un multiplexeur

Surement, mais après quelques recherches, je ne vois pas vraiment la différence entre les deux ... quelqu'un pourrait m'expliquer ?

Sinon pour les LEDS, le temps sous tension ne change rien ... j'utilise des diodes électroluminescentes CMS.

Quote:
le HC595 est un registre à décalage pas un multiplexeur

Surement, mais après quelques recherches, je ne vois pas vraiment la différence entre les deux ... quelqu'un pourrait m'expliquer ?

Un multiplexeur c'est un aiguillage. Tu entres une valeur sur une entrée et tu dis vers quelle sortie cette valeur doit être aiguillée. Les autres sorties ne sont pas impactées.
Un registre à décalage, c'est un moyen de faire passer un nombre important d'informations (8 dans le cas du 595) sur un seul fil (le fil de data). Pour rythmer les échange (dire à quel moment une data est valide) on utilise une horloge. On envoie les huit informations à la suite dans le circuit avec l'horloge et à un moment on lui dit affiche tout.

Sinon pour les LEDS, le temps sous tension ne change rien ... j'utilise des diodes électroluminescentes CMS.

Si si mais il faut le faire très vite.
Imagine que tu changes la valeur envoyée vers les LED plusieurs fois par secondes. Si une LED donnée reçoit toujours un 1 elle sera perçue plus lumineuse qu'une qui recevrait des fois 1 et des fois 0.
La seule contrainte c'est que les changements se produise à une fréquence supérieure à 25Hz pour que l'oeil ne perçoive pas le changement.
Par exemple si tu envoies en boucle la suite de valeurs ci-dessous vers des LED (soit en passant par un registre à décalage soit sur des LED connectées directement aux sorties de l'arduino):
11111111
11110000
11111100
11110000
11111100
Les LED connectées sur les 4 sorties les plus à gauche paraitront allumées à 100%, les deux suivantes à 60% et les deux dernières à 20%. C'est du multiplexage temporelle. Cela exploite la persistance rétinienne.

Encore une fois merci pour ta réponse.
Alors je vais essayer le 'multiplexage temporel', mais les diodes CMS, très petites, sont aussi très fragiles et à plus long terme j'ai peur de les griller ...

Donc sinon est-ce qu'il faudrait que j'utilise un 'vrai' multiplexeur ? Je pourrais faire ce que je veux, c'est-à-dire faire varier l'intensité de plusieurs diodes indépendamment ?

Bonjour,

Je me permet de vous redemander un peu d'aide : dans mon cas, est-ce que l'utilisation d'un 'vrai' multiplexeur pourrait faire varier l'intensité de plusieurs diodes indépendamment ?

Merci d'avance

Le problème avec un multiplexeur, c'est que si tu pilotes 50 ou 60 LED elles vont se trouver 1/50ème (ou 1/60ème) du temps non alimentées. Autant dire qu'elles ne vont pas s'allumer très fort.

Re-bonjour ! ( et merci fdufnews pour tes réponses )

Alors après moultes recherches, je suis tombé là-dessus : Arduino Playground - TLC5940

Ce petit engin bien pratique utilise 4 ports PWM, et permet de gérer 16 sorties. Je pense donc que cela pourrait résoudre mon problème, mais j'aimerais savoir une chose : vu que l'on utilise 4 ports PWM, on ne peut donc en brancher qu'une sur un circuit arduino, mais la doc affirme qu'on peut avoir jusqu'à 640 sorties ! Ça voudrait dire qu'on pourrait en monter 40 en série ? C'est pas un peu beaucoup ?

Merci de bien vouloir éclairer un peu ma lanterne !

vu que l'on utilise 4 ports PWM, on ne peut donc en brancher qu'une sur un circuit arduino

Dans l'exemple que tu cites sur le playground il y en a 2 de montés. Donc tu vois bien qu'il n'y a pas de problème. J'ai lu le truc en diagonal mais à priori les broches GSCLK et BLANK sont communes à tous les TLC5940 on le voit d'ailleurs sur l'illustration en haut à gauche avec les 2 TLC4950 montées en série.

Ça voudrait dire qu'on pourrait en monter 40 en série ? C'est pas un peu beaucoup ?

Si tu veux 640 LED tu en montes 40 en séries maintenant si tu en veux moins tu montes juste ce qu'il faut. Mais il faut prévoir l'alimentation en conséquence.

Okay, merci pour ces quelques précisions !
Une dernière chose, quand tu dis qu'"il faut prévoir l'alimentation en conséquence", tu parle uniquement des leds ou des leds + les TLC5940 ?

tu parles uniquement des leds ou des leds + les TLC5940 ?

LED et TLC. Quand on utilise plusieurs TLC leur consommation commence à ne plus être négligeable.