LCDemo Martix
#include <>
/*F********************************************************************
* WE ALWAYS HAVE TO INCLUDE LIBRARY
**********************************************************************/
#include "LedControl.h"
//************************* DEFINES ************************************
//************************* PROTOTYPES ************************************
void writeArduinoOnMatrix();
void rows();
void columns();
void single();
//************************* VARIABLES ************************************
/*I*******************************************************
Now we need a LedControl to work with.
***** These pin numbers will probably not work with your hardware *****
pin 12 is connected to the DataIn
pin 11 is connected to the CLK
pin 10 is connected to LOAD
We have only a single MAX72XX.
********************************************************/
LedControl lc = LedControl( 12, 11, 10, 1);
unsigned long delaytime = 100; // ALWAYS WAIT A BIT BETWEEN DISPLAY UPDATES
/*F********************************************************************
*
**********************************************************************/
void
setup()
{
// MAX72XX IN POWER-SAVING MODE ON STARTUP, NEEDS A WAKEUP CALL
lc.shutdown( 0, false );
lc.setIntensity( 0, 8 ); // SET BRIGHTNESS TO A MEDIUM VALUES
lc.clearDisplay( 0 ); // AND CLEAR DISPLAY
}
/*F********************************************************************
*
**********************************************************************/
void
loop()
{
writeArduinoOnMatrix();
rows();
columns();
single();
}
/*F********************************************************************
* THIS METHOD WILL DISPLAY CHARACTERS FOR WORD "Arduino" ONE AFTER OTHER ON
MATRIX. (YOU NEED AT LEAST 5X7 LEDS TO SEE THE WHOLE CHARS)
**********************************************************************/
void
writeArduinoOnMatrix()
{
// HERE IS DATA FOR CHARACTERS
byte a[5]={ B01111110, B10001000, B10001000, B10001000, B01111110};
byte r[5]={ B00111110, B00010000, B00100000, B00100000, B00010000};
byte d[5]={ B00011100, B00100010, B00100010, B00010010, B11111110};
byte u[5]={ B00111100, B00000010, B00000010, B00000100, B00111110};
byte i[5]={ B00000000, B00100010, B10111110, B00000010, B00000000};
byte n[5]={ B00111110, B00010000, B00100000, B00100000, B00011110};
byte o[5]={ B00011100, B00100010, B00100010, B00100010, B00011100};
// NOW DISPLAY THEM ONE BY ONE WITH A SMALL DELAY
lc.setRow( 0, 0, a[0] );
lc.setRow( 0, 1, a[1] );
lc.setRow( 0, 2, a[2] );
lc.setRow( 0, 3, a[3] );
lc.setRow( 0, 4, a[4] );
delay( delaytime );
lc.setRow( 0, 0, r[0] );
lc.setRow( 0, 1, r[1] );
lc.setRow( 0, 2, r[2] );
lc.setRow( 0, 3, r[3] );
lc.setRow( 0, 4, r[4] );
delay( delaytime );
lc.setRow( 0, 0, d[0] );
lc.setRow( 0, 1, d[1] );
lc.setRow( 0, 2, d[2] );
lc.setRow( 0, 3, d[3] );
lc.setRow( 0, 4, d[4] );
delay( delaytime );
lc.setRow( 0, 0, u[0] );
lc.setRow( 0, 1, u[1] );
lc.setRow( 0, 2, u[2] );
lc.setRow( 0, 3, u[3] );
lc.setRow( 0, 4, u[4] );
delay( delaytime );
lc.setRow( 0, 0, i[0] );
lc.setRow( 0, 1, i[1] );
lc.setRow( 0, 2, i[2] );
lc.setRow( 0, 3, i[3] );
lc.setRow( 0, 4, i[4] );
delay( delaytime );
lc.setRow( 0, 0, n[0] );
lc.setRow( 0, 1, n[1] );
lc.setRow( 0, 2, n[2] );
lc.setRow( 0, 3, n[3] );
lc.setRow( 0, 4, n[4] );
delay( delaytime );
lc.setRow( 0, 0, o[0] );
lc.setRow( 0, 1, o[1] );
lc.setRow( 0, 2, o[2] );
lc.setRow( 0, 3, o[3] );
lc.setRow( 0, 4, o[4] );
delay( delaytime );
lc.setRow( 0, 0, 0 );
lc.setRow( 0, 1, 0 );
lc.setRow( 0, 2, 0 );
lc.setRow( 0, 3, 0 );
lc.setRow( 0, 4, 0 );
delay( delaytime );
}
/*F********************************************************************
* lights up some Leds in row. pattern will be repeated on every row. pattern
will blink along with row-number. row number 4 (index==3) will blink 4 times
**********************************************************************/
void
rows()
{
for( int row = 0; row < 8; row++ )
{
delay( delaytime );
lc.setRow( 0, row, B10100000);
delay( delaytime );
lc.setRow( 0, row, (byte)0);
for( int i = 0; i < row; i++)
{
delay( delaytime );
lc.setRow( 0, row, B10100000);
delay( delaytime );
lc.setRow( 0, row, (byte)0 );
}
}
}
/*F********************************************************************
* lights up a some Leds in a column. pattern will be repeated on every column.
pattern will blink along with column-number. column number 4 (index==3) will
blink 4 times etc.
**********************************************************************/
void
columns()
{
for(int col=0;col<8;col++)
{
delay( delaytime );
lc.setColumn( 0, col, B10100000 );
delay( delaytime );
lc.setColumn( 0, col, (byte)0 );
for( int i = 0; i < col; i++)
{
delay( delaytime );
lc.setColumn( 0, col, B10100000 );
delay( delaytime );
lc.setColumn( 0, col, (byte)0 );
}
}
}
/*F********************************************************************
* will light up every Led on the matrix. led will blink along with row-number.
row number 4 (index==3) will blink 4 times etc.
**********************************************************************/
void
single()
{
for( int row = 0; row < 8; row++ )
{
for( int col = 0; col < 8; col++)
{
delay( delaytime );
lc.setLed( 0, row, col, true );
delay( delaytime );
for( int i = 0; i < col; i++)
{
lc.setLed( 0, row, col, false );
delay( delaytime );
lc.setLed( 0, row, col, true);
delay( delaytime );
}
}
}
}