I am doing a project through university and I am leaning towards using multiplexing on a 16x16 led matrix run through an Arduino Board as my display.
I understand the concept of the shift register, loading in the values serially then pushing them out in parallel therefore only using a small number of I/O ports on the Arduino. However in all the examples I have seen I have seen Drivers on the line and shift registers on the Columns. They also have transistors in the circuits.
I understand the concept of the transistor, basically limiting the current through the LED's because there are potentially so many being energized at one point. But the problem with that is if 10 LED's are on at one point with a set current and then at another point in time there are 5 LED's won't they be brighter because of the increased current in each LED? Is this what the Driver is doing ? Somehow recognizing there is only 5 LED's on and changes the voltage at the Base of the Transistor so the current through each LED remains constant?
I have looked through videos and other resources and I am not understanding.
Okay I found a great schematic that explains what you were saying, that they are switches.
So I control the rows with a shift register, loading the values in. But I need to control the columns, Can't I just do that with another shift register? so I can provide current to the specific LED?
But other schematics show shift registers on the columns, but the rows have shift registers with drain outputs. I attached a picture as well.