Difference between revisions of "Open Source LED Dot Matrix Clock"

From Microduino Wiki
Jump to: navigation, search
(Bill of Module)
(Bill of Materials)
Line 47: Line 47:
 
|LED dot matrix clock shell suite  || 1 ||Shell
 
|LED dot matrix clock shell suite  || 1 ||Shell
 
|-
 
|-
|Double sides adhesive tape  || 9 ||Stick shell
+
|Double sides adhesive tape  || 8 ||Stick shell
 +
|-
 +
|Nylon screws  || 4 ||To fix the shell
 
|}
 
|}
 
|}
 
|}

Revision as of 06:42, 17 June 2016

Language: English  • 中文

Outline

  • 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 Extnesion

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

Programming

**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.

Installation

  • Step1:
    • Insert the structure B2 vertically into the structure B1.
DotMatrixjiegou1.jpg


  • Step2:
    • Use structure B3 to connect structure A1 and structure B1.
DotMatrixjiegou2.jpg


  • Step3:
    • Implant structure C1 into structure B3. Finally use structure B5 and structure B4 to jam structure B3.
DotMatrixjiegou3.jpg


  • Step4:
    • When changing the IIC address of the dot matrix module, you can refer to [Setting method of the IIC address of the dot matrix module] tutorial.
    • Connect the dot matrix module whose IIC address has been changed from left to right according to the defined address order, to complete cascading.
    • According to the following picture, reserve the wire of the module the key end interface, in order to connect to the IIC interface of Microduino-Cube-S1.
DotMatrix1jilian.jpg


  • Step5:
    • Use the double-sided adhesive to stick the bottom side of the Microduino-Dot Matrix module, and the face of the module which has letters on it faces down. Stick inside the shell in turn.
DotMatrixjiegou4.jpg


DotMatrixjiegou5.jpg

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.
DotMatrixBle.jpg

Code Instruction

Code to loading:File:Dot Maxtrix Clock.zip

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.

Bluetooth

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

It is effective when there is a serial port data.

  mySerial.read()

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[].

 bleUpdata()

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.

RTC

  rtc.getDate();
  rtc.getTime();
  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

  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.

 display.getDeviceAddr(a)

Get the IIC address of the device.

 display.getWidth(),display.getHeight()

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.

 display.clearDisplay()

Clean up the screen.

 display.setColor(X,Y,Z)

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.

FAQ

  • 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.