#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include "Font_Data.h"
#define MAX_DEVICES 20
#define MAX_ZONES 2
#define ZONE_SIZE (MAX_DEVICES/MAX_ZONES)
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define CLK_PIN 18
#define DATA_PIN 19
#define CS_PIN 5
//MD_Parola P = MD_Parola(CS_PIN, MAX_DEVICES);
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
void setup(void)
{
Serial.begin(9600);
delay(2000);
P.begin(MAX_ZONES);
P.setInvert(false);
P.setIntensity(0);
P.setZone(0, 0, ZONE_SIZE-1);
P.setZone(1, ZONE_SIZE, MAX_DEVICES-1);
}
void loop(void)
{
for (uint8_t i=0; i<12; i++)
{
Serial.println(i);
switch(i) {
case 1:
delay(1000);
P.setZone(0, 0, ZONE_SIZE-1);
P.setZone(1, ZONE_SIZE, MAX_DEVICES-1);
P.setFont(0, BigFontBottom);
P.setFont(1, BigFontUp);
P.displayZoneText(0, "Create 16-rows display using Parola library", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.displayZoneText(1, "Create 16-rows display using Parola library", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.synchZoneStart();
break;
case 2:
P.displayZoneText(0, "It is using custom fonts and 2 zones", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.displayZoneText(1, "It is using custom fonts and 2 zones", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.synchZoneStart();
break;
case 3:
P.setFont(0, NULL);
P.displayZoneText(0, "Zone 0 for bottom part:", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
break;
case 4:
P.setFont(0, BigFontBottom);
P.displayZoneText(0, "BIG FONT", PA_CENTER, 30, 0, PA_PRINT, PA_NO_EFFECT);
P.setFont(1, NULL);
P.displayZoneText(1, "Zone 1 for upper part:", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
break;
case 5:
P.setFont(0, BigFontBottom);
P.setFont(1, BigFontUp);
P.displayZoneText(0, "BIG FONT", PA_CENTER, 30, 2000, PA_PRINT, PA_SCROLL_DOWN);
P.displayZoneText(1, "BIG FONT", PA_CENTER, 30, 2000, PA_PRINT, PA_SCROLL_UP);
P.synchZoneStart();
break;
case 6:
P.setFont(0, BigFontBottom);
P.setFont(1, BigFontUp);
P.displayZoneText(0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.displayZoneText(1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.synchZoneStart();
break;
case 7:
P.displayZoneText(0, "abcdefghijklmnopqrstuvwxyz", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.displayZoneText(1, "abcdefghijklmnopqrstuvwxyz", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.synchZoneStart();
break;
case 8:
P.displayZoneText(0, "1234567890", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.displayZoneText(1, "1234567890", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.synchZoneStart();
break;
case 9:
P.displayZoneText(0, "`!@#$%^&*()_+-={};:'\"<>?,./|\\{}", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.displayZoneText(1, "`!@#$%^&*()_+-={};:'\"<>?,./|\\{}", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.synchZoneStart();
break;
case 10:
P.displayZoneText(0, "You can download library at parola.codeplex.com", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.displayZoneText(1, "You can download library at parola.codeplex.com", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.synchZoneStart();
break;
case 11:
P.displayZoneText(0, "Check video description for source code for that example", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.displayZoneText(1, "Check video description for source code for that example", PA_CENTER, 30, 0, PA_PRINT, PA_PRINT);
P.synchZoneStart();
break;
default:
delay(2000);
P.setFont(0, NULL);
P.setFont(1, NULL);
P.displayZoneText(0, "solution for", PA_CENTER, 30, 2000, PA_SCROLL_UP, PA_SCROLL_DOWN);
P.displayZoneText(1, "This is my", PA_CENTER, 30, 2000, PA_SCROLL_DOWN, PA_SCROLL_UP);
}
while (!P.getZoneStatus(0) || !P.getZoneStatus(1))
P.displayAnimate();
}
}