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