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.
Materials Needed for Scrolling Text Display With Arduino
- Arduino Uno board X 1
- P10 LED Dot Matrix Display (DMD) Module X 3
- 5 Volts, 5 Amps power supply
- Ribbon cables X 3
- Power supply cables
- Bunch of jumper wires
Circuit diagram of the 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.
*** 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
please assist with gsm based projects.
Thank u
I will check it out.
we hope you get every info you need here.
Oh! Wow! It’s now working. You never said one will have to install Timerone Library. But thanks anyway
PLEASE, HOW DO I SLOW DOWN (MANIPULATE) THE SPEED OF THE TEXT
When I run my code they tell me “TimerOne.h: no such file directory”
You have to download TimerOne Library
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
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”?
Please explain how to run long text on DMD P-10
How to make bigger size in up and down scrolling text. It’s not working by changing the value of the display Down value. If I change that to 2 will it increase? Or should I change anything in coding?
Arduino does not have the library to do that which I know of. You need to use a control card.
Sir,does ur code also apply for rgb p10 led modules?
Yes
Hi Sir,
Does the Code and Circuit work for P6 DMD Module? Please suggest Changes if required.
Well, try it it first, then we will look for a way to required changes if need be. I expect it to work.
Hello sir
Please how do I read text files from SD card and display it for scrolling on dot matrix display (P10 board).