#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 11
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
int display = 0;
int ptn = 20;
// Sprite Definitions
const uint8_t F_PMAN1 = 6;
const uint8_t W_PMAN1 = 8;
const uint8_t PROGMEM pacman1[F_PMAN1 * W_PMAN1] = // gobbling pacman animation
{
0x00, 0x81, 0xc3, 0xe7, 0xff, 0x7e, 0x7e, 0x3c,
0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c,
0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c,
0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c,
0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c,
0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c,
};
void setup(void)
{
P.begin();
Serial.begin(9600);
}
void loop(void)
{
if (P.displayAnimate()) {
ptn = analogRead(A3);
Serial.print(ptn);
switch (display) {
case 0:
P.displayText("No_Eff", PA_CENTER, ptn, 1000, PA_NO_EFFECT, PA_NO_EFFECT);
display++;
break;
case 1:
P.displayText("Print", PA_CENTER, ptn, 1000, PA_PRINT, PA_NO_EFFECT);
display++;
break;
case 2:
P.displayText("Scr_Up", PA_CENTER, ptn, 1000, PA_SCROLL_UP, PA_SCROLL_UP);
display++;
break;
case 3:
P.displayText("Scr_Do", PA_CENTER, ptn, 1000, PA_SCROLL_DOWN, PA_SCROLL_DOWN);
display++;
break;
case 4:
P.displayText("Scr_Left", PA_CENTER, ptn, 1000, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
display++;
break;
case 5:
P.displayText("Scr_Right", PA_CENTER, ptn, 1000, PA_SCROLL_RIGHT, PA_SCROLL_RIGHT);
display++;
break;
case 6:
P.displayText("Sprite", PA_CENTER, ptn, 1000, PA_SPRITE, PA_SPRITE);
P.setSpriteData(pacman1, W_PMAN1, F_PMAN1, pacman1, W_PMAN1, F_PMAN1);
display++;
break;
case 7:
P.displayText("Slice", PA_CENTER, 5, 1000, PA_SLICE, PA_SLICE);
display++;
break;
case 8:
P.displayText("Mesh", PA_CENTER, 35, 1000, PA_MESH, PA_MESH);
display++;
break;
case 9:
P.displayText("Fade", PA_CENTER, ptn, 1000, PA_FADE, PA_FADE);
display++;
break;
case 10:
P.displayText("Dissolve", PA_CENTER, ptn, 1000, PA_DISSOLVE, PA_DISSOLVE);
display++;
break;
case 11:
P.displayText("Dissolve", PA_CENTER, ptn, 1000, PA_DISSOLVE, PA_DISSOLVE);
display++;
break;
case 12:
P.displayText("Random", PA_CENTER, 25, 1000, PA_RANDOM, PA_RANDOM);
display++;
break;
case 13:
P.displayText("Wipe", PA_CENTER, 25, 1000, PA_WIPE, PA_WIPE);
display++;
break;
case 14:
P.displayText("Wipe_C", PA_CENTER, 25, 1000, PA_WIPE_CURSOR, PA_WIPE_CURSOR);
display++;
break;
case 15:
P.displayText("ScanH", PA_CENTER, ptn, 1000, PA_SCAN_HORIZ, PA_SCAN_HORIZ);
display++;
break;
case 16:
P.displayText("ScanHX", PA_CENTER, ptn, 1000, PA_SCAN_HORIZX, PA_SCAN_HORIZX);
display++;
break;
case 17:
P.displayText("ScanV", PA_CENTER, 40, 1000, PA_SCAN_VERT, PA_SCAN_VERT);
display++;
break;
case 18:
P.displayText("ScanVX", PA_CENTER, 40, 1000, PA_SCAN_VERTX, PA_SCAN_VERTX);
display++;
break;
case 19:
P.displayText("Open", PA_CENTER, 40, 1000, PA_OPENING, PA_OPENING);
display++;
break;
case 20:
P.displayText("Open_C", PA_CENTER, 40, 1000, PA_OPENING_CURSOR, PA_OPENING_CURSOR);
display++;
break;
case 21:
P.displayText("Close", PA_CENTER, 40, 1000, PA_CLOSING, PA_CLOSING);
display++;
break;
case 22:
P.displayText("Close_C", PA_CENTER, 40, 1000, PA_CLOSING_CURSOR, PA_CLOSING_CURSOR);
display++;
break;
case 23:
P.displayText("S_Up_L", PA_CENTER, 40, 1000, PA_SCROLL_UP_LEFT, PA_SCROLL_UP_LEFT);
display++;
break;
case 24:
P.displayText("S_Up_R", PA_CENTER, 40, 1000, PA_SCROLL_UP_RIGHT, PA_SCROLL_UP_RIGHT);
display++;
break;
case 25:
P.displayText("S_Dw_L", PA_CENTER, 40, 1000, PA_SCROLL_DOWN_LEFT, PA_SCROLL_DOWN_LEFT);
display++;
break;
case 26:
P.displayText("S_Dw_R", PA_CENTER, 40, 1000, PA_SCROLL_DOWN_RIGHT, PA_SCROLL_DOWN_RIGHT);
display++;
break;
case 27:
P.displayText("Grow_U", PA_CENTER, ptn, 1000, PA_GROW_UP, PA_GROW_UP);
display++;
break;
case 28:
P.displayText("Grow_D", PA_CENTER, ptn, 1000, PA_GROW_DOWN, PA_GROW_DOWN);
display=0;
break;
}
}
}