// https://forum.arduino.cc/t/help-with-program-for-led-matrix-slideshow/1191399/
#include <FastLED.h>
#include <avr/pgmspace.h> // for PROGMEM
#define ROWS 16 // rows of Neopixels
#define COLS 32 // columns per row
#define NUM_LEDS (ROWS * COLS)
#define PAGE 13 // 192 columns displayed on 32 column matrix
#define MATRIX_PIN 6
#define MAXBRIGHT 255
#define DREIDEL 78
#define FRAMES_PER_SECOND 60
CRGB led[NUM_LEDS];
//78 LEDs
int dreidel[] = {
255,222,189,156,123,90,57,24,23,22,21,20,19,
18,17,16,15,14,13,12,11,10,9,8,7,39,
71,103,135,134,133,132,131,130,129,128,160,192,224,
256,288,320,352,353,354,355,356,357,358,359,391,423,
455,487,488,489,490,491,492,493,494,495,496,497,498,
499,500,501,502,503,504,473,442,411,380,349,318,287
};
//# # # ##### -## ##
//# # # ----# -# #
//# # # #---# ## #
//# # # #---# #-# #
// ### #---# #-# ###
const PROGMEM char nun[] = { // sizeof() = 16 rows * 192 columns
"-------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------##################-------" // 0
"-------@-----------------@-------------@-----------------@-------------@-----------------@-------------@--###############@-------------@--###############@-------------@---------------##@-------------@---------------##@-------------@---------------##@-------------@---------------##@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------###################------" // 1
"-------@------------------@------------@------------------@------------@--###############-@------------@--##-----------##-@------------@---------------##-@------------@---------------##-@------------@---------------##-@------------@---------------##-@------------@------------------@------------@------------------@------------@------------------@------------@------------------@------------####################------------##----------------##-----" // 2
"-------@-------------------@-----------@--###############--@-----------@--##-----------##--@-----------@---------------##--@-----------@---------------##--@-----------@---------------##--@-----------@---------------##--@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------#####################-----------##-----------------##-----------##-----------------##----" // 3
"@@@@@@@@--###############---@---@@@@@@@@--##-----------##---@---@@@@@@@@--##-----------##---@---@@@@@@@@---------------##---@---@@@@@@@@---------------##---@---@@@@@@@@---------------##---@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---#############################---#########------------------##---#########------------------##---#########------------------##---" // 4
"@---------##-----------##----@--@---------##-----------##----@--@----------------------##----@--@----------------------##----@--@----------------------##----@--@----------------------------@--@----------------------------@--@----------------------------@--@----------------------------@--#-------######################--#-------#-------------------##--#-------#-------------------##--#-------#-------------------##--#-------#-------------------##--" // 5
"@---------##-----------##-----@-@---------##-----------##-----@-@----------------------##-----@-@----------------------##-----@-@-----------------------------@-@-----------------------------@-@-----------------------------@-@-----------------------------@-#-------#######################-#-------#--------------------##-#-------#--------------------##-#-------#--------------------##-#-------#--------------------##-#-------#--------------------##-" // 6
"@---------##-----------##------@@@@@@@@@@--------------##-----@@@@@@@@@@@--------------##-----@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########---------------------###########---------------------###########---------------------###########---------------------###########---------------------###########---------------------##" // 7
"@----------------------##------@@@@@@@@@@--------------##-----@@@@@@@@@@@--------------##-----@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@#########################################---------------------###########---------------------###########---------------------###########---------------------###########---------------------###########---------------------##" // 8
"@----------------------##-----@-@-------@--------------##----@@-@-------@--------------------@@-@-------@--------------------@@-@-------@--------------------@@-@-------@--------------------@@-#-------@@@@@@@@@@@@@@@@@@@@@@@-#-----------------------------#-#-----------------------------#-#-----------------------------#-#-----------------------------#-#-----------------------------#-#-----------------------------#-#-----------------------------#-" // 9
"@----------------------##----@--@-------@--------------##---@@--@-------@-------------------@@--@-------@-------------------@@--@-------@-------------------@@--@-------@@@@@@@@@@@@@@@@@@@@@@--#----------------------------#--#----------------------------#--#----------------------------#--#----------------------------#--#----------------------------#--#----------------------------#--#----------------------------#--#----------------------------#--" // 10
"@@@@@@@@---------------##---@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@@@@@@@@@@@@@@@@@@@@@---########--------------------#---########--------------------#---########--------------------#---########--------------------#---########--------------------#---########--------------------#---########--------------------#---########--------------------#---########--------------------#---" // 11
"-------@-------------------@-----------@@-----------------@@-----------@@-----------------@@-----------@@@@@@@@@@@@@@@@@@@@@-----------#-------------------#-----------#-------------------#-----------#-------------------#-----------#-------------------#-----------#-------------------#-----------#-------------------#-----------#-------------------#-----------#-------------------#-----------#-------------------#-----------#-------------------#----" // 12
"-------@------------------@------------@@----------------@@------------@@@@@@@@@@@@@@@@@@@@------------#------------------#------------#------------------#------------#------------------#------------#------------------#------------#------------------#------------#------------------#------------#------------------#------------#------------------#------------#------------------#------------#------------------#------------#------------------#-----" // 13
"-------@-----------------@-------------@@@@@@@@@@@@@@@@@@@-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#------" // 14
"-------@@@@@@@@@@@@@@@@@@--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################-------" // 15
};
const PROGMEM char gimmel[] = { // sizeof() = 16 rows * 192 columns
"-------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------##################-------" // 0
"-------@-----------------@-------------@-----------------@-------------@-----------------@-------------@--###############@-------------@--###############@-------------@--###############@-------------@--###############@-------------@--###############@-------------@--##------##-----@-------------@------------#####@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------###################------" // 1
"-------@------------------@------------@------------------@------------@--###############-@------------@--###############-@------------@--##------##------@------------@--##------##------@------------@--##------##------@------------@--##------##------@------------@------------#####-@------------@------------------@------------@------------------@------------@------------------@------------####################------------##----------------##-----" // 2
"-------@-------------------@-----------@--###############--@-----------@--###############--@-----------@--##------##-------@-----------@--##------##-------@-----------@--##------##-------@-----------@----------##-------@-----------@------------#####--@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------#####################-----------##-----------------##-----------##-----------------##----" // 3
"@@@@@@@@--###############---@---@@@@@@@@--###############---@---@@@@@@@@--##------##--------@---@@@@@@@@--##------##--------@---@@@@@@@@--##------##--------@---@@@@@@@@----------##--------@---@@@@@@@@------------#####---@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---#############################---#########------------------##---#########------------------##---#########------------------##---" // 4
"@---------###############----@--@---------##------##---------@--@---------##------##---------@--@---------##------##---------@--@-----------------##---------@--@-------------------#####----@--@----------------------------@--@----------------------------@--@----------------------------@--#-------######################--#-------#-------------------##--#-------#-------------------##--#-------#-------------------##--#-------#-@@@@@@@@@@@@@@@---##--" // 5
"@---------##------##----------@-@---------##------##----------@-@---------##------##----------@-@-----------------##----------@-@-------------------#####-----@-@-------------------#####-----@-@-----------------------------@-@-----------------------------@-#-------#######################-#-------#--------------------##-#-------#--------------------##-#-------#--------------------##-#-------#-@@@@@@@@@@@@@@@----##-#-------#-@@-----------@@----##-" // 6
"@---------##------##-----------@@@@@@@@@@-##------##----------@@@@@@@@@@@---------##----------@@@@@@@@@@@-----------#####-----@@@@@@@@@@@-----------#####-----@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########---------------------###########---------------------###########---------------------###########-@@@@@@@@@@@@@@@-----###########-@@-----------@@-----###########-@@-----------@@-----##" // 7
"@---------##------##-----------@@@@@@@@@@---------##----------@@@@@@@@@@@-----------#####-----@@@@@@@@@@@-----------#####-----@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@#########################################---------------------###########---------------------###########-@@@@@@@@@@@@@@@-----###########-@@-----------@@-----###########-@@-----------@@-----###########-@@-----------@@-----##" // 8
"@-----------------##----------@-@-------@-----------#####----@@-@-------@-----------#####----@@-@-------@--------------------@@-@-------@--------------------@@-@-------@--------------------@@-#-------@@@@@@@@@@@@@@@@@@@@@@@-#-----------------------------#-#-----------------------------#-#---------@@@@@@@@@@@@@@@-----#-#---------@@-----------@@-----#-#---------@@-----------@@-----#-#----------------------@@-----#-#----------------------@@-----#-" // 9
"@-------------------#####----@--@-------@-----------#####---@@--@-------@-------------------@@--@-------@-------------------@@--@-------@-------------------@@--@-------@@@@@@@@@@@@@@@@@@@@@@--#----------------------------#--#---------@@@@@@@@@@@@@@@----#--#---------@@@@@@@@@@@@@@@----#--#---------@@-----------@@----#--#---------@@-----------@@----#--#----------------------@@----#--#----------------------@@----#--#----------------------@@----#--" // 10
"@@@@@@@@------------#####---@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@@@@@@@@@@@@@@@@@@@@@---########--------------------#---########--@@@@@@@@@@@@@@@---#---########--@@-----------@@---#---########--@@-----------@@---#---########--@@-----------@@---#---########---------------@@---#---########---------------@@---#---########---------------@@---#---########---------------@@---#---" // 11
"-------@-------------------@-----------@@-----------------@@-----------@@-----------------@@-----------@@@@@@@@@@@@@@@@@@@@@-----------#-------------------#-----------#--@@@@@@@@@@@@@@@--#-----------#---------------@@--#-----------#---------------@@--#-----------#---------------@@--#-----------#---------------@@--#-----------#---------------@@--#-----------#---------------@@--#-----------#---------------@@--#-----------#---------------@@--#----" // 12
"-------@------------------@------------@@----------------@@------------@@@@@@@@@@@@@@@@@@@@------------#------------------#------------#--@@@@@@@@@@@@@@@-#------------#---------------@@-#------------#---------------@@-#------------#---------------@@-#------------#---------------@@-#------------#---------------@@-#------------#------------------#------------#------------------#------------#------------------#------------#------------------#-----" // 13
"-------@-----------------@-------------@@@@@@@@@@@@@@@@@@@-------------#-----------------#-------------#--@@@@@@@@@@@@@@@#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#------" // 14
"-------@@@@@@@@@@@@@@@@@@--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################-------" // 15
};
const PROGMEM char hey[] = { // sizeof() = 16 rows * 192 columns
"-------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------##################-------" // 0
"-------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@--###############@-------------@--###############@-------------@--##-----########@-------------@--##-----########@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------###################------" // 1
"-------@------------------@------------@------------------@------------@--###############-@------------@--###############-@------------@--###############-@------------@--###############-@------------@--###############-@------------@--##-----########-@------------@--##-----########-@------------@------------------@------------@------------------@------------@------------------@------------####################------------##----------------##-----" // 2
"-------@-------------------@-----------@--###############--@-----------@--###############--@-----------@--###############--@-----------@--###############--@-----------@--###############--@-----------@--##-----########--@-----------@--##-----########--@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------#####################-----------##-----------------##-----------##-----------------##----" // 3
"@@@@@@@@--###############---@---@@@@@@@@--###############---@---@@@@@@@@--##----------------@---@@@@@@@@--##----------------@---@@@@@@@@--##----------------@---@@@@@@@@--##-----########---@---@@@@@@@@--##-----########---@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---#############################---#########------------------##---#########------------------##---#########------------------##---" // 4
"@---------###############----@--@---------##-----------------@--@---------##-----------------@--@---------##-----------------@--@---------##-----########----@--@---------##-----########----@--@----------------------------@--@----------------------------@--@----------------------------@--#-------######################--#-------#-------------------##--#-------#-------------------##--#-------#-------------------##--#-------#-@@@@@@@@@@@@@@@---##--" // 5
"@---------##------------------@-@---------##------------------@-@---------##------------------@-@---------##-----########-----@-@---------##-----########-----@-@-----------------------------@-@-----------------------------@-@-----------------------------@-#-------#######################-#-------#--------------------##-#-------#--------------------##-#-------#--------------------##-#-------#--------------------##-#-------#-@@@@@@@@@@@@@@@----##-" // 6
"@---------##-------------------@@@@@@@@@@-##------------------@@@@@@@@@@@-##-----########-----@@@@@@@@@@@-##-----########-----@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########---------------------###########---------------------###########---------------------###########---------------------###########-@@@@@@@@@@@@@@@-----###########-@@------@@----------##" // 7
"@---------##-------------------@@@@@@@@@@-##------------------@@@@@@@@@@@-##-----########-----@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@#########################################---------------------###########---------------------###########---------------------###########-@@@@@@@@@@@@@@@-----###########-@@@@@@@@@@@@@@@-----###########-@@------@@----------##" // 8
"@---------##------------------@-@-------@-##-----########----@@-@-------@--------------------@@-@-------@--------------------@@-@-------@--------------------@@-@-------@--------------------@@-#-------@@@@@@@@@@@@@@@@@@@@@@@-#-----------------------------#-#-----------------------------#-#-----------------------------#-#---------@@@@@@@@@@@@@@@-----#-#---------@@@@@@@@@@@@@@@-----#-#---------@@------@@----------#-#---------@@------@@----------#-" // 9
"@---------##-----########----@--@-------@-##-----########---@@--@-------@-------------------@@--@-------@-------------------@@--@-------@-------------------@@--@-------@@@@@@@@@@@@@@@@@@@@@@--#----------------------------#--#----------------------------#--#----------------------------#--#---------@@@@@@@@@@@@@@@----#--#---------@@@@@@@@@@@@@@@----#--#---------@@------@@---------#--#---------@@------@@---------#--#-----------------@@---------#--" // 10
"@@@@@@@@--##-----########---@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@@@@@@@@@@@@@@@@@@@@@---########--------------------#---########--------------------#---########--------------------#---########--@@@@@@@@@@@@@@@---#---########--@@@@@@@@@@@@@@@---#---########--@@------@@--------#---########--@@------@@--------#---########--@@------@@--------#---########------------@@@@@---#---" // 11
"-------@-------------------@-----------@@-----------------@@-----------@@-----------------@@-----------@@@@@@@@@@@@@@@@@@@@@-----------#-------------------#-----------#-------------------#-----------#-------------------#-----------#--@@@@@@@@@@@@@@@--#-----------#--@@@@@@@@@@@@@@@--#-----------#--@@------@@-------#-----------#--@@------@@-------#-----------#----------@@-------#-----------#----------@@-------#-----------#------------@@@@@--#----" // 12
"-------@------------------@------------@@----------------@@------------@@@@@@@@@@@@@@@@@@@@------------#------------------#------------#------------------#------------#------------------#------------#--@@@@@@@@@@@@@@@-#------------#--@@@@@@@@@@@@@@@-#------------#--@@------@@------#------------#--@@------@@------#------------#----------@@------#------------#----------@@------#------------#------------@@@@@-#------------#------------------#-----" // 13
"-------@-----------------@-------------@@@@@@@@@@@@@@@@@@@-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#--@@@@@@@@@@@@@@@#-------------#--@@@@@@@@@@@@@@@#-------------#--@@------@@-----#-------------#--@@------@@-----#-------------#----------@@-----#-------------#------------@@@@@#-------------#------------@@@@@#-------------#------------@@@@@#-------------#-----------------#------" // 14
"-------@@@@@@@@@@@@@@@@@@--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################-------" // 15
};
const PROGMEM char shin[] = { // sizeof() = 16 rows * 192 columns
"-------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------##################-------" // 0
"-------@-----------------@-------------@-----------------@-------------@-----------------@-------------@--#############--@-------------@--#############--@-------------@--###############@-------------@--###############@-------------@--###############@-------------@--###############@-------------@--###############@-------------@--#############--@-------------@-----------------@-------------@-----------------@-------------###################------" // 1
"-------@------------------@------------@------------------@------------@--#############---@------------@--###############-@------------@--###############-@------------@--###############-@------------@--###############-@------------@--###############-@------------@--###############-@------------@--#############---@------------@------------------@------------@------------------@------------####################------------##----------------##-----" // 2
"-------@-------------------@-----------@--#############----@-----------@--###############--@-----------@---------------##--@-----------@--###############--@-----------@--###############--@-----------@--###############--@-----------@--###############--@-----------@--#############----@-----------@-------------------@-----------@-------------------@-----------#####################-----------##-----------------##-----------##-----------------##----" // 3
"@@@@@@@@--#############-----@---@@@@@@@@--###############---@---@@@@@@@@---------------##---@---@@@@@@@@--###############---@---@@@@@@@@--###############---@---@@@@@@@@---------------##---@---@@@@@@@@--###############---@---@@@@@@@@--#############-----@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---#############################---#########------------------##---#########------------------##---#########------------------##---" // 4
"@---------###############----@--@----------------------##----@--@---------###############----@--@---------###############----@--@----------------------##----@--@---------###############----@--@---------#############------@--@----------------------------@--@----------------------------@--#-------######################--#-------#-------------------##--#-------#-------------------##--#-------#-------------------##--#-------#-@@@@@@@@@@@@@@@---##--" // 5
"@----------------------##-----@-@---------###############-----@-@---------###############-----@-@----------------------##-----@-@---------###############-----@-@---------#############-------@-@-----------------------------@-@-----------------------------@-#-------#######################-#-------#--------------------##-#-------#--------------------##-#-------#--------------------##-#-------#-@@@@@@@@@@@@@@@----##-#-------#-@@@@@@@@@@@@@@@----##-" // 6
"@---------###############------@@@@@@@@@@-###############-----@@@@@@@@@@@--------------##-----@@@@@@@@@@@-###############-----@@@@@@@@@@@-#############-------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########---------------------###########---------------------###########---------------------###########-@@@@@@@@@@@@@@@-----###########-@@@@@@@@@@@@@@@-----###########-@@------------------##" // 7
"@---------###############------@@@@@@@@@@--------------##-----@@@@@@@@@@@-###############-----@@@@@@@@@@@-#############-------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@#########################################---------------------###########---------------------###########-@@@@@@@@@@@@@@@-----###########-@@@@@@@@@@@@@@@-----###########-@@------------------###########-@@------------------##" // 8
"@----------------------##-----@-@-------@-###############----@@-@-------@-#############------@@-@-------@--------------------@@-@-------@--------------------@@-@-------@--------------------@@-#-------@@@@@@@@@@@@@@@@@@@@@@@-#-----------------------------#-#-----------------------------#-#---------@@@@@@@@@@@@@@@-----#-#---------@@@@@@@@@@@@@@@-----#-#---------@@------------------#-#---------@@------------------#-#---------@@------------------#-" // 9
"@---------###############----@--@-------@-#############-----@@--@-------@-------------------@@--@-------@-------------------@@--@-------@-------------------@@--@-------@@@@@@@@@@@@@@@@@@@@@@--#----------------------------#--#----------------------------#--#---------@@@@@@@@@@@@@@@----#--#---------@@@@@@@@@@@@@@@----#--#---------@@-----------------#--#---------@@-----------------#--#---------@@-----------------#--#---------@@-----------------#--" // 10
"@@@@@@@@--#############-----@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@@@@@@@@@@@@@@@@@@@@@---########--------------------#---########--------------------#---########--@@@@@@@@@@@@@@@---#---########--@@@@@@@@@@@@@@@---#---########--@@----------------#---########--@@----------------#---########--@@----------------#---########--@@----------------#---########--@@-----@@@@@@@@---#---" // 11
"-------@-------------------@-----------@@-----------------@@-----------@@-----------------@@-----------@@@@@@@@@@@@@@@@@@@@@-----------#-------------------#-----------#-------------------#-----------#--@@@@@@@@@@@@@@@--#-----------#--@@@@@@@@@@@@@@@--#-----------#--@@---------------#-----------#--@@-----@@@@@@@@--#-----------#--@@-----@@@@@@@@--#-----------#--@@-----@@@@@@@@--#-----------#--@@-----@@@@@@@@--#-----------#--@@-----@@@@@@@@--#----" // 12
"-------@------------------@------------@@----------------@@------------@@@@@@@@@@@@@@@@@@@@------------#------------------#------------#------------------#------------#--@@@@@@@@@@@@@@@-#------------#--@@@@@@@@@@@@@@@-#------------#--@@--------------#------------#--@@-----@@@@@@@@-#------------#--@@-----@@@@@@@@-#------------#--@@-----@@@@@@@@-#------------#--@@-----@@@@@@@@-#------------#--@@-----@@@@@@@@-#------------#------------------#-----" // 13
"-------@-----------------@-------------@@@@@@@@@@@@@@@@@@@-------------#-----------------#-------------#-----------------#-------------#--@@@@@@@@@@@@@@@#-------------#--@@@@@@@@@@@@@@@#-------------#--@@-----@@@@@@@@#-------------#--@@-----@@@@@@@@#-------------#--@@-----@@@@@@@@#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#-------------#-----------------#------" // 14
"-------@@@@@@@@@@@@@@@@@@--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################-------" // 15
};
const PROGMEM char close[] = { // sizeof() = 16 rows * 192 columns
"-------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------@@@@@@@@@@@@@@@@@@--------------##################-------" // 0
"-------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------@-----------------@-------------###################------" // 1
"-------@------------------@------------@------------------@------------@------------------@------------@------------------@------------@------------------@------------@------------------@------------@------------------@------------@------------------@------------@------------------@------------@------------------@------------@------------------@------------@------------------@------------####################------------##----------------##-----" // 2
"-------@-------------------@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------@-------------------@-----------#####################-----------##-----------------##-----------##-----------------##----" // 3
"@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---@@@@@@@@--------------------@---#############################---#########------------------##---#########------------------##---#########------------------##---" // 4
"@----------------------------@--@----------------------------@--@----------------------------@--@----------------------------@--@----------------------------@--@----------------------------@--@----------------------------@--@----------------------------@--@----------------------------@--#-------######################--#-------#-------------------##--#-------#-------------------##--#-------#-------------------##--#-------#-@@@@@@@@@@@@@-----##--" // 5
"@-----------------------------@-@-----------------------------@-@-----------------------------@-@-----------------------------@-@-----------------------------@-@-----------------------------@-@-----------------------------@-@-----------------------------@-#-------#######################-#-------#--------------------##-#-------#--------------------##-#-------#--------------------##-#-------#-@@@@@@@@@@@@@------##-#-------#-@@@@@@@@@@@@@@@----##-" // 6
"@------------------------------@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########---------------------###########---------------------###########---------------------###########-@@@@@@@@@@@@@-------###########-@@@@@@@@@@@@@@@-----###########--------------@@-----##" // 7
"@------------------------------@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@@@@@@@@@@---------------------@@#########################################---------------------###########---------------------###########-@@@@@@@@@@@@@-------###########-@@@@@@@@@@@@@@@-----###########--------------@@-----###########-@@@@@@@@@@@@@@@-----##" // 8
"@-----------------------------@-@-------@--------------------@@-@-------@--------------------@@-@-------@--------------------@@-@-------@--------------------@@-@-------@--------------------@@-#-------@@@@@@@@@@@@@@@@@@@@@@@-#-----------------------------#-#-----------------------------#-#---------@@@@@@@@@@@@@-------#-#---------@@@@@@@@@@@@@@@-----#-#----------------------@@-----#-#---------@@@@@@@@@@@@@@@-----#-#---------@@@@@@@@@@@@@@@-----#-" // 9
"@----------------------------@--@-------@-------------------@@--@-------@-------------------@@--@-------@-------------------@@--@-------@-------------------@@--@-------@@@@@@@@@@@@@@@@@@@@@@--#----------------------------#--#----------------------------#--#---------@@@@@@@@@@@@@------#--#---------@@@@@@@@@@@@@@@----#--#----------------------@@----#--#---------@@@@@@@@@@@@@@@----#--#---------@@@@@@@@@@@@@@@----#--#----------------------@@----#--" // 10
"@@@@@@@@--------------------@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@------------------@@---@@@@@@@@@@@@@@@@@@@@@@@@@@@@@---########--------------------#---########--------------------#---########--@@@@@@@@@@@@@-----#---########--@@@@@@@@@@@@@@@---#---########---------------@@---#---########--@@@@@@@@@@@@@@@---#---########--@@@@@@@@@@@@@@@---#---########---------------@@---#---########--@@@@@@@@@@@@@@@---#---" // 11
"-------@-------------------@-----------@@-----------------@@-----------@@-----------------@@-----------@@@@@@@@@@@@@@@@@@@@@-----------#-------------------#-----------#-------------------#-----------#--@@@@@@@@@@@@@----#-----------#--@@@@@@@@@@@@@@@--#-----------#--@@@@@@@@@@@@@@@--#-----------#--@@@@@@@@@@@@@@@--#-----------#--@@@@@@@@@@@@@@@--#-----------#---------------@@--#-----------#--@@@@@@@@@@@@@@@--#-----------#--@@@@@@@@@@@@@----#----" // 12
"-------@------------------@------------@@----------------@@------------@@@@@@@@@@@@@@@@@@@@------------#------------------#------------#------------------#------------#--@@@@@@@@@@@@@---#------------#--@@@@@@@@@@@@@@@-#------------#--@@@@@@@@@@@@@@@-#------------#--@@@@@@@@@@@@@@@-#------------#--@@@@@@@@@@@@@@@-#------------#--@@@@@@@@@@@@@@@-#------------#--@@@@@@@@@@@@@@@-#------------#--@@@@@@@@@@@@@---#------------#------------------#-----" // 13
"-------@-----------------@-------------@@@@@@@@@@@@@@@@@@@-------------#-----------------#-------------#-----------------#-------------#--@@@@@@@@@@@@@--#-------------#--@@@@@@@@@@@@@@@#-------------#--@@@@@@@@@@@@@@@#-------------#--@@@@@@@@@@@@@@@#-------------#--@@@@@@@@@@@@@@@#-------------#--@@@@@@@@@@@@@@@#-------------#--@@@@@@@@@@@@@--#-------------#--@@@@@@@@@@@@@--#-------------#-----------------#-------------#-----------------#------" // 14
"-------@@@@@@@@@@@@@@@@@@--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################--------------##################-------" // 15
};
void setup() {
FastLED.addLeds<WS2811, MATRIX_PIN, GRB>(led, NUM_LEDS);
FastLED.setBrightness(MAXBRIGHT); // brightness as needed
FastLED.clear(); // clear pixel buffer
}
void loop() {
dreidelfwd();
// rainbow();
fadeToColor(CRGB::Blue, 100); // Fade to blue over 50 steps
showNun();
delay(1000);
showGimmel();
delay(1000);
showHey();
delay(1000);
showShin();
delay(1000);
showClose();
dreidelbwd();
delay(1000);
}
void dreidelfwd(){
for (int i = 0; i < 78; i++) {
led[dreidel[i]] = CHSV(map(i, 0, 78 - 1, 0, 255), 255, 255);
FastLED.show();
delay(50);
}
}
void rainbow() {
static uint8_t hue = 0;
for(int n = 0; n < 78; n++) {
fill_rainbow(led, dreidel[n], hue, 7);
FastLED.show();
hue += 1; // Adjust the speed of the rainbow movement
delay(50); // Adjust the delay as needed
}
}
void fadeToColor(CRGB targetColor, int steps) {
CRGB originalColors[78];
for (int i = 0; i < steps; i++) {
// Save the original colors
// Interpolate between original color and target color
for (int j = 0; j < 78; j++) {
led[dreidel[j]].r = map(i, 0, steps - 1, led[dreidel[j]].r, targetColor.r);
led[dreidel[j]].g = map(i, 0, steps - 1, led[dreidel[j]].g, targetColor.g);
led[dreidel[j]].b = map(i, 0, steps - 1, led[dreidel[j]].b, targetColor.b);
}
FastLED.show();
delay(10);
}
}
void showNun() {
int column = 0, row = 0, page = 0, asciiChar;
for (int k = PAGE; k >= 0 ; k--) { // read banner RIGHT to LEFT
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if ((i % 2) == 0)
asciiChar = pgm_read_byte_near(nun + (i * 448 + j) + (k * COLS)); // read 32 (chars), skip 32 (cols), repeat
else
asciiChar = pgm_read_byte_near(nun + (i* 448 + COLS - 1 - j) + (k * COLS));
if (asciiChar == '#') // white
led[i * COLS + j] = CRGB(0, 0, 255); // WHITE
if (asciiChar == '-') // blue
led[i * COLS + j] = CRGB(0, 0, 0); // BLUE
if (asciiChar == '@') // red
led[i * COLS + j] = CRGB(255, 255, 255); // BLUE
}
}
FastLED.show();
delay(75);
}
}
void showGimmel() {
int column = 0, row = 0, page = 0, asciiChar;
for (int k = PAGE; k >= 0 ; k--) { // read banner RIGHT to LEFT
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if ((i % 2) == 0)
asciiChar = pgm_read_byte_near(nun + (i * 448 + j) + (k * COLS)); // read 32 (chars), skip 32 (cols), repeat
else
asciiChar = pgm_read_byte_near(nun + (i* 448 + COLS - 1 - j) + (k * COLS));
if (asciiChar == '#') // white
led[i * COLS + j] = CRGB(255, 255, 255); // WHITE
if (asciiChar == '-') // blue
led[i * COLS + j] = CRGB(0, 0, 0); // BLUE
if (asciiChar == '@') // red
led[i * COLS + j] = CRGB(0, 0, 255); // BLUE
}
}
FastLED.show();
delay(75);
}
}
void showHey() {
int column = 0, row = 0, page = 0, asciiChar;
for (int k = PAGE; k >= 0 ; k--) { // read banner RIGHT to LEFT
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if ((i % 2) == 0)
asciiChar = pgm_read_byte_near(nun + (i * 448 + j) + (k * COLS)); // read 32 (chars), skip 32 (cols), repeat
else
asciiChar = pgm_read_byte_near(nun + (i* 448 + COLS - 1 - j) + (k * COLS));
if (asciiChar == '#') // white
led[i * COLS + j] = CRGB(0, 0, 255); // WHITE
if (asciiChar == '-') // blue
led[i * COLS + j] = CRGB(0, 0, 0); // BLUE
if (asciiChar == '@') // red
led[i * COLS + j] = CRGB(255, 255, 255); // BLUE
}
}
FastLED.show();
delay(75);
}
}
void showShin() {
int column = 0, row = 0, page = 0, asciiChar;
for (int k = PAGE; k >= 0 ; k--) { // read banner RIGHT to LEFT
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if ((i % 2) == 0)
asciiChar = pgm_read_byte_near(nun + (i * 448 + j) + (k * COLS)); // read 32 (chars), skip 32 (cols), repeat
else
asciiChar = pgm_read_byte_near(nun + (i* 448 + COLS - 1 - j) + (k * COLS));
if (asciiChar == '#') // white
led[i * COLS + j] = CRGB(255, 255, 255); // WHITE
if (asciiChar == '-') // blue
led[i * COLS + j] = CRGB(0, 0, 0); // BLUE
if (asciiChar == '@') // red
led[i * COLS + j] = CRGB(0, 0, 255); // BLUE
}
}
FastLED.show();
delay(75);
}
}
void showClose() {
int column = 0, row = 0, page = 0, asciiChar;
for (int k = PAGE; k >= 0 ; k--) { // read banner RIGHT to LEFT
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if ((i % 2) == 0)
asciiChar = pgm_read_byte_near(nun + (i * 448 + j) + (k * COLS)); // read 32 (chars), skip 32 (cols), repeat
else
asciiChar = pgm_read_byte_near(nun + (i* 448 + COLS - 1 - j) + (k * COLS));
if (asciiChar == '#') // white
led[i * COLS + j] = CRGB(0, 0, 255); // WHITE
if (asciiChar == '-') // blue
led[i * COLS + j] = CRGB(0, 0, 0); // BLUE
if (asciiChar == '@') // red
led[i * COLS + j] = CRGB(255, 255, 255); // BLUE
}
}
FastLED.show();
delay(75);
}
}
void dreidelbwd(){
for(int n = 78; n >= 0; n--){
led[dreidel[n]] = CRGB(0, 0, 0);
FastLED.show();
delay(25);
}
}