Arduino TutorialsProjects

How to Make a Scrolling Text Display With Arduino

how to design scrolling text with Arduino UNO and P10 LED DMD module

In this tutorial, I am going to teach you how to design a digital scrolling text display using Arduino UNO and P10 LED dot matrix display (DMD) module.

A digital scrolling text display is a display system that can display digital texts on a board made of LED array. The information it displays is pre-programmed using a microcontroller. Basically, the microcontroller used to program the P10 LED dot matrix display is called the “Control Card”. This control card comes in many forms and has many features, but with the help of Arduino DMD library, we can program the Arduino board to work with the P10 dot matrix display. The P10 LED dot matrix display also comes in different colours.

Figure 1: P10 LED DMD module control card
P10 Dot Matrix Display Module
Figure 2: P10 LED dot matrix display module

Materials Needed for Scrolling Text Display With Arduino

  1. Arduino Uno board X 1
  2. P10 LED Dot Matrix Display (DMD) Module X 3
  3. 5 Volts, 5 Amps power supply
  4. Connection ribbon cables X 3
  5. Power supply cables
  6. Bunch of jumper wires
Figure 3: All the components used in the design
p10 and arduino circuit diagram
Figure 4: connection of the arduino to the P10 LED DMD module
How to connect A P10 LED DMD to Arduino
Figure 5: How to connect A P10 LED DMD Module to Arduino
Scrolling text display with Arduino

The DMD library can be downloaded here.

Here is a step by step tutorial on how to install arduino library.

The Arduino code for the design is shown below:

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

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

void setup() {
Serial.begin(9600);
Timer1.initialize( 2000 ); 
Timer1.attachInterrupt( ScanDMD ); 
dmd.clearScreen( true ); 
}
String textToScroll= "ettron.com...Digital scrolling text display. Please subscribe, like, comment and share.";

void drawText1( String dispString )

{
dmd.clearScreen( true );
dmd.selectFont( Arial_Black_16 );
char newString[256];
int sLength = dispString.length();
dispString.toCharArray( newString, sLength+1 );
dmd.drawMarquee( newString , sLength , ( 32*DISPLAYS_ACROSS )-1 ,0);
long start=millis();
long timer=start;
long timer2=start;
boolean ret=false;
while( !ret ) {
if ( ( timer+20 ) <millis() ) 
{
ret=dmd.stepMarquee( -1 , 0 );
timer=millis();
}
}
}

void loop() {
Serial.println(textToScroll);
drawText1(textToScroll);
}

If you have any question please let me in the comment section below

Related Articles

3 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button
Close