Oui, le multiplexage et le charlieplexing ont tous deux leurs avantages et sont chacun les mieux adaptés à différentes tâches.
Le principal avantage du charlieplexing est qu'il peut être effectué sur un microcontrôleur de taille moyenne, entraînant plus de LED avec moins de broches d'E / S et potentiellement aucun matériel externe en plus des LED.
Désormais, l'avantage de «aucun matériel externe» ne s'applique qu'à un nombre relativement petit de LED, jusqu'à ce que vous atteigniez la limite actuelle de votre microcontrôleur, et il impose une limite de luminosité que les baies multiplexées n'ont pas. Si vous choisissez de ne pas utiliser de matériel externe, vous êtes généralement limité à piloter une seule LED dans la matrice à un moment donné - contrairement à un réseau multiplexé où vous conduisez une rangée complète à la fois.
Une fois que vous avez ajouté du matériel externe pour piloter les LED avec une luminosité plus élevée pour correspondre à celle d'un réseau multiplexé, charlieplexing perd son éclat.
Tout d'abord, un tableau multiplexé est strictement adressé par ligne et colonne; c'est très simple de le faire. Activez la ligne 1, activez toutes les colonnes de la ligne 1, désactivez la ligne 2, activez toutes les colonnes de la ligne 2, etc. En revanche, un réseau charlieplexed est beaucoup moins simple. Il y a toujours une ligne diagonale qui est inutile, et j'utilise personnellement des tables de recherche pour établir une relation entre mes tableaux et un tableau rectangulaire où je stocke mes données.
Deuxièmement, et un tueur, c'est que le charlieplexing nécessite généralement des pilotes à trois états. Le multiplexage, cependant, est effectué avec une logique binaire marche-arrêt stricte. Si vous avez un microcontrôleur à faible nombre de broches et que vous souhaitez piloter un large éventail de LED, il est simple d'utiliser des puces logiques externes (par exemple, un registre à décalage et / ou des pilotes de LED) pour contrôler les axes X et Y. La plupart des puces de type registre à décalage ne prennent pas en charge la tristation nécessaire pour faire la même chose dans un tableau charlieplexed. Des pilotes dédiés charlieplexed sont disponibles, mais ne sont pas aussi polyvalents.
Troisièmement, dans un réseau charlieplex, chaque broche qui ne fait pas quelque chose activement est toujours connectée aux LED via une connexion faible ("haute impédance"). Et bien que la connexion soit faible, elle n'est pas nulle. Supposons que vous ayez 25 broches d'E / S connectées à une grille de LED. Si vous allumez une LED - en prenant une de ces 25 lignes de haut et une de ces 25 lignes de bas, cela laisse 23 lignes à haute impédance. Chaque fois que la ligne d'E / S élevée passe par une LED vers une ligne neutre, il y a une possibilité de fuite de courant. Pas tant. Peut-être un microamp ici ou là. Mais avec des LED modernes et efficaces, cela suffit souvent pour créer des images fantômes visibles.
Quatrièmement, il est plus difficile de contrôler la luminosité des LED dans un réseau charlieplexed. Dans un réseau multiplexé, vous pouvez utiliser n'importe quel nombre de puces de pilote de DEL à «courant descendant» de régulation de courant qui régulent séparément la luminosité de chaque colonne, en utilisant la régulation de courant en combinaison avec un pilote PWM. Dans la mesure où les emplacements de matrice charlieplexed sont adressés individuellement et n'utilisent qu'une résistance par ligne ou colonne, il est beaucoup plus difficile d'effectuer une correction de la luminosité des points et une animation complète en niveaux de gris / couleur dans un réseau charlieplexed.