Es gibt verschiedene Methoden, mit denen eine große Anzahl von LEDs von wenigen E / A-Pins angesteuert werden kann.
Am einfachsten ist das Standard-Multiplexing der Zeilen- / Spaltenanzeige. Mit dieser Technik können Sie LEDs mit IO-Pins ansteuern. Mathematisch ist das Tastverhältnis: n( n / 2 )2n
1m i n i m u m ( eindeutige Zeilenmuster, eindeutige Spaltenmuster )
Dies bedeutet, dass diese Technik ein Tastverhältnis von 100% hat, wenn alle LEDs leuchten (oder alle Zeilen oder alle Spalten identisch sind) und ein Tastverhältnis von wenn eine diagonale Linie leuchten muss (oder alle Zeilen unterschiedlich sind) ). Sie können nur dann 100% Einschaltdauer garantieren, wenn Sie jede LED oder eine LED (oder keine LEDs, aber das zählt nicht wirklich viel) anzünden.1 / n
Etwas komplexer ist Charlieplexing . Mit dieser Technik können Sie LEDs mit IO-Pins ansteuern. Mit dieser Technik können nur LEDs gleichzeitig leuchten. Mathematisch ist das Tastverhältnis:n n - 1n2- nnn - 1
1minimale gleichzeitige Sätze
Dabei ist ein simultaner Satz eine eindeutige Gruppe von LEDs mit einer gemeinsamen Anode oder einer gemeinsamen Kathode. (Dies wurde nicht bewiesen, es ist genau das, worauf ich gekommen bin, nachdem ich eine Minute über das Problem nachgedacht habe. Wenn Ihnen das Tastverhältnis wichtig ist, sollten Sie dies weiter untersuchen.) Dies ist eine viel komplexere Berechnung, sowohl intellektuell als auch und rechnerisch als die äquivalente Berechnung für Standardmultiplex. Tatsächlich erhalten Sie ein Tastverhältnis von wenn alle LEDs leuchten, aber einige (nur einige) Muster von n-1 oder weniger LEDs können ein Tastverhältnis von 100% haben. Sie können nur dann 100% Einschaltdauer garantieren, wenn 1 LED leuchtet.1/n
Die letzte Methode, die ich erwähnen werde, ist die Verwendung eines Schieberegisters oder eines E / A- Expanders. Mit zwei Pins (entweder der Rohdaten- / Taktschnittstelle, I2C oder unidirektionalem SPI) können Sie eine beliebig große Anzahl von LEDs steuern. Das Tastverhältnis für jedes Muster beträgt 100%, aber die Aktualisierungsrate ist umgekehrt proportional zur Anzahl der LEDs. Dies ist die teuerste Methode. Für 15 LEDs ist es wahrscheinlich billiger, nur auf ein Mikro mit so vielen E / A-Pins aufzurüsten.