Charlieplexing (niveau 2)

Vous êtes ici
< Tous les sujets

Qu’est-ce que le Charlieplexing ?

Le Charlieplexing est une manière de s’adresser de manière individuelle à un certain nombres de leds pour pouvoir les contrôler séparément à partir d’un nombre réduit de broches.

Cette technique est très utile dans de nombreuses situations ! Si vous avez besoin d’afficher les informations d’état sur un petit microcontrôleur, mais vous ne disposez que de quelques broches sur votre PCB ou votre Arduino. Ou vous souhaiterez afficher contrôler une matrice de led ou un affichage d’horloge, mais vous ne souhaitez pas utiliser beaucoup de composants.

Comment marche le Charlieplexing ?

Contrôler des leds séparément est possible parce que les broches d’un microcontrôleur a trois états possibles :

  • High (+ / 5V)
  • Low (- / 0V)
  • Input (x / déconnecté)

L’état d’entrée (INPUT) sur votre circuit a une impédance élevée, nous pouvons donc le considérer comme déconnecté.

Qu’est-ce que l’impédance électronique? C’est la mesure de l’opposition qu’un circuit présente à un courant lorsqu’une tension est appliquée.

C’est un peu obscure encore ? Essayons d’allumer une seule led pour comprendre comment ça marche concrètement. Par exemple, sur notre schéma nous allons chercher à allumer la première led de notre circuit.

Nous allons utilisé seulement 3 broches (A, B et C) sur notre microcontrôleur pour contrôler 6 leds.

Le schéma suivant montre comment circule l’électricité dans notre circuit, et dans quel état sont les trois broches.

La broche A est en High, la broche B en Low et la broche C est en Input donc déconnectée. L’électricité va donc aller du + au -, sans passer par la broche C. Nous allumons ainsi la première led.

A quoi ça ressemble en vrai ?

Réalisez le montage suivant avec un Arduino et 6 leds.

Lorsque vous connectez et déconnectez les différentes broches, vous pouvez voir (sans même une ligne de code) que vous allez pouvoir allumer chacune des leds indépendamment les unes des autres.

Vous aurez probablement remarquer que j’ai ajouté des résistances entre les broches et les leds. Elles sont nécessaires si vous ne voulez pas tuer lentement vos leds parce qu’elles sont traversées par un courant trop puissant. Vous avez deux manières de positionner des résistances sur un circuit en Charlieplexing :

  • Lorsque les leds ont besoin du même voltage : entre les broches et les leds du circuit (comme j’ai fais dans ce montage)
  • Lorsque les leds sont différentes et n’ont pas besoin du même voltage : avant ou après chaque led, car celles-ci n’ont peut-être pas besoin des mêmes puissances de résistances.

Voici un tableau qui montre chaque état de chaque broche selon la led que vous souhaitez contrôler :

broche Abroche Bbroche Cleds
LOWHIGHX1
HIGH LOWX2
XLOWHIGH3
XHIGHLOW4
HIGHXLOW5
LOWXHIGH6

Comment savoir de combien de broches vous avez besoin pour combien de leds ?

Voici une formule assez simple pour vous aider, N représentant le nombre de broches : LED = N * (N-1)

Pour vous aider à mieux comprendre cette formule, réalisons un exemple ensemble. Mettons que nous voulons utiliser 4 broches.

N = 4
LEDs = 4 * (4-1)
LEDs = 12

Nous voyons donc qu’avec 4 broches nous pouvons contrôler 12 leds.

Voici un lien vers un tutoriel youtube [ENG] très bien expliquée pour vous aider !