Forum Discussion
Altera_Forum
Honored Contributor
16 years agoHi,
As was already said, multiplexing the 160 LEDs into a matrix of say 16 rows of 10 LED's each would be the standard way of doing this. What is not so clear yet is that if you cycle through the columns fast enough, it looks as if all 160 LEDs are on at the same time. You need to go through the matrix about 60 times per second in order for the eye not to see the flickering. You would then drive the 16 LEDS in each column 1/(60*10) = +-1.6ms. You would display col 1 for 1.6ms, then col 2 for 1.6ms, then col 3 for 1.6ms etc until you reach col 10 and then you repeat again from col 1. To the eye it will look as if all the LEDS are on at the same time (at least the one you want to be on). You do not need an FPGA to do this and a microcontroller with at least 10+16 =26 I/O's can do it (You can use fancier tricks with shift retgisters and latches to further reduce the I/O count). You will need to drive more current through each LED than usual since it is only on for 1/10th of the time. Although it is not purely linear, I would suggest an overcurrent of at least 3 times your normal continuous current. You could probably drive the 16 LEDs directly form the microcontroller (or use 74AC244 or similar buffers to increase current drive). The 10 column you would probably need to drive with transistors. The easiest is to use NPN transistors to ground. See the attached drawing. Regards, Niki