Friday, 15 January 2016

npn - 74HC595 Rows/Columns to drive LED matrix


Let's say we have one 74HC595 and we want to light 16 leds (common anode) connected as a 4x4 matrix exactly as in the following picture :


Electronic Schema


So, 4 first outputs to controls 4 rows. The remaining 4 output to controls 4 columns.


From what I understand at this moment:


In the picture, there is a NPN transistor on the 4 columns to allow more current than what the 595 can sink.


Let's say only ROW1 is active, and all columns are active (LED1,LED2,LED3,LED4). Column 1, Column 2, Column 3 and Column 4 on the 595 will indicates a very low current, just the current set at the base of each transistor by the base current limiting resistor.


However, at ROW1, would it indicates at the 595 the sum of each led current of this row? So 80mA, if we assume each led at 20mA ?


If it's the case, in my case, there is much more 595 and much more leds and I don't want to operate near/over the 595 maximum current (75mA), would I simply add appropriate PNP transistors + base resistors to each ROW to reduce the current of each 595 rows pins ?


I want to keep the 74HC595 IC and low-cost single transistors. I know there are shift registers with higher current capacity and transistors-arrays IC that saves wires and resistors. Also that I can reduce the current of each led with higher resistors to keep it under 75mA, but I would like to understand how to properly work with a matrix arrangement that needs more than what the 595 can work with, using these simple components only.



In other words, is 4 PNP for rows and 4 NPN for columns, the best way to handle >= 75mA on a single row ?




No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...