LED-Steuerung mit Charlieplexing                        

von Michael Moske 

Elektronik-Labor  Projekte  Mikrocontroller  PicoBasic 




Mit nur vier Leitungen zwölf LEDs ansteuern, das geht nur mir Charlielexing. Jede der vier Leitungen steuert zwei LEDs in beiden Richtungen zu allen drei verbleibenden Leitungen. Insgesamt kann man so 4 * (4 - 1) = 12 LEDs ansteuern. Immer nur zwei Portleitungen dürfen zu einer Zeit als Ausgänge geschaltet werden, alle gerade nicht verwendeten Leitungen müssen zu hochohmigen Eingängen gemacht werden.



Hier werden alle LEDs einmal eingeschaltet. Der Pdir-Befehl schaltet jeweils zwei Leitungen aktiv, als erstes die beiden Leitungen mit der Wertigkeit 8 und 1. Danach kann entweder 1 oder 8 ausgegeben werden, sodass zwei LEDs möglich werden.


              Rem * Charlieplexing
              Rem * Linescan
              Rem * Pins C0-C3
0x0900  Pdir = 0
0x0800  Pout = 0
              Rem
              L1:
0x0909  Pdir = 0x09
0x0801  Pout = 0x01
0x19FA  Delay ms = 250
0x090A  Pdir = 0x0A
0x0802  Pout = 0x02
0x19FA  Delay ms = 250
0x090C  Pdir = 0x0C
0x0804  Pout = 0x04
0x19FA  Delay ms = 250
0x0905  Pdir = 0x05
0x0801  Pout = 0x01
0x19FA  Delay ms = 250
0x0906  Pdir = 0x06
0x0802  Pout = 0x02
0x19FA  Delay ms = 250
0x090C  Pdir = 0x0C
0x0808  Pout = 0x08
0x19FA  Delay ms = 250
0x0903  Pdir = 0x03
0x0801  Pout = 0x01
0x19FA  Delay ms = 250
0x0906  Pdir = 0x06
0x0804  Pout = 0x04
0x19FA  Delay ms = 250
0x090A  Pdir = 0x0A
0x0808  Pout = 0x08
0x19FA  Delay ms = 250
0x0903  Pdir = 0x03
0x0802  Pout = 0x02
0x19FA  Delay ms = 250
0x0905  Pdir = 0x05
0x0804  Pout = 0x04
0x19FA  Delay ms = 250
0x0909  Pdir = 0x09
0x0808  Pout = 0x08
0x19FA  Delay ms = 250
0x2002  Goto L1:

Video: https://www.youtube.com/shorts/3NBIYlDTlJw

Mit nur acht LEDs kann man einen kleinen Würfel mit LEDs an den acht Ecken bauen.





              Rem * Charlieplexing
              Rem * Würfel
              Rem * Pins C0-C3
0x0900  Pdir = 0
0x0800  Pout = 0
              Rem
              L1:
0x0905  Pdir = 0x05
0x0801  Pout = 0x01
0x19FA  Delay ms = 250
0x0909  Pdir = 0x09
0x0801  Pout = 0x01
0x19FA  Delay ms = 250
0x090C  Pdir = 0x0C
0x0804  Pout = 0x04
0x19FA  Delay ms = 250
0x090A  Pdir = 0x0A
0x0802  Pout = 0x02
0x19FA  Delay ms = 250
0x0906  Pdir = 0x06
0x0804  Pout = 0x04
0x19FA  Delay ms = 250
0x0903  Pdir = 0x03
0x0802  Pout = 0x02
0x19FA  Delay ms = 250
0x0905  Pdir = 0x05
0x0804  Pout = 0x04
0x19FA  Delay ms = 250
0x0903  Pdir = 0x03
0x0801  Pout = 0x01
0x19FA  Delay ms = 250
0x2002  Goto L1:

Video: https://www.youtube.com/shorts/Z4VnPZlt7wc



Elektronik-Labor  Projekte  Mikrocontroller  PicoBasic