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

DS3231 MAX7219 8digits

… or DS3231 part II 🙂 (see also part III and IV – the story goes on with interrupts)

The next step after testing if it works at all was to display ful time, and especially seconds. So 4 digits offered by TM1637 based module (let’s call it part I) was not enough. I used 8 digits 7 segment display based on MAX7219.



For the code, apart from DS3231 library mentioned in previous post, I used also Eberhard Fahle LedControl library.

Continue reading DS3231 MAX7219 8digits

DS3231 AT24C32 TM1637 4digits

DS3231 clock with AT24C32 memory connected to TM1637 controlled 4digits 7segment display. This is first step in using DS3231 clock – see also next steps with 8 digits 7 segment display and with use of internal timer interrupts and with combining two display types)


As you can see all setup was arranged on Proto Shield with SYB-170 breadboard. This way, it can be easily dismounted from UNO base, and left aside. Then, once you want to use UNO board for another project you can take it, and once you want return to this one, the shield has to be slided onto UNO, code written back to the board, and everything works back again :-). As I often switch between the projects, I do like this approac, and have at least 2 proto shields loaded with some parts and finished_but_may_return_to projects on them 🙂 )

Continue reading DS3231 AT24C32 TM1637 4digits