After I did my project Binary Clock in a LED matrix, I started to develop the idea of a complete monthly calendar and also including features like digital clock, number of the week of the year and the Moon phases. The result is the Tiny Calendar where I have introduced a lot of features in a single LED matrix.
To be capable to show so much information in an 8 x 8 matrix, some characteristics were shown in binary notation like the numbers of the week, month and year.
A difficult challenge was about the way to show the complete calendar according to correct days of week for a certain year and the solution you will see is completely original for this kind of application.
Let's see it!Bill of Material
- 1 x Arduino UNO R3
- 1 x LED Matrix Display 8x8 Module with MAX7219
- 1 x Rotary Encoder Module KY-040 with push button
- 1 x Real Time Clock Module RTC DS1307
- 1 x Kit of Jumpers Male-Male and Female-Female
- 1 x Breadboard
The assembly is very simple due to the use of modular components. Just follow the schematic and take care with the wires connections.
Print the corresponding template of the Hemisphere (Northern or Southern) where do you live, cut and put it over the LED matrix according with the position shown in the pictures.Programming
As I mentioned at the beginning, the main challenge of this project was to find out a way to put all information on a single display 8x8 and also how to manage individually all the LEDs of the matrix.
To support me in this task, I did a model on Excel Worksheet simulating this operation with Visual Basic programming. The option to use the rotary encoder was due to its accuracy. I tried to use potentiometers, but the results were not satisfactory in this application.Operation
The operation of Tiny Calendar is really simple and all the control is done using the rotary encoder. First of all, you need to select with the push button of rotary encoder what feature do you want to use like the day, month or year.
The feature that was selected is highlighted with a short blink of corresponding LEDs. To read the characteristics of Week, Month and Year, you need sum all numbers of each one that are with the LEDs turned on.
The Hour is shown in digital format and in the row of matrix (used to show the Year too) you can see the LEDs corresponding to 16 and 8 turned on, representing the 24 hours (16 + 8). For the Minutes, the LEDs corresponding to 32, 16, 8, 4 (sum is 60 minutes) in the last row of matrix are turned on indicating they are shown the minutes.
For the Calendar, the main reference is the column that is blinking. This column represents the Sunday (1st day of the week). The next column at right is Monday, then Tuesday and so on until Saturday.
Note: The Sunday column can move for any other column depending of month and year set in the calendar.