#define FASTLED_INTERNAL 1
#include <FastLED.h>
#include "LEDMatrix.h"
#include "LEDText.h"
#include "FontMatrise.h"
#include "FontP16x16.h"
#include "ComicSansP24.h"
#define MATRIX_WIDTH 36
#define MATRIX_HEIGHT 24
#define MATRIX_TYPE HORIZONTAL_MATRIX
cLEDMatrix<MATRIX_WIDTH, -MATRIX_HEIGHT, MATRIX_TYPE> leds;
cLEDText ScrollingMsg;
PROGMEM const unsigned char TxtDemo[] = { EFFECT_SCROLL_LEFT "LEFT SCROLL "
EFFECT_SCROLL_RIGHT " LLORCS THGIR"
EFFECT_SCROLL_DOWN " SCROLL DOWN SCROLL DOWN " EFFECT_FRAME_RATE "\x04" " SCROLL DOWN " EFFECT_FRAME_RATE "\x00" " "
EFFECT_SCROLL_UP " SCROLL UP SCROLL UP " EFFECT_FRAME_RATE "\x04" " SCROLL UP " EFFECT_FRAME_RATE "\x00" " "
EFFECT_CHAR_UP EFFECT_SCROLL_LEFT " UP"
EFFECT_CHAR_RIGHT " RIGHT"
EFFECT_CHAR_DOWN " DOWN"
EFFECT_CHAR_LEFT " LEFT"
EFFECT_HSV_CV "\x00\xff\xff\x40\xff\xff" EFFECT_CHAR_UP " HSV_CV 00-40"
EFFECT_HSV_CH "\x00\xff\xff\x40\xff\xff" " HSV_CH 00-40"
EFFECT_HSV_AV "\x00\xff\xff\x40\xff\xff" " HSV_AV 00-40"
EFFECT_HSV_AH "\x00\xff\xff\xff\xff\xff" " HSV_AH 00-FF"
" " EFFECT_HSV "\x00\xff\xff" "R" EFFECT_HSV "\x20\xff\xff" "A" EFFECT_HSV "\x40\xff\xff" "I" EFFECT_HSV "\x60\xff\xff" "N" EFFECT_HSV "\xe0\xff\xff" "B" EFFECT_HSV "\xc0\xff\xff" "O"
EFFECT_HSV "\xa0\xff\xff" "W" EFFECT_HSV "\x80\xff\xff" "S " EFFECT_DELAY_FRAMES "\x00\x96" EFFECT_RGB "\xff\xff\xff" };
void setup() {
Serial.begin(115200);
FastLED.addLeds<NEOPIXEL, 8> (leds[0], leds.Size());
// ScrollingMsg.SetFont(MatriseFontData);
// ScrollingMsg.SetFont(FontP16x16Data);
ScrollingMsg.SetFont(ComicSansP24Data);
ScrollingMsg.Init(&leds, leds.Width(), ScrollingMsg.FontHeight() + 1, 0, 0);
ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1);
ScrollingMsg.SetTextColrOptions(COLR_RGB | COLR_SINGLE, 0xff, 0x00, 0xff);
}
void loop() {
if (ScrollingMsg.UpdateText() == -1)
ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1);
else
FastLED.show();
// delay(10);
// print frames per second
uint16_t sample_frames = 50;
static uint16_t frame;
static uint32_t last_ms;
if (++frame == sample_frames) {
frame = 0;
Serial.print(sample_frames * 1000.0 / (millis() - last_ms));
Serial.println(" FPS");
last_ms = millis();
}
}