Tag Archives: multiplexer pwm

Comprendre le multiplexeur PWM TLC5940

A quoi sert le composant TLC5940 ?

Le composant TLC5940 est un multiplexeur PWM (Pulse Width Modulation) qui peut gérer jusqu’à 16 canaux PWM. Ainsi avec seulement 3 pins de votre Arduino vous allez pouvoir utiliser jusqu’à 16 canaux PWM.

Tout comme le composant Shift Register 74HC595, le circuit intégré TLC5940 peut être connecté en cascade, ce qui permet d’étendre considérablement le nombre de canaux PWM utilisables.

Cela va donc être parfaitement adapté à mon projet EasyLight pour multiplexer des leds RGB.

Comment utiliser le composant TLC5940 avec Arduino ?

Il existe une bibliothèque nommée TLC5940Arduino qui permet de contrôler simplement un ou plusieurs composants TLC5940 directement avec Arduino.

La librairie TLC5940Arduino peut être téléchargée sur ce site.

 Comment fonctionne le composant TLC5940 ?

Le plus simple pour comprendre le fonctionnement du composant TLC5940 est de lire la fiche technique TLC5940.

Voici le schéma du composant TLC5940:

TLC5940 pins

 

Comme on peut le voir, on a bien nos 16 sorties PWM (de OUT0 à OUT15). Voici le détail des autres pins:

  • XERR: open collector, wire or-ed output that lets you know a TLC5940 is over heated or has a burnt out LED. We can ignore this as it will always be on unless you have current using elements on all of the outputs.
  • SOUT: serial data out from the TLC5940. Unless you wish to try to read the error bits you do not need this to come to the Arduino. If you have more than one TLC5940 this is the line you daisy chain to the SIN of the next package.
  • DCPRG: this selects the source of the current limiter register, you could just tie it high.
  • XLAT: you will need this to latch data after shifting.
  • SCLK: you will need this to shift data.
  • SIN: serial in to TLC5940, this is the output from the Arduino.
  • VPRG: you need this to select either the current limit registers or the duty cycle registers for writing.
  • GSCLK: this is the clock for the PWM. We will reprogram TIMER2 in the Arduino to make this signal. That will cost us the native PWM on that timer, digital 11 on a mega8, 11 and 3 on a mega168.
  • BLANK: this marks the end of a PWM cycle in addition to blanking the output. We will reprogram TIMER1 to generate this signal. That will cost us the native PWMs on digital 9 and digital 10. (Tie a real, physical pull-up resistor on this line to keep things blanked while your Arduino boots. Depending on your hardware, it is possible that the TLC5940 would come up in a configuration that would dissipate too much power.)

 La broche 20 du TLC5940: IREF

Sur la broche numérotée 20 du composant TLC5940, il faut brancher une résistance. Pour trouver la valeur de la résistance à utiliser, il suffit d’appliquer la formule suivante:

valeur de la résistance = 39.06 / intensité de la LED

Ainsi dans le cas où l’intensité de vos leds est de 30mA, vous devrez utiliser une résistance de 1302 ohms. On utilisera donc une résistance de 2K ohms.

Si vous utilisez des leds avec des intensités différentes, prenez l’intensité la plus faible comme base.

Comment brancher le composant TLC5940?

Voici le schéma électronique de branchement du composant TLC5940:

tlc5940 schema electronique

Et le schéma de connection e ntre un Arduino et un composant TLC5940:

tlc5940 schema arduino

Comment brancher le composant TLC5940 en cascade ?

Un des intérêts à utiliser le multiplexeur TLC5940 est qu’on peut chainer plusieurs composants ensemble afin d’augmenter de nombre de canaux PWM. On dit alors qu’on met les composants TLC5940 en cascade.

Voici le schéma électronique:

tlc5940 schema electronique cascade

Et voici le schéma de connection entre plusieurs multiplexeur TLC5940 en cascade et un Arduino:

tlc5940 schema arduino cascade

Lorsque l’on utilise les multiplexeurs TLC5940 en cascade, il faut penser à modifier le fichier tlc_config.h de la librairie TLC5940Arduino:

Changez la ligne #define NUM_TLCS 1 pour #define NUM_TLCS n (ou n est le nombre de TLC5940 que vous avez chainé).

Conclusion sur le multiplexeur TLC5940

Les multiplexeurs TLC5940 sont des composants qui ne coûtent pas cher et qui permettent d’augmenter le nombre de canaux PWM de votre Arduino.

Ils sont relativement pratique si vous devez utiliser des leds RGB par exemple. Le schéma suivant illustre parfaitement leur utilisation:

tlc5940 schema led rgb

Attention toutefois lorsque vous utilisez des leds RGB avec le multiplexeur TLC5940 à verifier que vos leds soient à anode commune:

led rgb common anode