digital LED clock (Berlinuhr) circuit check.

for infos related to the clock see: Mengenlehreuhr - Wikipedia

Hi folks, I’m newb to electronics and programming and maybe a little too keen on my first project
but just to know in principle if my plan could work, feel free to give a comment or an answer to some of the questions.

I use an arduino nano, a shift register (74HC595), a rtc module (DS3231) and 23 LEDs (red and yellow) in a 4x6 matrix for semi-mutliplex (only rows). See picture… The connections are set as follows:
NANO D2,D3,D4 to 74HC595 DS,STCP,SHCP
NANO D6,D7 to (Click-)Button1,(Click-)Button2 - time adjust for hours and minutes (add 1)
NANO D9,D10,D11,D12 to LED columns 1,2,3,4 - a set of 4 bits per row
NANO A5,A4 to rtc module SCL,SDA
The rest of NANOs inputs is 5V and GND
The six LED rows are activated by the 74HC595 - The register switches every row individually

  1. Can the arduino handle the power consumption or will I need transistors? Which ones and where?
  2. I read that for multiplexing it is ok if the LEDs current exceeds the usual current for continous power by the factor of rows it is divided into (if <10). Correct?
  3. Is there any chance this circuit works? What will improve it?

Thank you for any useful comments!



Your questions:

  1. As each of your Arduino pins powers one led, no transistors will be needed there. The Nano's pins can source up to 40mA maximum each, so 20mA will be OK.
  2. Probably no. If the data sheet for the leds says that current in pulses can exceed the max continuous current, then it can be done, but usually the data sheet specifies a very short pulse, which is not easy to achieve with Arduino. Also the pulse current will be too high for the Arduino pins to source without transistors. If you have no data sheet, or the data sheet only specifies a max continuous current, then it is not safe to exceed that.
  3. It needs more work before you try it.

Other things to note:

  1. You should have a 0.1uF bypass cap close to the Vcc & Gnd pins of the 595 chip.
  2. Why use a 595 at all? You have not used all the Nano's pins, the matrix could be built without the 595.
  3. The max current that one of the 595's outputs can sink is 35mA. You plan to sink 4 x 20mA = 80mA. The chip will probably fry. You could use tpic6c595 or tpic6b595 instead.
  4. If you use more Nano pins instead of the 595, you will need transistors to sink 80mA. Try BC337 with 1K base resistor. Or a ULN2003 chip.
  5. You say the red leds are 3V. This sounds like an error. Most red leds have a forward voltage close to 1.8~2.2V. Check again and recalculate your series resistors.
  6. You are drawing the symbol for an led incorrectly, unless it is some strange type of led. Normally leds have 2 pins, not 3 or even 4 as shown in some parts of your schematics. Also you show the leds wired in series, which is incorrect for a matrix.
  7. If you don't want to use Nano pins and transistors to drive the matrix, another possibility is to use a max7219 chip or an HT16K33 chip. In fact, with the HT chip, you would connect the data pins to the same pins that the RTC is connected to, and connect the switches to the HT chip also. You would only need 2 pins on the Nano! You could swap to a tiny85.

In general, if you want to use a matrix display, do it properly!

Just buy two or three of these kits:

Or these ones

which used to be more expensive but are now actually cheaper and more useful if you wish to stack matrix arrays.

The point is that you do not install the matrix arrays from the kits themselves - or their socket pins, but just solder to the positions on the PCB and you have a durable and reliable assembly to drive your own matrix arrays, whatever they are.

It may seem like overkill for a 4 by 6 matrix but the LEDs will be properly powered, reliable and (ridiculously and consistently) bright (but controllable if you want to dim) - and you can expand it at any time.

Why did I say two or three? Well, you can fully assemble the first one as the matrix with which it comes and practice programming it. Then the second one for your current project and the third one - for the next! :grinning:

Considering the cost, it makes no sense to just buy one!

@PaulRB Thank you ! This helps me a lot!