Arduino 8x8 Dot Led Matrix Scrolling Text Calculator

7,667

26

11

Posted

Introduction: Arduino 8x8 Dot Led Matrix Scrolling Text Calculator

Hi,

I do it because i need a calculator for my girl friend (i'm preparing a gift for her :))

Anyway, it's easy. I attached standart code for arduino 8x8 dot matrix 7219. Then you can create your text with my excel file and copy codes from the excel, paste to the arduino code editor. But then you have to do something, because i don't finished all codes for excel file. You just copy codes from excel, paste to an editor (i'm using notepad++, it's my personal choise) and add "{" characters to all start of rows and add "}," to all end of rows. That's it!

How you can use the excel file? Very easy. When you open the excel file, you will see some texts (it's written with "1" characters. It's an example and you can change it. Then you can use "left" and "calculate" buttons for scrolling and codes. Thats it. Please try, if you cannot use, write to here, i can help you.

Have a nice day.

Share

Recommendations

  • Epilog Challenge 9

    Epilog Challenge 9
  • First Time Author Contest 2018

    First Time Author Contest 2018
  • Sew Warm Contest 2018

    Sew Warm Contest 2018
user

We have a be nice policy.
Please be positive and constructive.

Tips

Questions

11 Comments

hey bro i need ur help ....i want the circuit diagram plssssssssssssssssssss

m no. +919549874312(whatsapp no.)

email id: ravianpara26@gmail.com

thank u....

Nice project. Thanx for sharing with us.

can we get codes for displaying small alphabets??

hi ,

this code working but not scrolling!!!!! just changing character but your video show is that scrolling how is that is the code is different??????

Hi,

It's scrolling. I am sure about it. Please check everything again.

unsigned char i;

unsigned char j;

/*Port Definitions*/

int Max7219_pinCLK = 10;

int Max7219_pinCS = 9;

int Max7219_pinDIN = 8;

unsigned char disp1[38][8]={

{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0

{0x8,0x18,0x28,0x8,0x8,0x8,0x8,0x8},//1

{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2

{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3

{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4

{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5

{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6

{0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7

{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8

{0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9

{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A

{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B

{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C

{0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D

{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E

{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F

{0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G

{0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H

{0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I

{0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J

{0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K

{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L

{0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M

{0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N

{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O

{0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P

{0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q

{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R

{0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S

{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T

{0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U

{0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V

{0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W

{0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X

{0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y

{0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z

};

void Write_Max7219_byte(unsigned char DATA)

{

unsigned char i;

digitalWrite(Max7219_pinCS,LOW);

for(i=8;i>=1;i--)

{

digitalWrite(Max7219_pinCLK,LOW);

digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data

DATA = DATA<<1;

digitalWrite(Max7219_pinCLK,HIGH);

}

}

void Write_Max7219(unsigned char address,unsigned char dat)

{

digitalWrite(Max7219_pinCS,LOW);

Write_Max7219_byte(address); //address,code of LED

Write_Max7219_byte(dat); //data,figure on LED

digitalWrite(Max7219_pinCS,HIGH);

}

void Init_MAX7219(void)

{

Write_Max7219(0x09, 0x00); //decoding :BCD

Write_Max7219(0x0a, 0x03); //brightness

Write_Max7219(0x0b, 0x07); //scanlimit;8 LEDs

Write_Max7219(0x0c, 0x01); //power-down mode:0,normal mode:1

Write_Max7219(0x0f, 0x00); //test display:1;EOT,display:0

}

void setup()

{

pinMode(Max7219_pinCLK,OUTPUT);

pinMode(Max7219_pinCS,OUTPUT);

pinMode(Max7219_pinDIN,OUTPUT);

delay(50);

Init_MAX7219();

}

void loop()

{

for(j=0;j<38;j++)

{

for(i=1;i<9;i++)

Write_Max7219(i,disp1[j][i-1]);

delay(500);

}

}

This is awesome! Nice idea, thanks for sharing :)