#include <MD_MAX72xx.h> // matrix
#include "util.h"
#include "pictures.h"
// MATRIX stuff
#define PIN_CS 10 //
#define PIN_DIN 11 // not in use below
#define PIN_CLK 13 // not in use below
#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
#define MAX_DEVICES 1 // Define the number of displays connected
// Hardware SPI connection
MD_MAX72XX matrix(HARDWARE_TYPE, PIN_CS, MAX_DEVICES);
int jumpFrequency = 5;
int lineDrawDelay = 20;
int shakeDelay = 8;
// draws.h:
void drawPicture(Pictures name, int dely = 50) {
byte* picBytes = getPicture(name);
for (int i = 0; i < 8 ; i++) {
matrix.setRow(i, picBytes[i]);
if (dely) {
delay(dely);
};
};
};
void jumpingHearts(int delay1 = 100, int delay2 = 2000, int jumpfreq = jumpFrequency) {
drawPicture(Pictures::Heart, delay1);
flipColumns(heart, 8);
switchTopBottom(heart, 8, jumpfreq);
delay(delay2);
};
void drawSmile(int delay1 = 100, int delay2 = 2000) {
drawPicture(Pictures::Smile, delay1);
delay(delay2);
};
void drawFull(int dely = 50) {
for (int i = 0; i < 64; i++) {
matrix.setPoint(i % 8, floor(i / 8), fullDrawState);
delay(dely);
}
fullDrawState = ! fullDrawState;
}
void setup() {
//Serial.begin(9600);
confirmationBlink();
matrix.begin();
matrix.control(MD_MAX72XX::INTENSITY, MAX_INTENSITY / 8);
};
void loop() {
//drawFull();
/*
for (int i = 0; i < 4; i++) {
drawSmile(lineDrawDelay, rotateDelay);
rotateClockwise(smile, 8, 8);
}
for (int i = 0; i < 4; i++) {
drawSmile(lineDrawDelay, rotateDelay);
rotateCounterClockwise(smile, 8, 8);
}*/
jumpingHearts(lineDrawDelay, shakeDelay);
}