8×8 LED matrix as secondary display

… AKA Part IV 🙂

It is easy to stack up to 8 MAXIM MAX7219 ICs using the same 3 control lines. Natural idea would be to join 8 pieces of 8digits/7segmment displays (to get 64 digits – who needs 64 digits anyway?) or for instance 8 pieces of 8×8 LED matrices, obtaining 64×8, or may be 32×16, large matrix. I did something in between, stacking one 8digits display with one 8×8 matrix. On the matrix I decided to show rotating bar, to visualize passing seconds.


The most of the code, including libraries, and usage of interrupts was explained earlier in Parts III, II and I. The new element here is a second device, which we have to initialize in setup() procedure. Of course, also creating control object, we have to inform library, that 2 units were stacked up. As for programming side, there is 2D array (somehow not too often met in simple examples of arduino code).

See how it runs on YouTube

Continue reading 8×8 LED matrix as secondary display

DS3231 MAX7219 interrupts

… also known as DS3231 part III. (Have you seen Part I and Part II ?)


It is pretty natural to start playing with interrupts as we write program for the clock. There are 3 (in UNO, other boards have different number) internal timer based interrupts. Timer0 and Timer2 are based on 8 bits counters, so I decided to use Timer1 here with 16 bits. The prescaler set to 64 and match register to 2499 did the trick (one could use as well 256;624 or 8;19999 pairs for Timer1 looking for 100Hz refresh).

Continue reading DS3231 MAX7219 interrupts