Il existe plusieurs méthodes qui peuvent être utilisées pour piloter un grand nombre de LED à partir de quelques broches IO.
Le plus simple est le multiplexage d'affichage ligne / colonne standard. Avec cette technique, vous pouvez piloter LED avec broches IO. Mathématiquement, le rapport cyclique est: n(n/2)2n
1minimum(unique row patterns, unique column patterns)
Cela signifie que cette technique a un rapport cyclique de 100% lorsque toutes les LED sont allumées (ou toutes les lignes ou toutes les colonnes sont identiques) et un rapport cyclique de lorsqu'une ligne diagonale doit être allumée (ou toutes les lignes sont différentes ). Vous n'êtes garanti que 100% du cycle d'utilisation lorsque vous allumez chaque LED ou une LED (ou zéro LED, mais cela ne compte pas vraiment pour beaucoup).1/n
Charlieplexing est un peu plus complexe . Avec cette technique, vous pouvez piloter LED avec broches IO. Seules LED peuvent être allumées simultanément avec cette technique. Mathématiquement, le rapport cyclique est:n n - 1n2−nnn−1
1minimum simultaneous sets
où un ensemble simultané est un groupe unique de LED qui a une anode commune ou une cathode commune. (Cela n'a pas été prouvé, c'est juste ce à quoi je suis arrivé après avoir réfléchi au problème pendant une minute. Si le rapport cyclique est important pour vous, vous voudrez approfondir cela.) Il s'agit d'un calcul beaucoup plus complexe à la fois intellectuellement. et par calcul que le calcul équivalent pour le multiplexage standard. En effet, vous obtenez un rapport cyclique de lorsque toutes les LED sont allumées, mais certains (seulement certains) modèles de n-1 ou moins de LED peuvent avoir un rapport cyclique de 100%. Vous n'êtes garanti que 100% du cycle d'utilisation lorsque vous allumez 1 LED.1/n
La dernière méthode que je mentionnerai consiste à utiliser un registre à décalage ou un extenseur IO. Avec deux broches (soit l'interface de données brutes / horloge, I2C ou SPI unidirectionnel), vous pouvez contrôler un nombre arbitrairement élevé de LED. Le rapport cyclique pour n'importe quel modèle est de 100%, mais le taux de mise à jour est inversement proportionnel au nombre de LED. C'est la méthode la plus coûteuse. Pour 15 LED, il sera probablement moins cher de simplement passer à un micro avec autant de broches IO.