Hello friends, Hope you all are fine and having fun with your lives. In today’s post, I am going to show How to display a Scrolling Text on LED Matrix 8×8 using Arduino in Proteus ISIS. We all know about LED Matrix but if you don’t know then google it. 😛 LED Matrix is used to display long messages, the best thing about LED Matrix is you can combine then in serial way and can make it of any size you want. Like in this post I have combined 8 LED matrices and then displayed my message on them. I have given all the details here but as you can see we have done a great effort in designing this simulation so I haven’t posted it free but have placed a very small amount of $20 on it and you can buy it quite easily from our shop by clicking the above button.
I have used Proteus software for the simulation purposes and have use Arduino board as a microcontroller. We know that Proteus doesn’t support Arduino but we have a library for it. So, first of all, read Arduino library for Proteus so that you can easily add the Arduino board in your Proteus software and then must also read How to get Hex file from Arduino which we will be uploading in our Proteus software. Its quite easy and you will get it don’t in the first attempt. Anyways let’s get started with Scrolling Text on LED Matrix 8×8 using Arduino in Proteus ISIS.
Hardware Design of LED Matrix 8×8 using Arduino in Proteus ISIS
- First of all let’s have a look on the hardware design of LED Matrix 8×8 using Arduino in Proteus ISIS, which is shown in below figure:
- So, if you have a closer look on it by clicking it then you can see I have used 8 LED matrices and have used MAX7219.
- MAX7219 is a shift register which is of real importance here, it takes data serially in and parallel out.
- It is also known by the name serial in parallel out shift register. We send data to it using single pin which is the data pin and this data is edge triggered by the clock pulse.
- So when our clock pulse goes from low to high the data is sent to the shift register.
- We have connected these shift registers in a row as you can see in above figure, the first register is connected to second register via Dout pin.
- So suppose I have connected two shift register then in this case now I am sending data to two shift register and my output will be of total 16 bits.
- So, in this way we can add as many shift registers as we want and here I have added total 8 shift registers so my output is total of 64 bits and I am controlling these 64 bits via single pin of Arduino which is data pin of course.
- Clock Pin and Load Pin are also used here which are used to send the data and then load it in sequence so in short using just 3 pins of Arduino I can control any number of shift register.
- Now, each shift register is controlling each LED Matrix 8×8 and the reason I am using 8 shift registers is because I am using 8 LED Matrix 8×8.
- It’s a bit tricky but quite simple. So, now we have complete overview of this shift register and how it works, now let’s move on to our simulation.
Scrolling Text on LED Matrix 8×8 using Arduino in Proteus ISIS
- First of all, download the Arduino library for LED Matrix 8×8 by clicking on the below button.
- Now design a complete circuit as shown in below figure in your Proteus ISIS software:
- Next thing you are gonna need is the code for Arduino board which is posted below, so copy it and paste it in your Arduino software:
#define MAX_DEVICES 8
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
MD_MAX72XX mx = MD_MAX72XX(DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
#define SCROLL_DELAY 200
#define CHAR_SPACING 1
#define BUF_SIZE 75
uint8_t scrollDataSource(uint8_t dev, MD_MAX72XX::transformType_t t)
static char *p = curMessage;
static uint8_t state = 0;
static uint8_t curLen, showLen;
static uint8_t cBuf;
showLen = mx.getChar(*p++, sizeof(cBuf)/sizeof(cBuf), cBuf);
curLen = 0;
if (*p == '\0')
p = curMessage;
colData = cBuf[curLen++];
if (curLen == showLen)
showLen = CHAR_SPACING;
curLen = 0;
state = 2;
colData = 0;
if (curLen == showLen)
state = 0;
state = 0;
static uint32_t prevTime = 0;
if (millis()-prevTime >= SCROLL_DELAY)
prevTime = millis();
newMessage = '\0';
- Now after uploading the code in Arduino software, get the Hex file for Arduino and upload it in your Arduino board in Proteus ISIS.
- Now when you upload it to your Arduino board and run your simulation you will get something as shown in below figure:
- Now let’s have a look at How it scrolls, I really have to work hard to make the below figure but it looks cool isn’t it. 🙂
- So, that’s how our website link is gonna scroll from right to left and you can scroll any kind of text.
- You can buy the complete simulation along with Arduino code and hex file by clicking on below button.
That’s all for today. I hope you guys get some knowledge out of it. Let’s meet in the next tutorial, till then take care!!! 🙂