#include <MD_MAX72xx.h>
#include <SPI.h>
#include <LedControl.h>
#define DATA_PIN 11
#define CS_PIN 12
#define CLK_PIN 13
#define MAX_DEVICES 4
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
// Class Constructor - arbitrary digital interface.
MD_MAX72XX max7219 = MD_MAX72XX (HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
LedControl led = LedControl (DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
#define ROW_SIZE 8 // The size in pixels of a row in the device LED matrix array
#define COL_SIZE 32 // The size in pixels of a column in the device LED matrix array
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_R_to_L_up_to_down(void)
{
uint8_t row;
uint8_t col;
bool state_true = true;
for (row=0; row<ROW_SIZE; row++)
{
for (col=0; col<COL_SIZE; col++)
{
max7219.setPoint(row, col, state_true);
delay(15);
}
}
}
void reset_LED_Pixel_R_to_L_up_to_down(void)
{
uint8_t row;
uint8_t col;
bool state_false = false;
for (row=0; row<ROW_SIZE; row++)
{
for (col=0; col<COL_SIZE; col++)
{
max7219.setPoint(row, col, state_false);
delay(15);
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_L_to_R_up_to_down(void)
{
uint8_t row;
uint8_t col;
bool state_true = true;
for (row=0; row<ROW_SIZE; row++)
{
for (col=32; col<=COL_SIZE; col--)
{
max7219.setPoint(row, col, state_true);
delay(15);
}
}
}
void reset_LED_Pixel_L_to_R_up_to_down(void)
{
uint8_t row;
uint8_t col;
bool state_false = false;
for (row=0; row<ROW_SIZE; row++)
{
for (col=32; col<=COL_SIZE; col--)
{
max7219.setPoint(row, col, state_false);
delay(15);
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_R_to_L_down_to_up(void)
{
uint8_t row;
uint8_t col;
bool state_true = true;
for (row=7; row<=ROW_SIZE; row--)
{
for (col=0; col<COL_SIZE; col++)
{
max7219.setPoint(row, col, state_true);
delay(15);
}
}
}
void reset_LED_Pixel_R_to_L_down_to_up(void)
{
uint8_t row;
uint8_t col;
bool state_false = false;
for (row=7; row<=ROW_SIZE; row--)
{
for (col=0; col<COL_SIZE; col++)
{
max7219.setPoint(row, col, state_false);
delay(15);
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_L_to_R_down_to_up(void)
{
uint8_t row;
uint8_t col;
bool state_true = true;
for (row=7; row<=ROW_SIZE; row--)
{
for (col=32; col<=COL_SIZE; col--)
{
max7219.setPoint(row, col, state_true);
delay(15);
}
}
}
void reset_LED_Pixel_L_to_R_down_to_up(void)
{
uint8_t row;
uint8_t col;
bool state_false = false;
for (row=7; row<=ROW_SIZE; row--)
{
for (col=32; col<=COL_SIZE; col--)
{
max7219.setPoint(row, col, state_false);
delay(15);
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_up_to_down_R_L (void)
{
uint8_t row;
uint8_t col;
bool state_true = true;
for (col=0; col<COL_SIZE/2; col++)
{
for (row=0; row<ROW_SIZE; row++)
{
max7219.setPoint(row, col, state_true);
delay(20);
}
}
for (col=32; col>=COL_SIZE/2; col--)
{
for (row=0; row<ROW_SIZE; row++)
{
max7219.setPoint(row, col, state_true);
delay(20);
}
}
}
void reset_LED_Pixel_down_to_up_R_L (void)
{
uint8_t row;
uint8_t col;
bool state_false = false;
for (col=15; col<=COL_SIZE/2; col--)
{
for (row=7; row<ROW_SIZE; row--)
{
max7219.setPoint(row, col, state_false);
delay(20);
}
}
for (col=16; col<=COL_SIZE; col++)
{
for (row=7; row<ROW_SIZE; row--)
{
max7219.setPoint(row, col, state_false);
delay(20);
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_from_middle_inside_to_outside_down_to_up (void)
{
int8_t row_lsb = 7;
int8_t row_msb = 7;
int8_t col_lsb = 15;
int8_t col_msb = 16;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<COL_SIZE/2; i--)
{
max7219.setPoint(row_lsb--, col_lsb, state_true );
max7219.setPoint(row_msb--, col_msb, state_true );
delay(40);
if (row_lsb == -1 && row_msb == -1)
{
row_lsb = 7;
row_msb = 7;
col_lsb--;
col_msb++;
}
}
}
void reset_LED_Pixel_from_sides_outside_to_inside_up_to_down(void)
{
int8_t row_lsb = 0;
int8_t row_msb = 0;
int8_t col_lsb = 0;
int8_t col_msb = 31;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<COL_SIZE/2; i--)
{
max7219.setPoint(row_lsb++, col_lsb, state_false );
max7219.setPoint(row_msb++, col_msb, state_false );
delay(40);
if (row_lsb == 8 && row_msb == 8)
{
row_lsb = 0;
row_msb = 0;
col_lsb++;
col_msb--;
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_from_sides_outside_to_inside_up_to_down (void)
{
int8_t row_lsb = 0;
int8_t row_msb = 0;
int8_t col_lsb = 0;
int8_t col_msb = 31;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<COL_SIZE/2; i--)
{
max7219.setPoint(row_lsb++, col_lsb, state_true );
max7219.setPoint(row_msb++, col_msb, state_true );
delay(40);
if (row_lsb == 8 && row_msb == 8)
{
row_lsb = 0;
row_msb = 0;
col_lsb++;
col_msb--;
}
}
}
void reset_LED_Pixel_from_middle_inside_to_outside_down_to_up (void)
{
int8_t row_lsb = 7;
int8_t row_msb = 7;
int8_t col_lsb = 15;
int8_t col_msb = 16;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<COL_SIZE/2; i--)
{
max7219.setPoint(row_lsb--, col_lsb, state_false );
max7219.setPoint(row_msb--, col_msb, state_false );
delay(40);
if (row_lsb == -1 && row_msb == -1)
{
row_lsb = 7;
row_msb = 7;
col_lsb--;
col_msb++;
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_from_sides_outside_to_inside_flip_flop (void)
{
int8_t row_lsb = 0;
int8_t row_msb = 7;
int8_t col_lsb = 0;
int8_t col_msb = 31;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<COL_SIZE/2; i--)
{
max7219.setPoint(row_lsb++, col_lsb, state_true );
max7219.setPoint(row_msb--, col_msb, state_true );
delay(40);
if (row_lsb == 8 && row_msb == -1)
{
row_lsb = 0;
row_msb = 7;
col_lsb++;
col_msb--;
}
}
}
void reset_LED_Pixel_from_middle_inside_to_outside_flip_flop (void)
{
int8_t row_lsb = 7;
int8_t row_msb = 0;
int8_t col_lsb = 15;
int8_t col_msb = 16;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<COL_SIZE/2; i--)
{
max7219.setPoint(row_lsb--, col_lsb, state_false );
max7219.setPoint(row_msb++, col_msb, state_false );
delay(40);
if (row_lsb == -1 && row_msb == 8)
{
row_lsb = 7;
row_msb = 0;
col_lsb--;
col_msb++;
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_from_sides_R_L (void)
{
int8_t row_lsb = 0;
int8_t row_msb = 7;
int8_t col_lsb = 0;
int8_t col_msb = 31;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<ROW_SIZE/2; i--)
{
max7219.setPoint(row_lsb, col_lsb++, state_true );
max7219.setPoint(row_msb, col_msb--, state_true );
delay(40);
if (col_lsb == 32 && col_msb == -1)
{
row_lsb++;
row_msb--;
col_lsb = 0;
col_msb = 31;
}
}
}
void reset_LED_Pixel_from_sides_R_L (void)
{
int8_t row_lsb = 0;
int8_t row_msb = 7;
int8_t col_lsb = 31;
int8_t col_msb = 0;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<ROW_SIZE/2; i--)
{
max7219.setPoint(row_lsb, col_lsb--, state_false );
max7219.setPoint(row_msb, col_msb++, state_false );
delay(40);
if (col_lsb == -1 && col_msb == 32
)
{
row_lsb++;
row_msb--;
col_lsb = 31;
col_msb = 0;
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_from_sides_outside_to_inside_flip_flop_snake (void)
{
int8_t row_lsb = 0;
int8_t row_msb = 7;
int8_t col_lsb = 0;
int8_t col_msb = 31;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<COL_SIZE/4; i++)
{
if((row_lsb == 0) && (row_msb == 7))
{
for (int8_t j=0; j<ROW_SIZE; j++)
{
max7219.setPoint(row_lsb++, col_lsb, state_true );
max7219.setPoint(row_msb--, col_msb, state_true );
delay(40);
}
row_lsb = 7;
row_msb = 0;
}
if((row_lsb == 7) && (row_msb == 0))
{
col_lsb++;
col_msb--;
for (int8_t j=0; j<ROW_SIZE; j++)
{
max7219.setPoint(row_lsb--, col_lsb, state_true );
max7219.setPoint(row_msb++, col_msb, state_true );
delay(40);
}
row_lsb = 0;
row_msb = 7;
col_lsb++;
col_msb--;
}
}
}
void reset_LED_Pixel_from_middle_inside_to_outside_flip_flop_snake (void)
{
int8_t row_lsb = 7;
int8_t row_msb = 0;
int8_t col_lsb = 15;
int8_t col_msb = 16;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<COL_SIZE/4; i++)
{
if((row_lsb == 7) && (row_msb == 0))
{
for (int8_t j=0; j<ROW_SIZE; j++)
{
max7219.setPoint(row_lsb--, col_lsb, state_false );
max7219.setPoint(row_msb++, col_msb, state_false );
delay(40);
}
row_lsb = 0;
row_msb = 7;
}
if((row_lsb == 0) && (row_msb == 7))
{
col_lsb--;
col_msb++;
for (int8_t j=0; j<ROW_SIZE; j++)
{
max7219.setPoint(row_lsb++, col_lsb, state_false );
max7219.setPoint(row_msb--, col_msb, state_false );
delay(40);
}
row_lsb = 7;
row_msb = 0;
col_lsb--;
col_msb++;
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_two_columns_up_down (void)
{
int8_t row_down = 0;
int8_t row_up = 7;
int8_t col_down = 0;
int8_t col_up = 31;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<COL_SIZE/4; i++)
{
while(row_down != ROW_SIZE)
{
max7219.setPoint(row_down, col_down, state_true );
col_down += 2;
max7219.setPoint(row_down, col_down, state_true );
col_down -= 2;
delay(40);
row_down++;
}
if(row_down == ROW_SIZE)
{
col_down += 4;
row_down = 0 ;
}
}
for (int8_t i=0; i<COL_SIZE/4; i++)
{
while(row_up >= 0)
{
max7219.setPoint(row_up, col_up, state_true );
col_up -= 2;
max7219.setPoint(row_up, col_up, state_true );
col_up += 2;
delay(40);
row_up--;
}
if(row_up < 0)
{
col_up -= 4;
row_up = 7 ;
}
}
}
void reset_LED_Pixel_two_rows_right_left (void)
{
int8_t row_left = 0;
int8_t row_right = 7;
int8_t col_left = 0;
int8_t col_right = 31;
bool state_true = true;
bool state_false = false;
for (int8_t i=0; i<ROW_SIZE/4; i++)
{
while(col_left != COL_SIZE)
{
max7219.setPoint(row_left, col_left, state_false );
row_left += 2;
max7219.setPoint(row_left, col_left, state_false );
row_left -= 2;
delay(40);
col_left++;
}
if(col_left == COL_SIZE)
{
row_left += 4;
col_left = 0 ;
}
}
for (int8_t i=0; i<ROW_SIZE/4; i++)
{
while(col_right >= 0)
{
max7219.setPoint(row_right, col_right, state_false );
row_right -= 2;
max7219.setPoint(row_right, col_right, state_false );
row_right += 2;
delay(40);
col_right--;
}
if(col_right < 0)
{
row_right -= 4;
col_right = 31 ;
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_quadrat_grid (void)
{
uint8_t row_size = 0;
uint8_t device_count = 0;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
if(row_size == ROW_SIZE/2 )
{
row_size = 0; //at the end of the loop is row_size = 4
device_count++; //at the end of the loop is device_count = 3
}
while (row_size < ROW_SIZE/2)
{
max7219.setRow(device_count, row_size++, 0x0f);
delay(100);
}
}
// device_count = 3
// row_size = 4
row_size = 7;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
if(row_size < ROW_SIZE/2 )
{
row_size = 7; //at the end of the loop is row_size = 3
device_count--; //at the end of the loop is device_count = 0
}
while (row_size >= ROW_SIZE/2)
{
max7219.setRow(device_count, row_size--, 0xf0);
delay(100);
}
}
// device_count = 0
// row_size = 3
device_count = 3;
row_size = 0;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
if(row_size == ROW_SIZE/2 )
{
row_size = 0; //at the end of the loop is row_size = 4
device_count--; //at the end of the loop is device_count = 0
}
while (row_size < ROW_SIZE/2)
{
max7219.setRow(device_count, row_size++, 0xff);
delay(100);
}
}
// device_count = 0
// row_size = 4
row_size = 7;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
if(row_size < ROW_SIZE/2 )
{
row_size = 7; //at the end of the loop is row_size = 3
device_count++; //at the end of the loop is device_count = 3
}
while (row_size >= ROW_SIZE/2)
{
max7219.setRow(device_count, row_size--, 0xff);
delay(100);
}
}
// device_count = 3
// row_size = 3
}
void reset_LED_Pixel_quadrat_grid (void)
{
uint8_t row_size = 0;
uint8_t device_count = 0;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
if(row_size == ROW_SIZE/2 )
{
row_size = 0; //at the end of the loop is row_size = 4
device_count++; //at the end of the loop is device_count = 3
}
while (row_size < ROW_SIZE/2)
{
max7219.setRow(device_count, row_size++, 0xf0);
delay(100);
}
}
// device_count = 3
// row_size = 4
row_size = 7;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
if(row_size < ROW_SIZE/2 )
{
row_size = 7; //at the end of the loop is row_size = 3
device_count--; //at the end of the loop is device_count = 0
}
while (row_size >= ROW_SIZE/2)
{
max7219.setRow(device_count, row_size--, 0x0f);
delay(100);
}
}
// device_count = 0
// row_size = 3
device_count = 3;
row_size = 0;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
if(row_size == ROW_SIZE/2 )
{
row_size = 0; //at the end of the loop is row_size = 4
device_count--; //at the end of the loop is device_count = 0
}
while (row_size < ROW_SIZE/2)
{
max7219.setRow(device_count, row_size++, 0x00);
delay(100);
}
}
// device_count = 0
// row_size = 4
row_size = 7;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
if(row_size < ROW_SIZE/2 )
{
row_size = 7; //at the end of the loop is row_size = 3
device_count++; //at the end of the loop is device_count = 3
}
while (row_size >= ROW_SIZE/2)
{
max7219.setRow(device_count, row_size--, 0x00);
delay(100);
}
}
// device_count = 3
// row_size = 3
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_quadrat_spiral (void)
{
uint8_t row_size;
uint8_t col_size = 0;
uint8_t device_count = 0;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
while (col_size < COL_SIZE/8)
{
max7219.setColumn(device_count, col_size++, 0x0f);
delay(200);
//at the end of the loop is col_size = 4
}
if(col_size == COL_SIZE/8 ) row_size = 0;
while (row_size < ROW_SIZE/2)
{
max7219.setRow(device_count, row_size++, 0xff);
delay(200);
//at the end of the loop is row_size = 4
}
if(row_size == ROW_SIZE/2 ) col_size = 7;
while (col_size >= COL_SIZE/8)
{
max7219.setColumn(device_count, col_size--, 0xff);
delay(200);
//at the end of the loop is col_size = 3
}
if(col_size < COL_SIZE/8 ) row_size = 7;
while (row_size >= ROW_SIZE/2)
{
max7219.setRow(device_count, row_size--, 0xff);
delay(200);
//at the end of the loop is row_size = 3
}
if(row_size < ROW_SIZE/2 )
{
col_size = 0;
device_count++;
}
}
}
void reset_LED_Pixel_quadrat_spiral (void)
{
uint8_t row_size;
uint8_t col_size = 0;
uint8_t device_count = 0;
for (uint8_t i=0; i<MAX_DEVICES; i++) //at the end of the loop is i = 4
{
while (col_size < COL_SIZE/8)
{
max7219.setColumn(device_count, col_size++, 0xf0);
delay(200);
//at the end of the loop is col_size = 4
}
if(col_size == COL_SIZE/8 ) row_size = 0;
while (row_size < ROW_SIZE/2)
{
max7219.setRow(device_count, row_size++, 0x00);
delay(200);
//at the end of the loop is row_size = 4
}
if(row_size == ROW_SIZE/2 ) col_size = 7;
while (col_size >= COL_SIZE/8)
{
max7219.setColumn(device_count, col_size--, 0x00);
delay(200);
//at the end of the loop is col_size = 3
}
if(col_size < COL_SIZE/8 ) row_size = 7;
while (row_size >= ROW_SIZE/2)
{
max7219.setRow(device_count, row_size--, 0x00);
delay(200);
//at the end of the loop is row_size = 3
}
if(row_size < ROW_SIZE/2 )
{
col_size = 0;
device_count++;
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void set_LED_Pixel_diagonal(void)
{
uint8_t mode;
uint8_t DeviceCount;
uint8_t DeviceNumber;
DeviceCount = max7219.getDeviceCount();
DeviceNumber = DeviceCount;
for (mode=0; mode < DeviceCount/2; mode++)
{
if(max7219.getRow(DeviceCount-DeviceNumber,7) && max7219.getRow(DeviceCount-(DeviceNumber-1),0) == 0xFF)
{
DeviceNumber -= 2 ;
}
for (uint8_t i=0; i<ROW_SIZE; i++)
{
switch(i)
{
case 0:
{
max7219.setRow(DeviceCount-DeviceNumber, i , 0x01); //row_size 0 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i+7, 0x80); //row_size 7 Dev 1
delay(250);
break;
}
case 1:
{
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x03); //row_size 0 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x01); //row_size 1 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i+5, 0x80); //row_size 6 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+6, 0xC0); //row_size 7 Dev 1
delay(250);
break;
}
case 2:
{
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x07); //row_size 0 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x03); //row_size 1 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x01); //row_size 2 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x80); //row_size 5 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0xC0); //row_size 6 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+5, 0xE0); //row_size 7 Dev 1
delay(250);
break;
}
case 3:
{
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x0F); //row_size 0 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x07); //row_size 1 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x03); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x01); //row_size 3 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x80); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0xC0); //row_size 5 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0xE0); //row_size 6 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0xF0); //row_size 7 Dev 1
delay(250);
break;
}
case 4:
{
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0x1F); //row_size 0 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x0F); //row_size 1 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x07); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x03); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x01); //row_size 4 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x80); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i , 0xC0); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0xE0); //row_size 5 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0xF0); //row_size 6 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0xF8); //row_size 7 Dev 1
delay(250);
break;
}
case 5:
{
max7219.setRow(DeviceCount-DeviceNumber, i-5, 0x3F); //row_size 0 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0x1F); //row_size 1 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x0F); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x07); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x03); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x01); //row_size 5 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x80); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xC0); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xE0); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i , 0xF0); //row_size 5 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0xF8); //row_size 6 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0xFC); //row_size 7 Dev 1
delay(250);
break;
}
case 6:
{
max7219.setRow(DeviceCount-DeviceNumber, i-6, 0x7F); //row_size 0 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-5, 0x3F); //row_size 1 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0x1F); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x0F); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x07); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x03); //row_size 5 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x01); //row_size 6 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-5, 0x80); //row_size 1 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0xC0); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0xE0); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xF0); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xF8); //row_size 5 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i , 0xFC); //row_size 6 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0xFE); //row_size 7 Dev 1
delay(250);
break;
}
case 7:
{
max7219.setRow(DeviceCount-DeviceNumber, i-7, 0xFF); //row_size 0 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-6, 0x7F); //row_size 1 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-5, 0x3F); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0x1F); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x0F); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x07); //row_size 5 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x03); //row_size 6 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x01); //row_size 7 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-7, 0x80); //row_size 0 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-6, 0xC0); //row_size 1 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-5, 0xE0); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0xF0); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0xF8); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xFC); //row_size 5 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xFE); //row_size 6 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i , 0xFF); //row_size 7 Dev 1
delay(250);
break;
}
}
DeviceNumber++;
}
for (uint8_t i=7; i>ROW_SIZE-8; i--)
{
switch(i)
{
case 7:
{
max7219.setRow(DeviceCount-DeviceNumber, i-6, 0xFF); //row_size 1 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-5, 0x7F); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0x3F); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x1F); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x0F); //row_size 5 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x07); //row_size 6 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x03); //row_size 7 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-7, 0xC0); //row_size 0 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-6, 0xE0); //row_size 1 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-5, 0xF0); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0xF8); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0xFC); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xFE); //row_size 5 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xFF); //row_size 6 Dev 1
delay(250);
break;
}
case 6:
{
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0xFF); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x7F); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x3F); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x1F); //row_size 5 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x0F); //row_size 6 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x07); //row_size 7 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-6, 0xE0); //row_size 0 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-5, 0xF0); //row_size 1 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0xF8); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0xFC); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xFE); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xFF); //row_size 5 Dev 1
delay(250);
break;
}
case 5:
{
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xFF); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x7F); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x3F); //row_size 5 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x1F); //row_size 6 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x0F); //row_size 7 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-5, 0xF0); //row_size 0 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0xF8); //row_size 1 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0xFC); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xFE); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xFF); //row_size 4 Dev 1
delay(250);
break;
}
case 4:
{
max7219.setRow(DeviceCount-DeviceNumber, i , 0xFF); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x7F); //row_size 5 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x3F); //row_size 6 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x1F); //row_size 7 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-4, 0xF8); //row_size 0 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0xFC); //row_size 1 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xFE); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xFF); //row_size 3 Dev 1
delay(250);
break;
}
case 3:
{
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0xFF); //row_size 5 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x7F); //row_size 6 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0x3F); //row_size 7 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0xFC); //row_size 0 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xFE); //row_size 1 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xFF); //row_size 2 Dev 1
delay(250);
break;
}
case 2:
{
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0xFF); //row_size 6 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+5, 0x7F); //row_size 7 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0xFE); //row_size 0 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xFF); //row_size 1 Dev 1
delay(250);
break;
}
case 1:
{
max7219.setRow(DeviceCount-DeviceNumber, i+6, 0xFF); //row_size 7 Dev 0
DeviceNumber--;
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0xFF); //row_size 0 Dev 1
delay(250);
break;
}
}
DeviceNumber++;
}
}
delay(750);
}
void reset_LED_Pixel_diagonal(void)
{
uint8_t DeviceCount;
uint8_t DeviceNumber;
DeviceCount = max7219.getDeviceCount();
DeviceNumber = DeviceCount;
for (uint8_t i=0; i<ROW_SIZE/2; i++)
{
switch(i)
{
case 0:
{
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0xE7); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0xE7); //row_size 4 Dev 0
DeviceNumber--; // DeviceNumber = 3
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 0 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x7E); //row_size 1 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x7E); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x7E); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0x7E); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+5, 0x7E); //row_size 5 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+6, 0x7E); //row_size 6 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+7, 0x00); //row_size 7 Dev 1
DeviceNumber--; // DeviceNumber = 2
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0xE7); //row_size 3 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0xE7); //row_size 4 Dev 2
DeviceNumber--; // DeviceNumber = 1
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 0 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x7E); //row_size 1 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x7E); //row_size 2 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x7E); //row_size 3 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0x7E); //row_size 4 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+5, 0x7E); //row_size 5 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+6, 0x7E); //row_size 6 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+7, 0x00); //row_size 7 Dev 3
DeviceNumber = DeviceCount; // DeviceNumber = 4
delay(1000);
break;
}
case 1:
{
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0xC3); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0xC3); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0xC3); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0xC3); //row_size 5 Dev 0
DeviceNumber--; // DeviceNumber = 3
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 1 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x3C); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x3C); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x3C); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0x3C); //row_size 5 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+5, 0x00); //row_size 6 Dev 1
DeviceNumber--; // DeviceNumber = 2
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0xC3); //row_size 2 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0xC3); //row_size 3 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0xC3); //row_size 4 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0xC3); //row_size 5 Dev 2
DeviceNumber--; // DeviceNumber = 1
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 1 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x3C); //row_size 2 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x3C); //row_size 3 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x3C); //row_size 4 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0x3C); //row_size 5 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+5, 0x00); //row_size 6 Dev 3
DeviceNumber = DeviceCount; // DeviceNumber = 4
delay(1000);
break;
}
case 2:
{
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x81); //row_size 1 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x81); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x81); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x81); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x81); //row_size 5 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0x81); //row_size 6 Dev 0
DeviceNumber--; // DeviceNumber = 3
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 2 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x18); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x18); //row_size 4 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x00); //row_size 5 Dev 1
DeviceNumber--; // DeviceNumber = 2
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x81); //row_size 1 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i , 0x81); //row_size 2 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x81); //row_size 3 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x81); //row_size 4 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x81); //row_size 5 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0x81); //row_size 6 Dev 2
DeviceNumber--; // DeviceNumber = 1
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 2 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x18); //row_size 3 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x18); //row_size 4 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x00); //row_size 5 Dev 3
DeviceNumber = DeviceCount; // DeviceNumber = 4
delay(1000);
break;
}
case 3:
{
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x00); //row_size 0 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x00); //row_size 1 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x00); //row_size 2 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 3 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x00); //row_size 4 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x00); //row_size 5 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x00); //row_size 6 Dev 0
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0x00); //row_size 7 Dev 0
DeviceNumber--; // DeviceNumber = 3
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 3 Dev 1
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x00); //row_size 4 Dev 1
DeviceNumber--; // DeviceNumber = 2
max7219.setRow(DeviceCount-DeviceNumber, i-3, 0x00); //row_size 0 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i-2, 0x00); //row_size 1 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i-1, 0x00); //row_size 2 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 3 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x00); //row_size 4 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+2, 0x00); //row_size 5 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+3, 0x00); //row_size 6 Dev 2
max7219.setRow(DeviceCount-DeviceNumber, i+4, 0x00); //row_size 7 Dev 2
DeviceNumber--; // DeviceNumber = 1
max7219.setRow(DeviceCount-DeviceNumber, i , 0x00); //row_size 3 Dev 3
max7219.setRow(DeviceCount-DeviceNumber, i+1, 0x00); //row_size 4 Dev 3
DeviceNumber = DeviceCount; // DeviceNumber = 4
delay(1000);
break;
}
}
}
}
*/
/*--------------------------------------------------------------------------------------------------------------------*/
/*
void wrapText()
// Display text and animate scrolling using auto wraparound of the buffer
{
max7219.clear();
max7219.wraparound(MD_MAX72XX::ON);
// draw something that will show changes
for (uint16_t j=0; j<max7219.getDeviceCount(); j++)
{
max7219.setChar(((j+1)*COL_SIZE)-1, (j&1 ? 'M' : 'W'));
}
delay(100*5);
// run thru transformations
for (uint16_t i=0; i<3*COL_SIZE*MAX_DEVICES; i++)
{
max7219.transform(MD_MAX72XX::TSL);
delay(100/2);
}
for (uint16_t i=0; i<3*COL_SIZE*MAX_DEVICES; i++)
{
max7219.transform(MD_MAX72XX::TSR);
delay(100/2);
}
for (uint8_t i=0; i<ROW_SIZE; i++)
{
max7219.transform(MD_MAX72XX::TSU);
delay(100*2);
}
for (uint8_t i=0; i<ROW_SIZE; i++)
{
max7219.transform(MD_MAX72XX::TSD);
delay(100*2);
}
max7219.wraparound(MD_MAX72XX::OFF);
}
*/
void scrollText(const char *p)
{
uint8_t charWidth;
uint8_t cBuf[150]; // this should be ok for all built-in fonts
max7219.clear();
while (*p != '\0')
{
charWidth = max7219.getChar(*p++, sizeof(cBuf) / sizeof(cBuf[0]), cBuf);
for (uint8_t i=0; i<=charWidth; i++) // allow space between characters
{
max7219.transform(MD_MAX72XX::TSL);
max7219.setColumn(0, (i < charWidth) ? cBuf[i] : 0);
delay(150);
}
}
}
/*--------------------------------------------------------------------------------------------------------------------*/
void setup()
{
// Initialize the object data
Serial.begin(8000000);
max7219.begin();
led.setIntensity(MAX_DEVICES, 5);
}
void loop()
{
// put your main code here, to run repeatedly:
/*
set_LED_Pixel_R_to_L_up_to_down();
reset_LED_Pixel_R_to_L_up_to_down();
set_LED_Pixel_L_to_R_up_to_down();
reset_LED_Pixel_L_to_R_up_to_down();
set_LED_Pixel_R_to_L_down_to_up();
reset_LED_Pixel_R_to_L_down_to_up();
set_LED_Pixel_L_to_R_down_to_up();
reset_LED_Pixel_L_to_R_down_to_up();
set_LED_Pixel_up_to_down_R_L();
reset_LED_Pixel_down_to_up_R_L();
set_LED_Pixel_from_middle_inside_to_outside_down_to_up();
reset_LED_Pixel_from_sides_outside_to_inside_up_to_down();
set_LED_Pixel_from_sides_outside_to_inside_up_to_down();
reset_LED_Pixel_from_middle_inside_to_outside_down_to_up();
set_LED_Pixel_from_sides_outside_to_inside_flip_flop();
reset_LED_Pixel_from_middle_inside_to_outside_flip_flop();
set_LED_Pixel_from_sides_R_L();
reset_LED_Pixel_from_sides_R_L();
set_LED_Pixel_from_sides_outside_to_inside_flip_flop_snake();
reset_LED_Pixel_from_middle_inside_to_outside_flip_flop_snake();
set_LED_Pixel_two_columns_up_down();
reset_LED_Pixel_two_rows_right_left();
set_LED_Pixel_quadrat_grid();
reset_LED_Pixel_quadrat_grid();
set_LED_Pixel_quadrat_spiral();
reset_LED_Pixel_quadrat_spiral();
set_LED_Pixel_diagonal();
reset_LED_Pixel_diagonal();
wrapText();
*/
scrollText("Ich wunsche Ihnen eine unvergessliche Nacht und einen guten Rutsch ins neue Jahr... Projektvorbereitung: Ali Dadashpoor ");
}