I have completed a simple two color 8x8 LED matrix project. The matrix is common cathode. I am using three shift registers (74HC595). Two for columns. One for rows. Row current is sunk through a ULN2803A. I am driving the display by going one row at a time and looping quickly to make all of the rows appear lit (this seems pretty standard). I am using very conservative resistor values. With my current design and the 12.5% duty cycle of each LED I estimate I can have a smaller resistor to get closer to the 20ma of current that will drive the display at full brightness.
My concern is this: any time I reset the Arduino whatever the shift registers were last latched to gets powered at full brightness at what appears to be a 100% duty cycle. If I use a small resistor that would be OK, but during reset at the 12.5% duty cycle it seems that it would blast my LED with a huge amount of current and break things. I attempted to wire a pull down resistor to my SRCLR pin on my shift register (and then set it to high in my setup() function), but it doesn't seem to be working. When I reset the device it still does the high power thing depending on when the main display loop gets interrupted.
I also toyed around with the output enable pin and enabling/disabling that, but I think this needs to happen (mostly) outside of my code. Can anyone give a concrete suggestion on how to send a for sure digital high or low signal wen the Arduino is reset? I have this circuit wired on a bread board. Pretend like I am absolutely clueless (I basically am) in your response so I can wire this up properly.
(BTW, my pull down design looks something like this: Pin 10 goes to one slot on the breadboard. I then have a 10K resistor and my SRCLR pin wired up there. On the other side of the resistor (same slot) is GND. If I am close or not making sense I am all ears on how to move forward).
Thanks