Hi,
I am working on a 5x5 matrix... one more yes... The only difference is I need to drive the LEDs at maximum brightness and be able to control each individual LED brightness in software. I don't want to use any shift register or LED driver ICs in this circuit, I'm just learning by doing and I am trying to understand how transistors work properly.
This is going to be a Row/Anode Column/Cathode type matrix. My LEDs have a 2.2 FWD and 50ma peak current at 10% duty time.
The idea is to do column scanning method and run it at 100kHz. If i add a 6th row (fake) to the software, i can multiplex groups of 10 LEDs with a duty cycle of 1ms that gives me 10ms wich works perfectly.
So it will turn on row1, row3, row5, then turn on col1, off col1, on col2, off col2...until col5. After that switch off the rows, turn on row2, row4, row6(fake) and scan the columns again.
The brightness part os also more or less fine, by playing with the duty cycle i can control the brightness of the LEDs individually.
3 LEDs can be on at a time so that means 150mA have to be sink at max. The 2N3904 can have an Ic of 200mA so it should be fine if i use an extrenal power supply for the LEDs.
The software side is more or less under control but i'm very weak on the hardware side.
The original plan was to use PNPs for the rows and NPNs for the cathodes in a common emitter configuration. However i stumbled upon several schematics that use NPNs for both rows and columns.
I though that wasn't a good idea but i reproduced the circuit in a simulator. Attached is an schematic of what it looks like. I have taken some measurements in the simulator and it seems to be running ok but I would like to get some advice from you guys before i proceed with putting it together physically.
Does it make sense? What are the differences (other than using ground/positive for the base) between driving everything with NPNs or using PNP/NPN ?
Thanks a lot in advance for your time.