Open Source LED Dot Matrix Clock

From Microduino Wiki
Jump to: navigation, search
Language: English  • 中文


  • Project: Microduino dot matrix cascade clock
  • Objective: Real-time display clocks and characters.
  • Difficulty: Medium
  • Time-consuming:2 hours
  • Maker: peng
  • Introduction:
    • Cascade the four Microduino DotMatrix module.
    • Use a Bluetooth module to calibrate the time that the dot matrix displays through the mobile APP.
    • You can also send any character to dot matrix module to display through APP.

Bill of Materials

Bill of Module

Module Function
Microduino-Core 1 Core board
Microduino-USBTTL 1 Program download
Microduino-RTC 1 To read access time
Microduino-BLE 1 Communication between the mobile phone and Core
Microduino-Dot Matrix 4 To display
Microduino-Cube-S1 1 Extension

Other Material

Units Number Function
USB cable 1 The power supply, and download
LED dot matrix clock shell suite 1 Shell
Double sides adhesive tape 8 Stick shell
Nylon screws 4 To fix the shell

Principle of the Experiment

  • Features of the Microduino-Dot Matrix module:
    • The module is 8x8 dot matrix, and the size is 60mm*60mm;
    • The color display quality of each dot is 24 bits, and the color display effect is 32k;
    • Support the IIC communication protocol. The IIC address can be set(1~64). The dot matrix sequence adopts the plane rectangular coordinate system, which is easy to control;
  • Use Microduino-BLE Bluetooth module to communicate with the mobile phone:
    • The mobile APP sends the string to core module through the Bluetooth module, and display on the dot matrix module.

Program Download

  • Please keep to download and download the Microduino official latest IDE.
  • Download a program from the link below:Dot-Matrix-Clock.ino


**Note: Please upload programs before stacking all modules together.
  • Open Arduino IDE for Microduino environment. (The reference to set up:AVR Core:Getting started
  • Click [Tool], and confirm board card(Microduino-Core), and processor(Atmega328P@16M,5V) selected correctly, and select the corresponding port number (COMX).
  • Click [File]->[Open], browse to the project program address, and click"Dot-Matrix-Clock.ino" to open the program.
  • After all these items are correct, click "→" to download the program to the development board.


  • Step1:
    • Insert structure B2 vertically into structure B1.
    • Use structure B3 to connect structure A1 and structure B1.
  • Step2:
    • Use structure B4to jam the structure A1 and structure B1 .

  • Step3:
    • To change the IIC address of the dot matrix module, you can refer to [The method of setting the IIC address of the dot matrix module ] tutorial.
    • Connect the dot matrix modules of which the IIC address have been changed in order that from left to right according to to defined address, to complete the cascade.
    • Stick piece of four double sides adhesive tape on the back of structure C1 equidistantly, and stick Microduino-Dot Matrix to structure C1put the side with letters of the dot matrix down)successively.
    • As the following figure, reserve the cable of the key end interface of the module in order to connect the IIC interface of Microduino-Cube-S1.

  • Step4:
    • Use structure B3 to connect structure C1 and structure A1,B1.


Operating Instruction

Bluetooth Connection

  • Make sure that the phone Bluetooth has been open, then use APP to search the Bluetooth device named as "Microduino".
  • After connecting successfully, you can control it.

Calibration Time

  • In view of RTC module will lost time long time without power supply, we have added that use APP to adjust time, through the Bluetooth module.
    • Clicking the "sync time with phone" button can adjust the time of the dot matrix.
DcolorMatrix ble.jpg

Display Text

  • In the input field write'hello microduino', and click "send message", then the characters that you have written will be displayed on the dot matrix screen.

Code Instruction

Code to loading: File:Dot Maxtrix

Dot Matrix Cascade

 uint8_t Addr[MatrixPix_X][MatrixPix_Y] = {                 
{ 64, 63, 62, 61}};       

Define the IIC addresses of the four Dot Matrix modules as 64, 63, 62, and 61, and the arrangement type is 1x4.


 while (mySerial.available()) {...}

It is effective when there is a serial port data.

Red the data which is transferred by the UART.

   if (c == 't' && buffer_num == 0 && !buffer_sta_d)
     buffer_sta_t = true;
   if (c == 'm' && buffer_num == 0 && !buffer_sta_t)
     buffer_sta_d = true;

Judge it is date or time data.

 strstr((char *)buffer, "t")

Return the address where the "t" character first appears in buffer.

 sscanf((char *)strstr((char *)buffer, "t"), "t%d,%d,%d,%d,%d,%d", &sta[0], &sta[1], &sta[2], &sta[3], &sta[4], &sta[5]);

From the address where the "t" character first appears in buffer, read the value according to the %d type, and write into sta[].


Transfer data through UART, only by clicking the button on your mobile phone to send the specified character. If loosing, it will send character"0". So without press, it will always show time.


  setTime(rtc.getHour(), rtc.getMinute(), rtc.getSecond(),  rtc.getDay(), rtc.getMonth(), rtc.getYear())

Get the date and time data of rtc.

  rtc.setDate(day(), weekday() , month(), 0, year() - 2000); //day, weekday, month, century(1=1900, 0=2000), year(0-99)
 rtc.setTime(hour(), minute() , second()); //hr, min, sec

Set by hour, minute, second, day, month, and year format.


  display.print(second() % 2 ? " " : ":");

The second flashes, after being used justify whether the second can be exactly divided by 2. If it can, show it. If not, don't show.


Get the IIC address of the device.


Return the X,Y coordinates.

 display.setLedColor(x, y, random(0, 255), random(0, 255), random(0, 255))

Set the color of each LED randomly.


Clean up the screen.


Set the color of the full screen X:Red Y:Green Z:Blue

 display.writeString("string", MODE, time ,z)

string: any string. MODE: MODE_H displays characters horizontally. /MODE_V displays characters vertically. time: The displayed time(the flow velocity of the characters on the screen). z: X/Y coordinate.

Through reading the RTC color, display the specific values in the form of coordinates.


  • Q:How can I know the IIC address of the Microduino-Dot Matrix module?
  • Q:What order do the lattice modules connect according to?
    • A:Connect from left to right according to the IIC address order that is set for Microduino-Dot Matrix module .
  • Q:How to know whether the mobile phone has been connected with the Bluetooth module?
    • A:When there is connected displayed on the top left in the APP interface, it is connected successfully.
  • Q:What is the meaning of the jumper of the Bluetooth module?
    • A:The Bluetooth module used in this tutorial is the default soft serial port mySerial(4,5), so don't need to jump line. You can refer to the blue module configuration for in-depth knowledge of the Bluetooth. Microduino- BLE pin elucidation.