Summary of GuGaplexed Valentine LED Heart using ATTiny13V Microcontroller
The GuGaplexed Valentine LED Heart project employs GuGaplexing, an advanced LED multiplexing technique that doubles the LED control capacity over Charlieplexing by using transistor pairs for decoding. Utilizing an AVR ATTiny13V microcontroller with 5 pins controlling 40 LEDs in a heart-shaped layout and one pin for a switch input, the circuit uses matched pairs of BC547 and BC557 transistors. Pressing the switch changes display animations. This setup maximizes LED usage through three-state pin operation (0, 1, Z) with external decoding components, enabling efficient and complex LED patterns in a compact design.
Parts used in the GuGaplexed Valentine LED Heart Project:
- AVR ATTiny13V Microcontroller
- 40 x 3mm Red LEDs
- BC547 NPN transistors
- BC557 PNP transistors
- Various resistors
- Push button switch
- 8-pin socket for ATTiny13
GuGaplexing is a new LED display multiplexing technique. Compared to Charlieplexing, GuGaplexing allows you to control twice as many LEDs, with just a few additional components.
GuGaplexed Valentine LED Heart project has 40 LEDs arranged in an ‘Arrow Piercing a Heart” arrangement using only 5 pins of a microcontroller. The project uses an AVR ATTiny13V Microcontroller. All the 6 I/O pins of Tiny13 are used in this project; 5 for controlling 40 LEDs and the 6th pin to read a switch. Pressing the switch changes the display animation on the pierced heart.
Step 1 The Circuit Diagram
The circuit consists of a Tiny13, 40 red LEDs of 3-mm size, a bunch of BC547 (NPN) and BC557 (PNP) transistors, a few resistors and a push button switch. The Tiny13 is mounted in an 8-pin socket. The schematic in pdf and eagle format are available here.
An important point to note is that the circuit uses 5 transistor pairs using NPN and PNP transistors and these transistors must be matched for their beta values, which is done easily with suitable multimeter with transistor check function.
Briefly, the way GuGaplexing works is as follows: The microcontroller pins operate in one of three possible states: 0, 1 or Z (the high impedence state). Charlieplexing technique makes use of this fact to increase the number of LEDs that can be controlled compared to the conventional multiplexing technique, which does not exploit the third state (i.e. the high impedence state ‘Z’) of the pin. Thus Charlieplexing manages to control N*(N-1) LEDs using N digital pins.
Now wIth 2 pins, there are eight logic combinations: 00, 01, 0Z, 10, 11, 1Z, Z0, Z1 and ZZ. So in principle with suitable decoding of these states, it should be possible to connect 8 LEDs using two pins only, ofcourse at the cost of additional external components for the decoding job. GuGaplexing does a compromise and uses a pair of transistors (NPN and PNP) per pin to decode four of the possible eight combinations. Thats how, for N pins, GuGaplexing achieves 2*N*(N-1), which is twice as many as Charlieplexing.
More details of the GuGaplexing LED display multiplexing technique will be available as a Design Idea on EDN (www.edn.com) in near future.
Step 2 GuGaplexed LED Heart in action
Here is a youtube video of the project in action.
Step 3 Source code
Here is the source code of this project written in C and compiled using winavr gcc. The source code, Makefile and the hex file is attached.
For more Detail: GuGaplexed Valentine LED Heart using ATTiny13V Microcontroller