fbpx
ArduinoArduino Projects

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. Ribbon cables X 3
  5. Power supply cables
  6. Bunch of jumper wires
Figure 3: All the components used in the design

Circuit diagram of the Scrolling text display with Arduino

scrolling text display
Figure 3: connection of the arduino to the P10 LED DMD module
scrolling text display
Figure 5: How to connect A P10 LED DMD Module to Arduino

The DMD library can be downloaded here.

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

*** Make sure to also download and install the TimerOne library on the Arduino IDE.

Arduino code

#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);
}

Suggested Reading

After designing this project, you can try out an advance version of it, which is how to control the digital display with a smartphone via Bluetooth. You can see read and watch the tutorial below and other Arduino projects.

How to make a Bluetooth controlled scrolling text display
How to make Password door lock with Arduino
How to make automatic hand sanitizer with Arduino

10 Comments

  1. Oh! Wow! It’s now working. You never said one will have to install Timerone Library. But thanks anyway

      1. Thanks sir
        But they still keep telling me
        In the following functions
        void ScanDMD();
        void setup();
        void drawText1(String);
        ‘dmd’ was not was not defined in this scope I don’t know why

        1. Thanks so much Sir. It now works.
          Wish to inquire from you whether you know where we can have “the P10 dot matrix display module”?

Leave a Reply

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