Interfacing Dot Matrix Display With Arduino.

A Dot-Matrix Display is made up of LEDs arranged or wired in the form of a matrix. Symbol, Graphics, Characters, Alphabets, Numbers can be displayed with a DMD

A display system is an essential component to convey information easily. In any institute, organization or at public displays play crucial role to communicate information. The information may be related to current situation, updates or can be advertisements about the products.  People are presently adapted to the idea of the world having information at fingertips.

Dot Matrix Display

A Dot-Matrix Display is made up of light emitting diodes arranged or wired in the form of matrix. Symbol, Graphic, Characters, Alphabets, Numbers are displayed as in applications by using Dot-Matrix Display and can be displayed together in constant as well as Scrolling motion. Variable dimensions in which Dot Matrix Display is manufactured are such as 5x7, 8x8, 16x8, 128x16, 128x32 and 128x64 where the first numbers shows  LED's in rows and second number shows LED’s in columns, respectively. Displays are available and can be manufactured in different colors such as Red, Green, Yellow, Blue, Orange, and White and multicolor...
In DMD, If we powered different LEDs separately we need different I/O pins physically which is not reliable In an 8×8 matrix, the LED's would need 64 I/O pins, one for each LED pixel. in order to minimize the number of pins required to drive them many LEDs are wired together in rows and columns therefore By wiring all the anodes together in rows (R1 through R8), and cathodes in columns (C1 through C8), the required number of I/O pins is reduced to 16. Each LED is addressed by its row and column number. You may manufacture it can be as common cathode or common anode .The matrix pattern is made either in row anode-column cathode or row cathode-column anode pattern. In row anode-column cathode pattern, the entire row is anode while all columns serve as cathode which is shown below and it is vice-versa in row cathode-column anode pattern. If we want to display any character or number then according to that number we have to pull down or high the pins of matrix
For example, we have to enable row and the column pins  as per the table given below to display a character M where the on LED is denoted by red dot.
How to display M alphabet on Dot matrix display?

Chart for displaying character M on Dot matrix Display
Chart for displaying character M on Dot matrix Display

System Design and Circuit Diagram

The following fig shows the interfacing diagram of Dot Matrix Display With arduino.

Circuit diagram of dot matrix display interfaced with arduino
Circuit diagram of dot matrix display interfaced with arduino

Above fig.3.15 shows hardware interconnection between  ARDUINO nano (ATMEGA328P), HUB(pins) of Dot matrix display(DMD 16*96)

Pin configuration of DMD

  • Pin no. 1 = it is a (N0E) enable pin used to enable our main element of project that is dot matrix display
  • Pin no. 2(A) = data line A for communication
  • Pin no. 3, 5, 7, 9, 11, 13, 15= this pins are made ground
  • Pin no. 4(B) = Data line B for communication
  • Pin no 6(c) = Data line C for communication
  • Pin no. 8(clk) = this is the clock pin of DMD
  • pin no. 10(sclk) = it is a system clock
  • Pin no.12(R) = System ready check
  • Pin no. 1 of our display is enable pin for display
  • Pin no 2 digital communication pin A is connected to the pin no 9 which is D6 pin that is digital out pin of ARDUINO
  • Pin no. 4 digital communication pin B is connected to the pin no 10 which is D7 pin which is also a digital out pin
  • Pin no. 8 which is clk pin connected to pin no 16 which is D13 pin of ARDUINO
  • Pin no. 10 which is a system clock pin is connected to pin number 11 of ARDUINO which is the D8 pin
  • Pin no. 12 which is system ready check is connected to pin no 14 of the ARDUINO which is D14 pin
  • Pin no. 3, 5, 7, 9, 11, 13, 15 are connected to pin no. 4 which is ground pin of ARDUINO

Scrolling Text On DMD Display…

The coding part

#include <SPI.h>       
#include <DMD.h>        
#include <TimerOne.h>  
#include "SystemFont5x7.h"
#include "Arial_Black_16_ISO_8859_1.h"
#define DISPLAYS_ACROSS 3
#define DISPLAYS_DOWN 1
DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);

void ScanDMD()
{ 
  dmd.scanDisplayBySPI();
}

void setup(void)
{
   Timer1.initialize( 3000 );          
   Timer1.attachInterrupt( ScanDMD );   
   dmd.clearScreen( true );   
   Serial.begin(115200);
}

void loop(void)
{
   dmd.clearScreen( true );
   dmd.selectFont(Arial_Black_16_ISO_8859_1);

   const char *MSG = "WELCOME TO VED ELECTRONICS";
   dmd.drawMarquee(MSG,strlen(MSG),(30*DISPLAYS_ACROSS)-1,0);
   long start=millis();
   long timer=start;
   
   while(1){
     if ((timer+39.9) < millis()) {
       dmd.stepMarquee(-1,0);
       timer=millis();
     }
   }
}

Here is the demo

# Conclusion

The prototype of the arduino based display toolkit was effectively designed. This prototype has to be facilities to be integrated with the display board it can solve the problem of instant information transfer in the campus and it is a best replacement for regular flex boards, In future we can add IR sensor to detect the human motion where the display is mounted and the output of that sensors given to primary of relay by means if  IR sensor detects human around display then its output is given to display and the NO of the relay get closed and display will display our message for some programmed time if there is no action around display then it will undergo standby mode and reduced power consumption.