#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_NeoPixel.h>
//#include <TM1637.h>
#include <Wire.h>
#include <stdlib.h> // For random() function
// Define constants
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define ENCODER1_CLK 32
#define ENCODER1_DT 33
#define ENCODER2_CLK 25
#define ENCODER2_DT 26
#define ENCODER3_CLK 27
#define ENCODER3_DT 14
#define LED_RING1_PIN 5
#define LED_RING2_PIN 18
#define LED_RING3_PIN 19
//added relay instead of motor
#define RELAY_PIN 12
// #define MOTOR_PWM 12
// #define MOTOR_DIR 4
// #define DISPLAY_CLK 13
// #define DISPLAY_DIO 2
#define NUM_LEDS 16
// I2C pins for second I2C bus (for the third OLED)
#define I2C_SDA_2 16
#define I2C_SCL_2 17
// Initialize objects for OLEDs
Adafruit_SSD1306 display1(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
Adafruit_SSD1306 display2(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
Adafruit_SSD1306 display3(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire1);
// Initialize objects for WS2812 LED rings
Adafruit_NeoPixel strip1(NUM_LEDS, LED_RING1_PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip2(NUM_LEDS, LED_RING2_PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip3(NUM_LEDS, LED_RING3_PIN, NEO_GRB + NEO_KHZ800);
// Initialize TM1637 display
//TM1637 tmDisplay(DISPLAY_CLK, DISPLAY_DIO);
//disply no for 7 segment
//int displayNumber=1234;
int playerCount = 0;
int imageIndex1 = 0, imageIndex2 = 0, imageIndex3 = 0; // All images start the same
// Define the target image index
int targetImageIndex1 = 1;
int targetImageIndex2 = 1;
int targetImageIndex3 = 1;
unsigned long startTime = 0;
bool gameRunning = false;
const uint8_t bitmap1[] PROGMEM = {
0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff,
0xfe, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x7f,
0xf8, 0x3f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xfc, 0x1f,
0xf8, 0xff, 0x80, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0x1f,
0xf8, 0xff, 0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x01, 0xff, 0x1f,
0xf8, 0x7f, 0x81, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0x00, 0xfe, 0x1f,
0xfc, 0x0e, 0x1f, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xf8, 0x00, 0x3f,
0xff, 0x00, 0x7f, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xfe, 0x00, 0xff,
0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xf8, 0x0f, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0x80, 0x01, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf8, 0x0f, 0xe0, 0x1f, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xc0, 0x7f, 0xfc, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfc, 0x1f, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xf8, 0x1f,
0xc0, 0x03, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xff, 0xc0, 0x07,
0x83, 0xe1, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x80, 0xff, 0xff, 0x83, 0xc1,
0x0f, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x00, 0x81, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xf0,
0x0f, 0xf8, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x0f, 0xf0, 0x1f, 0xff, 0xff, 0x00, 0x00, 0x0f, 0xf0,
0x0f, 0xf0, 0x7f, 0xc3, 0xff, 0xff, 0xc0, 0xff, 0xfe, 0x01, 0xff, 0xff, 0x83, 0xfe, 0x0f, 0xf0,
0x87, 0xc1, 0xff, 0xc3, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xc7, 0xff, 0x87, 0xe1,
0xe0, 0x03, 0xff, 0xc3, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xc7, 0xff, 0xe0, 0x03,
0xfc, 0x7f, 0xff, 0xc3, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xc7, 0xff, 0xfd, 0xff,
0xff, 0xff, 0xff, 0xc3, 0xff, 0x80, 0x1f, 0xff, 0xff, 0xf8, 0x03, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc3, 0xff, 0x83, 0x03, 0xff, 0xff, 0x80, 0x63, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xff, 0x87, 0xe0, 0x3f, 0xf8, 0x07, 0xf3, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xff, 0x87, 0xfc, 0x03, 0xc0, 0x7f, 0xf3, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xff, 0x87, 0xff, 0xc0, 0x03, 0xff, 0xf3, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xff, 0x87, 0xff, 0xf8, 0x1f, 0xff, 0xf3, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xff, 0x87, 0xff, 0xfc, 0x3f, 0xff, 0xf3, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xff, 0x87, 0xff, 0xfc, 0x3f, 0xff, 0xf3, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xff, 0x87, 0xff, 0xfc, 0x3f, 0xff, 0xf3, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xff, 0x87, 0xff, 0xfc, 0x3f, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xff, 0x83, 0xff, 0xfc, 0x3f, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xe0, 0x07, 0xff, 0xe3, 0xff, 0xe0, 0x7f, 0xfc, 0x3f, 0xfe, 0x07, 0xff, 0xc7, 0xff, 0xc0, 0x07,
0xc3, 0xc1, 0xff, 0xe3, 0xff, 0xf8, 0x0f, 0xfc, 0x3f, 0xf0, 0x3f, 0xff, 0x87, 0xff, 0x83, 0xc1,
0x0f, 0xf0, 0x3f, 0xc3, 0xff, 0xff, 0x80, 0xfc, 0x3f, 0x01, 0xff, 0xff, 0x83, 0xfe, 0x0f, 0xf0,
0x0f, 0xf8, 0x00, 0x01, 0xff, 0xff, 0xf0, 0x0c, 0x30, 0x0f, 0xff, 0xff, 0x80, 0x00, 0x0f, 0xf0,
0x0f, 0xf0, 0x3f, 0x80, 0x3f, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x03, 0xf0, 0x1f, 0xf0,
0x83, 0xe0, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0x80, 0x7f, 0xff, 0x8f, 0xc1,
0xc0, 0x03, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xff, 0xc0, 0x03,
0xf8, 0x0f, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0xf0, 0x1f,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xfe, 0x00, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xf0, 0x0f, 0xf0, 0x1f, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0x00, 0x01, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xf0, 0x1f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff,
0xff, 0x00, 0x7f, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xfe, 0x01, 0xff,
0xfc, 0x10, 0x1f, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xf8, 0x10, 0x7f,
0xf8, 0x7f, 0x87, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xe0, 0xfe, 0x1f,
0xf8, 0xff, 0x80, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x01, 0xff, 0x1f,
0xf8, 0xff, 0x80, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x01, 0xff, 0x1f,
0xf8, 0x7f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xfe, 0x1f,
0xfe, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x3f,
0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff
};
const uint8_t bitmap2[] PROGMEM = {
// '2, 93x90px
0xf0, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xf8, 0x1f, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xfe, 0x0f,
0x80, 0x07, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xe0, 0x03, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x01,
0x07, 0xc7, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc7, 0xe1, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xc3, 0xf0,
0x0f, 0xe3, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x87, 0xf1, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xc7, 0xf0,
0x0f, 0xe3, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc7, 0xf1, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xc3, 0xf0,
0x83, 0x01, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc1, 0x03, 0xff, 0x0f, 0xff, 0xff, 0xff, 0x80, 0x81,
0xe0, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xf0, 0x0f, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0x00, 0x07,
0xff, 0xf0, 0x3f, 0xff, 0xff, 0xfc, 0x1f, 0xfc, 0x3f, 0xf8, 0x7f, 0xff, 0xff, 0xfc, 0x07, 0xff,
0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0x07, 0xfc, 0x3f, 0xe1, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff,
0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xc1, 0xfc, 0x3f, 0x87, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff,
0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xf8, 0x3c, 0x3e, 0x1f, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff,
0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff,
0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0x0f, 0xf8, 0x7f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0x1f, 0xf8, 0x7f, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x3f, 0x3f, 0xff, 0x1f, 0xf8, 0x7f, 0xfe, 0x7c, 0x0f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xfe, 0x1f, 0xfc, 0x7f, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x80, 0x41, 0xfc, 0x1f, 0xfc, 0x3f, 0x81, 0x80, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x83, 0xf0, 0x00, 0x7f, 0xfe, 0x00, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x0f, 0xfe, 0x03, 0xff, 0xff, 0xc0, 0x7f, 0xf8, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff,
0x80, 0x00, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0x87, 0xff, 0xff, 0x80, 0x00,
0xff, 0xf0, 0x3f, 0xff, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x7f, 0xff, 0x0f, 0xff, 0xfc, 0x03, 0xff,
0xff, 0xfe, 0x0f, 0xff, 0xf8, 0xff, 0xf8, 0x1f, 0xf8, 0x1f, 0xff, 0x8f, 0xff, 0xf0, 0x3f, 0xff,
0xff, 0xff, 0x83, 0xff, 0xf0, 0xff, 0xe0, 0xff, 0xff, 0x07, 0xff, 0x87, 0xff, 0xc0, 0xff, 0xff,
0xff, 0xff, 0xe0, 0x7f, 0xc1, 0xff, 0xc3, 0xff, 0xff, 0xe1, 0xff, 0xc1, 0xff, 0x03, 0xff, 0xff,
0xff, 0xff, 0xf8, 0x00, 0x03, 0xff, 0x8f, 0xff, 0xff, 0xf0, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0x7f,
0xc0, 0x0f, 0xfc, 0x0f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xf8, 0x3f, 0xf0, 0x03,
0x83, 0x81, 0xfe, 0x1f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0x3f, 0xc1, 0xe0,
0x0f, 0xe0, 0x00, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0x00, 0x03, 0xf0,
0x0f, 0xe0, 0x00, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0x00, 0x03, 0xf8,
0x87, 0x83, 0xfe, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0x7f, 0xc1, 0xe1,
0xc0, 0x0f, 0xfe, 0x0f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xe0, 0x3f, 0xf0, 0x03,
0xff, 0xff, 0xfc, 0x00, 0x03, 0xff, 0x8f, 0xff, 0xff, 0xf0, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0x7f,
0xff, 0xff, 0xf0, 0x3f, 0xe1, 0xff, 0xc3, 0xff, 0xff, 0xc3, 0xff, 0xc3, 0xfe, 0x0f, 0xff, 0xff,
0xff, 0xff, 0xc3, 0xff, 0xf1, 0xff, 0xe0, 0x7f, 0xff, 0x87, 0xff, 0x8f, 0xff, 0xc3, 0xff, 0xff,
0xff, 0xff, 0x0f, 0xff, 0xf0, 0xff, 0xf8, 0x0f, 0xf8, 0x1f, 0xff, 0x0f, 0xff, 0xf0, 0xff, 0xff,
0xff, 0xf8, 0x3f, 0xff, 0xf0, 0xff, 0xff, 0x00, 0x00, 0x7f, 0xfe, 0x0f, 0xff, 0xfc, 0x0f, 0xff,
0x00, 0x00, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0x00, 0x00,
0x80, 0x07, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xc0, 0x07,
0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x03, 0xff, 0xff, 0xe0, 0x3f, 0xf0, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x81, 0xf0, 0x00, 0x3f, 0xfe, 0x00, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x80, 0x41, 0xfc, 0x3f, 0xfc, 0x3f, 0x81, 0x00, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfc, 0x08, 0x07, 0xfe, 0x1f, 0xfc, 0x7f, 0xe0, 0x00, 0x3f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf0, 0x3e, 0x3f, 0xfe, 0x1f, 0xf8, 0x7f, 0xfe, 0x7e, 0x0f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff,
0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xfe, 0x0c, 0x00, 0x3f, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff,
0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xf8, 0x7c, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff,
0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xe1, 0xfc, 0x3f, 0x83, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff,
0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0x87, 0xfc, 0x3f, 0xe0, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff,
0xff, 0xf0, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x1f, 0xf8, 0x3f, 0xff, 0xff, 0xfe, 0x0f, 0xff,
0xe0, 0x00, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xf0, 0x0f, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x07,
0x80, 0x01, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc0, 0x03, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xc0, 0x01,
0x0f, 0xe3, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x87, 0xe1, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xc3, 0xf0,
0x0f, 0xe3, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x87, 0xf1, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xc7, 0xf8,
0x0f, 0xc3, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc7, 0xe1, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xe3, 0xf1,
0xc0, 0x07, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xe0, 0x07, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x03,
0xf0, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xf8, 0x1f, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0x0f
};
// Continue defining your other bitmaps...
const uint8_t bitmap3[] PROGMEM = { 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f,
0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03,
0xc3, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xf1,
0x8f, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf8,
0x8f, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf8,
0x83, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xf0,
0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03,
0xfe, 0x30, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x87, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x07, 0x1f,
0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff,
0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff,
0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff,
0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0x81, 0xc1, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0x87, 0xf1, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xe1, 0xff, 0x8f, 0xf0, 0xff, 0xc7, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0x00, 0x7f, 0x0f, 0xf8, 0x7f, 0x00, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf0, 0xf8, 0x0e, 0x00, 0x1f, 0xfc, 0x00, 0x18, 0x1f, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0x80, 0x7f, 0xfe, 0x00, 0xff, 0x00, 0x43, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfe, 0x03, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0x3f, 0xff, 0xff,
0xff, 0xff, 0xf0, 0x1f, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xfe, 0x07, 0xff, 0xff,
0xff, 0xff, 0x83, 0xff, 0xff, 0x0f, 0xff, 0xc0, 0x01, 0xff, 0xf8, 0x7f, 0xff, 0xc0, 0xff, 0xff,
0xff, 0xf8, 0x1f, 0xff, 0xff, 0x87, 0xfe, 0x07, 0xe0, 0x3f, 0xf0, 0xff, 0xff, 0xf8, 0x0f, 0xff,
0xff, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0xf8, 0x7f, 0xfe, 0x0f, 0xf8, 0x7f, 0xff, 0xff, 0x03, 0xff,
0xff, 0x07, 0xff, 0xff, 0xc0, 0x1f, 0xf1, 0xff, 0xff, 0x87, 0xfc, 0x07, 0xff, 0xff, 0xf0, 0x7f,
0xfc, 0x3f, 0xff, 0xfc, 0x00, 0x3f, 0xe3, 0xff, 0xff, 0xe3, 0xfe, 0x00, 0x1f, 0xff, 0xfc, 0x0f,
0xe0, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xc7, 0xff, 0xff, 0xe1, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0x03,
0x83, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x87, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xc0,
0x07, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x87, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xf1,
0xc1, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xc7, 0xff, 0xff, 0xf1, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xc3,
0xf8, 0x3f, 0xff, 0xfc, 0x00, 0xff, 0xc3, 0xff, 0xff, 0xe1, 0xff, 0x00, 0x1f, 0xff, 0xfe, 0x0f,
0xfe, 0x0f, 0xff, 0xfe, 0x00, 0x1f, 0xe1, 0xff, 0xff, 0xc3, 0xfc, 0x00, 0x3f, 0xff, 0xf8, 0x3f,
0xff, 0xc1, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0x7f, 0xff, 0x07, 0xf8, 0x7f, 0xff, 0xff, 0xc1, 0xff,
0xff, 0xf0, 0x3f, 0xff, 0xff, 0x8f, 0xfc, 0x1f, 0xf8, 0x1f, 0xf0, 0xff, 0xff, 0xfe, 0x0f, 0xff,
0xff, 0xff, 0x03, 0xff, 0xff, 0x07, 0xff, 0x80, 0x00, 0xff, 0xf0, 0xff, 0xff, 0xf0, 0x7f, 0xff,
0xff, 0xff, 0xe0, 0x7f, 0xfe, 0x0f, 0xff, 0xfc, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0x03, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x07, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xf0, 0x1f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xc1, 0xff, 0xff, 0x81, 0xff, 0x00, 0x03, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xe0, 0x3e, 0x00, 0x1f, 0xfc, 0x00, 0x7e, 0x03, 0xc3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0x00, 0x3f, 0x0f, 0xf8, 0x7e, 0x00, 0x7f, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xc0, 0xff, 0x8f, 0xf0, 0xff, 0x81, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0x83, 0xe1, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff,
0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff,
0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff,
0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x7f, 0xff,
0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff,
0xe0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x03,
0xc1, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xe1,
0x07, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf8,
0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf8,
0x87, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xf0,
0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01,
0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f};
const uint8_t bitmap4[] PROGMEM = { 0xff, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe1, 0xf8, 0x7f, 0xff, 0x0f, 0xc3, 0xff, 0xfe, 0x3f, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xfc, 0x7f, 0xff, 0x0f, 0xe1, 0xff, 0xfc, 0x3f, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe1, 0xfc, 0x7f, 0xff, 0x0f, 0xe3, 0xff, 0xfe, 0x3f, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf0, 0x60, 0xff, 0xff, 0x83, 0x07, 0xff, 0xff, 0x04, 0x1f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0xe0, 0x00, 0x00, 0x1f, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xc3, 0xfc, 0x00, 0x00, 0x00, 0x01, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff,
0xc0, 0x0f, 0xff, 0xff, 0xf0, 0x40, 0x70, 0x7c, 0x3c, 0x00, 0x0c, 0x0f, 0xff, 0xff, 0xf0, 0x07,
0x87, 0x07, 0xff, 0xff, 0xf8, 0x03, 0xe1, 0xfc, 0x7e, 0x0f, 0x80, 0x3f, 0xff, 0xff, 0xc1, 0xc1,
0x1f, 0xe0, 0xff, 0xff, 0xf8, 0x1f, 0x83, 0xfc, 0x7f, 0x87, 0xf0, 0x3f, 0xff, 0xfe, 0x07, 0xf0,
0x1f, 0xe0, 0x00, 0x1f, 0xe0, 0xff, 0x0f, 0xfc, 0x7f, 0xc3, 0xfc, 0x0f, 0xf0, 0x00, 0x07, 0xf8,
0x0f, 0xc1, 0xff, 0x07, 0x83, 0xfe, 0x1f, 0xfc, 0x7f, 0xe1, 0xff, 0x03, 0xc0, 0xff, 0x83, 0xf0,
0xc0, 0x07, 0xff, 0xe0, 0x0f, 0xfc, 0x3f, 0xfc, 0x7f, 0xf1, 0xff, 0xe1, 0x83, 0xff, 0xe0, 0x03,
0xf0, 0x7f, 0xff, 0xf8, 0x3f, 0xfc, 0x7f, 0xf8, 0x7f, 0xf8, 0x7f, 0xf0, 0x1f, 0xff, 0xfc, 0x1f,
0xff, 0xff, 0xff, 0xf8, 0x7f, 0xf8, 0x7f, 0x00, 0x03, 0xf8, 0x3f, 0xfc, 0x3f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf1, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x1f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xfc, 0x00, 0x7f, 0xfc, 0x7f, 0xf0, 0x00, 0xff, 0x0f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc7, 0xe0, 0x01, 0xff, 0xfc, 0x7f, 0xfe, 0x00, 0x0f, 0x87, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x8e, 0x07, 0xe3, 0xff, 0xfc, 0x7f, 0xff, 0x1f, 0x80, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x00, 0x3f, 0xe3, 0xff, 0xfc, 0x7f, 0xff, 0x1f, 0xf0, 0x03, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x01, 0xff, 0xc3, 0xff, 0xfc, 0x7f, 0xff, 0x9f, 0xfe, 0x03, 0xff, 0xff, 0xff,
0xf0, 0x3f, 0xfe, 0x07, 0xff, 0xc7, 0xff, 0xfc, 0x7f, 0xff, 0x8f, 0xff, 0x81, 0xff, 0xf8, 0x3f,
0xc0, 0x0f, 0xfe, 0x0f, 0xff, 0xc7, 0xff, 0xf8, 0x7f, 0xff, 0x8f, 0xff, 0xc1, 0xff, 0xc0, 0x07,
0x0f, 0xc3, 0xfc, 0x1f, 0xff, 0xc7, 0xff, 0xf8, 0x7f, 0xff, 0x8f, 0xff, 0xf0, 0xff, 0x87, 0xc3,
0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe1,
0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe1,
0x07, 0x83, 0xfe, 0x1f, 0xff, 0xc7, 0xff, 0xfc, 0x7f, 0xff, 0x87, 0xff, 0xe0, 0xff, 0x83, 0x83,
0xc0, 0x1f, 0xfe, 0x0f, 0xff, 0xc7, 0xff, 0xfc, 0x7f, 0xff, 0x8f, 0xff, 0xc1, 0xff, 0xc0, 0x0f,
0xf8, 0xff, 0xfe, 0x03, 0xff, 0xc7, 0xff, 0xfc, 0x7f, 0xff, 0x8f, 0xff, 0x81, 0xff, 0xfc, 0x7f,
0xff, 0xff, 0xff, 0x00, 0xff, 0xc3, 0xff, 0xfc, 0x7f, 0xff, 0x1f, 0xfc, 0x03, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x1f, 0xe3, 0xff, 0xfc, 0x7f, 0xff, 0x1f, 0xf0, 0x03, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc4, 0x03, 0xe3, 0xff, 0xfc, 0x7f, 0xff, 0x1f, 0x01, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc7, 0xe0, 0x01, 0xff, 0xfc, 0x7f, 0xfe, 0x00, 0x1f, 0x87, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xfe, 0x00, 0x07, 0xfc, 0x3f, 0x80, 0x01, 0xff, 0x0f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf0, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x1f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x7f, 0xf8, 0x7f, 0xf0, 0x0f, 0xfc, 0x3f, 0xfc, 0x3f, 0xff, 0xff, 0xff,
0xe0, 0x1f, 0xff, 0xf0, 0x1f, 0xfc, 0x7f, 0xf8, 0x7f, 0xfc, 0xff, 0xf0, 0x1f, 0xff, 0xf8, 0x0f,
0x80, 0x07, 0xff, 0xc0, 0x0f, 0xfc, 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xc1, 0x87, 0xff, 0xe0, 0x01,
0x0f, 0xc0, 0x3e, 0x07, 0x83, 0xfe, 0x1f, 0xfc, 0x7f, 0xe1, 0xff, 0x87, 0xe0, 0x7c, 0x03, 0xf0,
0x1f, 0xe0, 0x00, 0x1f, 0xe0, 0xff, 0x87, 0xfc, 0x7f, 0xc3, 0xfc, 0x1f, 0xf8, 0x00, 0x07, 0xf8,
0x1f, 0xc0, 0x3f, 0xff, 0xf8, 0x0f, 0xc3, 0xfc, 0x7f, 0x07, 0xf0, 0x7f, 0xff, 0xfc, 0x07, 0xf0,
0x83, 0x07, 0xff, 0xff, 0xfc, 0x03, 0xe0, 0xfc, 0x7e, 0x1f, 0x00, 0x3f, 0xff, 0xff, 0xe1, 0xc1,
0xe0, 0x1f, 0xff, 0xff, 0xf0, 0x70, 0x00, 0x3c, 0x78, 0x00, 0x1e, 0x0f, 0xff, 0xff, 0xf8, 0x07,
0xff, 0xff, 0xff, 0xff, 0xc3, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xff, 0x83, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x01, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf0, 0xe0, 0xff, 0xff, 0x83, 0x87, 0xff, 0xfe, 0x06, 0x0f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe1, 0xfc, 0x7f, 0xff, 0x1f, 0xe3, 0xff, 0xfe, 0x3f, 0x87, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0xfc, 0x7f, 0xff, 0x1f, 0xe3, 0xff, 0xfe, 0x3f, 0x87, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe1, 0xf8, 0x7f, 0xff, 0x0f, 0xc3, 0xff, 0xfe, 0x1f, 0x0f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff };
const uint8_t bitmap5[] PROGMEM = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xe1, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xc7, 0xc3, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xc7, 0xe3, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xc7, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xf1, 0xff, 0xc7, 0xfc, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xf1, 0xff, 0xc7, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf8, 0x30, 0x7f, 0xff, 0xf1, 0xff, 0xc7, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe0, 0x7c, 0x0f, 0xff, 0xe3, 0xff, 0xc7, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x81, 0xff, 0x03, 0xfe, 0x03, 0xff, 0xc7, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0x07, 0xff, 0xe0, 0x40, 0x1f, 0xff, 0xc7, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfc, 0x1f, 0xff, 0xfc, 0x03, 0xff, 0xff, 0xc7, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf0, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xc7, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0x8f, 0xff, 0xff, 0xe0, 0xff, 0xff,
0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0x8f, 0xff, 0xff, 0x00, 0x3f, 0xff,
0xff, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x03, 0xff, 0x8f, 0xff, 0xfe, 0x3f, 0x0f, 0xff,
0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x03, 0xff, 0x8f, 0xff, 0xfc, 0x7f, 0x8f, 0xff,
0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0x8f, 0xff, 0xfc, 0x7f, 0x8f, 0xff,
0xff, 0xff, 0xf0, 0x7f, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0x80, 0x0f, 0xfe, 0x0e, 0x1f, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xff, 0x00, 0x3f, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xc0, 0xff, 0xff,
0xff, 0xff, 0xf8, 0x7f, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xe1, 0xff, 0xff,
0xff, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xc7, 0xff, 0xe1, 0xff, 0xff,
0xff, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xc7, 0xff, 0xe1, 0xff, 0xff,
0xff, 0xff, 0xe3, 0xff, 0xe1, 0xff, 0xf0, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff,
0xf8, 0x00, 0x03, 0xff, 0xe3, 0xff, 0xc1, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff,
0x00, 0x00, 0x3f, 0xff, 0x87, 0xff, 0x07, 0xff, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
0x1f, 0xff, 0xff, 0xff, 0x8f, 0xff, 0x0f, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
0x1f, 0xff, 0xff, 0xff, 0x8f, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xf8, 0x03,
0x1f, 0xff, 0xff, 0xff, 0x0f, 0xfc, 0x3f, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0x01,
0x1f, 0xff, 0xff, 0xff, 0x1f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0x83, 0xf0,
0x1f, 0xff, 0xff, 0xff, 0x1f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8,
0x1f, 0xff, 0xff, 0xff, 0x1f, 0xfc, 0x7f, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xc3, 0xf0,
0x1f, 0xff, 0xff, 0xff, 0x0f, 0xfc, 0x7f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x03,
0x1f, 0xff, 0xff, 0xff, 0x8f, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x0f,
0x03, 0xff, 0xff, 0xff, 0x87, 0xfe, 0x1f, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x07, 0xff, 0xc3, 0xff, 0x87, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff,
0xff, 0xfc, 0x03, 0xff, 0xe3, 0xff, 0xe0, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff,
0xff, 0xff, 0xe1, 0xff, 0xf1, 0xff, 0xf8, 0x07, 0xf0, 0x07, 0xff, 0xc7, 0xff, 0xe3, 0xff, 0xff,
0xff, 0xff, 0xf0, 0xff, 0xf8, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xff, 0xc7, 0xff, 0xe1, 0xff, 0xff,
0xff, 0xff, 0xf8, 0x7f, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xe1, 0xff, 0xff,
0xff, 0xff, 0xf8, 0x7f, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xe1, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0x83, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xff, 0xc0, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x7f, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0x00, 0x1f, 0xff,
0xff, 0xff, 0xf0, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xfe, 0x3f, 0x0f, 0xff,
0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0x8f, 0xff, 0xfc, 0x7f, 0x8f, 0xff,
0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xff, 0x8f, 0xff, 0xfc, 0x3f, 0x8f, 0xff,
0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x8f, 0xff, 0xfe, 0x0c, 0x1f, 0xff,
0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0x8f, 0xff, 0xff, 0x00, 0x3f, 0xff,
0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf8, 0x7f, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xc3, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0x1f, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xc3, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x07, 0xff, 0xc1, 0xf0, 0x07, 0xff, 0xc7, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xc1, 0xff, 0x07, 0xff, 0x81, 0xff, 0xc7, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf8, 0x78, 0x3f, 0xff, 0xe1, 0xff, 0xc7, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xf1, 0xff, 0xc7, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xf1, 0xff, 0xc7, 0xf8, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xc7, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xc7, 0xe3, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xc7, 0xe3, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xc7, 0xe1, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xf0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xfe, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff };
const uint8_t bitmap6[] PROGMEM = {0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x01,
0xff, 0xe3, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xf0,
0xff, 0xe3, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xf8,
0xff, 0xe3, 0xff, 0xe7, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf0, 0xff, 0xf8,
0xff, 0xe3, 0xff, 0xe7, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf8, 0xff, 0xf8,
0xff, 0xe3, 0xff, 0xe7, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf8, 0xff, 0xf8,
0xff, 0xe3, 0xff, 0xe3, 0xff, 0xe0, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0x87, 0xf8, 0xff, 0xf8,
0xff, 0xe3, 0xff, 0xc3, 0xff, 0xe1, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x87, 0xf8, 0xff, 0xf8,
0xff, 0xe0, 0x00, 0x07, 0xff, 0xc1, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0x87, 0xf8, 0x00, 0x00,
0xff, 0xf8, 0x00, 0x0f, 0xff, 0xe1, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0x87, 0xfe, 0x00, 0x07,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0xf0, 0x3c, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x87, 0xf0, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf8, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf8, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x7f, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x00, 0x00, 0x07, 0x07, 0xf0, 0x3c, 0x3f, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x7f, 0xff, 0x8f, 0xc0, 0x01, 0xfc, 0x3f, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x7f, 0xf0, 0x0f, 0xf0, 0x1f, 0xfc, 0x3f, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x7f, 0xe0, 0x1f, 0xf8, 0x7f, 0xfc, 0x3f, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x7f, 0xe3, 0xff, 0xf8, 0x7f, 0xfc, 0x1f, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x7f, 0xc3, 0xff, 0xf8, 0x7f, 0xfc, 0x00, 0x0f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf0, 0x0f, 0xfc, 0x7f, 0xc3, 0xff, 0xf8, 0x7f, 0xfc, 0x00, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xc0, 0x03, 0xfc, 0x7f, 0xc3, 0xff, 0xf8, 0x7f, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x83, 0xf0, 0x7c, 0x3f, 0xc3, 0xff, 0xf0, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xc1, 0xff,
0xff, 0xff, 0x87, 0xf0, 0x00, 0x00, 0x03, 0xff, 0xc0, 0xff, 0xfc, 0x3f, 0xff, 0xfe, 0x00, 0x7f,
0xff, 0xff, 0x87, 0xe0, 0x78, 0x3f, 0xff, 0xff, 0x03, 0xff, 0xfc, 0x3f, 0xff, 0xf8, 0x3f, 0x1f,
0xff, 0xff, 0xc3, 0x81, 0xfc, 0x7f, 0xff, 0xfe, 0x0f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x7f, 0x0f,
0xff, 0xff, 0xf0, 0x0f, 0xfc, 0x7f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x7f, 0x0f,
0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xf0, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1e, 0x1f,
0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xe3, 0xfd, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0x00, 0x7f,
0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xe3, 0xf8, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xe3, 0xf8, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf8, 0x7f, 0xfc, 0x07, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf0, 0xff, 0xfc, 0x1f, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xe1, 0xff, 0xfc, 0x3f, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xc3, 0xff, 0xfc, 0x3f, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0x8f, 0xff, 0xfc, 0x3f, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff,
0xff, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff,
0xc0, 0x00, 0x7f, 0xfc, 0x03, 0xfc, 0x3f, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff,
0x00, 0x00, 0x3f, 0xf0, 0x70, 0xfc, 0x3f, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff,
0x1f, 0xfe, 0x3f, 0xe1, 0xf8, 0x00, 0x3f, 0xf0, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff,
0x1f, 0xfe, 0x3f, 0xe3, 0xfc, 0x00, 0x3f, 0xc0, 0x07, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff,
0x1f, 0xfe, 0x3f, 0xe1, 0xf8, 0x7f, 0xff, 0x87, 0xe3, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff,
0x1f, 0xfe, 0x3f, 0xf0, 0x01, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff,
0x1f, 0xfe, 0x3f, 0xfe, 0x07, 0xff, 0xff, 0x87, 0xe1, 0xff, 0xfc, 0x3f, 0xfc, 0x7f, 0xff, 0xff,
0x1f, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x83, 0xff, 0xfc, 0x7f, 0xfc, 0x7f, 0xff, 0xff,
0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xfc, 0x7f, 0xfc, 0x7f, 0xff, 0xff,
0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0x80, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff };
// Example bitmap images (replace with your actual bitmap data)
const uint8_t* bitmaps[] = {bitmap1, bitmap2, bitmap3, bitmap4, bitmap5, bitmap6}; // Your bitmap images
// Variables for debouncing
unsigned long lastEncoderUpdate1 = 0;
unsigned long lastEncoderUpdate2 = 0;
unsigned long lastEncoderUpdate3 = 0;
const unsigned long debounceDelay = 5;
void setup() {
// Initialize Serial Monitor
Serial.begin(115200);
// Initialize first I2C bus (Wire) for display1 and display2
Wire.begin(); // Default I2C bus
if (!display1.begin(SSD1306_SWITCHCAPVCC, 0x3C, &Wire) ||
!display2.begin(SSD1306_SWITCHCAPVCC, 0x3D, &Wire)) {
Serial.println(F("SSD1306 allocation failed for display1 or display2"));
for (;;);
}
// Initialize second I2C bus (Wire1) for display3
Wire1.begin(I2C_SDA_2, I2C_SCL_2); // Custom I2C bus
if (!display3.begin(SSD1306_SWITCHCAPVCC, 0x3C, &Wire1)) {
Serial.println(F("SSD1306 allocation failed for display3"));
for (;;);
}
// Clear displays
display1.clearDisplay();
display2.clearDisplay();
display3.clearDisplay();
// Initialize encoders
pinMode(ENCODER1_CLK, INPUT);
pinMode(ENCODER1_DT, INPUT);
pinMode(ENCODER2_CLK, INPUT);
pinMode(ENCODER2_DT, INPUT);
pinMode(ENCODER3_CLK, INPUT);
pinMode(ENCODER3_DT, INPUT);
// Initialize WS2812 LEDs
strip1.begin();
strip2.begin();
strip3.begin();
strip1.show();
strip2.show();
strip3.show();
setLEDsRed(strip1);
setLEDsBlue(strip2);
setLEDsGreen(strip3);
// Initialize game LED
pinMode(RELAY_PIN, OUTPUT);
// pinMode(MOTOR_PWM, OUTPUT);
// pinMode(MOTOR_DIR, OUTPUT);
// digitalWrite(MOTOR_PWM, LOW);
digitalWrite(RELAY_PIN, LOW);
// Initialize TM1637 display
// tmDisplay.set(5); // Set brightness (0 to 7)
// tmDisplay.point(1);
// // Display initial images (all the same image)
// displayImage(display1, imageIndex1);
// displayImage(display2, imageIndex2);
// displayImage(display3, imageIndex3);
randomizeImages();
resetTimer();
digitalWrite(RELAY_PIN,HIGH);
// digitalWrite(MOTOR_PWM, HIGH);
// digitalWrite(MOTOR_DIR, HIGH);
delay(5000);
digitalWrite(RELAY_PIN, LOW);
// digitalWrite(MOTOR_PWM, LOW);
// digitalWrite(MOTOR_DIR, LOW);
// Start the timer
startTimer();
}
void loop() {
unsigned long currentMillis = millis();
Serial.print("imageIndex1 ");
Serial.println(imageIndex1 ," ",imageIndex2 );
// updateEncoder(ENCODER1_CLK, ENCODER1_DT, imageIndex1, display1);
// updateEncoder(ENCODER2_CLK, ENCODER2_DT, imageIndex2, display2);
// updateEncoder(ENCODER3_CLK, ENCODER3_DT, imageIndex3, display3);
// Handle encoder inputs with debounce
if (currentMillis - lastEncoderUpdate1 >= debounceDelay) {
updateEncoder(ENCODER1_CLK, ENCODER1_DT, imageIndex1, display1);
lastEncoderUpdate1 = currentMillis;
}
if (currentMillis - lastEncoderUpdate2 >= debounceDelay) {
updateEncoder(ENCODER2_CLK, ENCODER2_DT, imageIndex2, display2);
lastEncoderUpdate2 = currentMillis;
}
if (currentMillis - lastEncoderUpdate3 >= debounceDelay) {
updateEncoder(ENCODER3_CLK, ENCODER3_DT, imageIndex3, display3);
lastEncoderUpdate3 = currentMillis;
}
// Update the timer display with a colon after two digits
//updateTimerWithColon();
// Check if all images match the target image
if (allImagesMatchTarget()) {
playerCount++;
//displayNumberOnSegment();
digitalWrite(RELAY_PIN, HIGH);
// digitalWrite(MOTOR_PWM, HIGH);
// digitalWrite(MOTOR_DIR, LOW);
delay(5000);
digitalWrite(RELAY_PIN, LOW);
// digitalWrite(MOTOR_PWM, LOW);
// digitalWrite(MOTOR_DIR, LOW);
resetGame();
}
}
// Function to update the 7-segment display with a colon
// void updateTimerWithColon() {
// unsigned long elapsedTime = millis() - startTime;
// int seconds = (elapsedTime / 1000) % 60;
// int minutes = (elapsedTime / 60000);
// tmDisplay.display(0, minutes / 10); // Display tens of minutes
// tmDisplay.display(1, minutes % 10); // Display ones of minutes
// tmDisplay.display(2, seconds / 10); // Display tens of seconds (with colon)
// tmDisplay.display(3, seconds % 10); // Display ones of seconds
// tmDisplay.point(true); // Turn on the colon between digits 1 and 2
// }
// Function to check if all OLEDs display the target image
bool allImagesMatchTarget() {
return (imageIndex1 == targetImageIndex1 && imageIndex2 == targetImageIndex2 );
}
// Function to randomly assign different images to OLEDs
void randomizeImages() {
imageIndex1 = 0;//random(0, sizeof(bitmaps) / sizeof(bitmaps[0]));
imageIndex2 = 0;//random(0, sizeof(bitmaps) / sizeof(bitmaps[0]));
imageIndex3 = 0;//random(0, sizeof(bitmaps) / sizeof(bitmaps[0]));
displayImage(display1, imageIndex1);
displayImage(display2, imageIndex2);
displayImage(display3, imageIndex3);
}
void updateEncoder(int clkPin, int dtPin, int &imageIndex, Adafruit_SSD1306 &display) {
static int lastClkState = HIGH;
int clkState = digitalRead(clkPin);
if (clkState != lastClkState && clkState == LOW) {
int dtState = digitalRead(dtPin);
if (dtState != clkState) {
imageIndex = (imageIndex + 1) % 6; // Increment index
} else {
imageIndex = (imageIndex - 1 + 6) % 6; // Decrement index
}
displayImage(display, imageIndex);
}
lastClkState = clkState;
}
void displayImage(Adafruit_SSD1306 &display, int imageIndex) {
display.clearDisplay();
display.drawBitmap(0, 0, bitmaps[imageIndex], SCREEN_WIDTH, SCREEN_HEIGHT, WHITE);
display.display();
}
void resetGame() {
displayImage(display1, imageIndex1);
displayImage(display2, imageIndex2);
displayImage(display3, imageIndex3);
setLEDsRed(strip1);
setLEDsBlue(strip2);
setLEDsGreen(strip3);
// resetTimer();
randomizeImages(); // Randomly select new images for each OLED
//startTimer(); // Restart the timer
}
void setLEDsRed(Adafruit_NeoPixel &strip) {
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, strip.Color(255, 0, 0));
}
strip.show();
}
void setLEDsBlue(Adafruit_NeoPixel &strip) {
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, strip.Color(0, 0, 255));
}
strip.show();
}
void setLEDsGreen(Adafruit_NeoPixel &strip) {
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, strip.Color(0, 255, 0));
}
strip.show();
}
void startTimer() {
startTime = millis(); // Record the start time
gameRunning = true;
}
void resetTimer() {
//tmDisplay.point(false);
gameRunning = false;
// // Clear the 7-segment display by setting all digits to a blank or zero
// for (int i = 0; i < 4; i++) {
// tmDisplay.display(i, 0x7F); // 0x7F is usually used to turn off the segment
// }
}
void displayNumberOnSegment() {
// Display the global number on the 7-segment display
// int thousands = displayNumber / 1000;
// int hundreds = (displayNumber / 100) % 10;
// int tens = (displayNumber / 10) % 10;
// int ones = displayNumber % 10;
// tmDisplay.display(0, thousands);
// tmDisplay.display(1, hundreds);
// tmDisplay.point(true); // Turn on the colon between digits 1 and 2
// tmDisplay.display(2, tens);
// tmDisplay.display(3, ones);
}
Loading
ssd1306
ssd1306
Loading
ssd1306
ssd1306