//2.8" 320x240pc none touchscreen ili9341 + ws2812 + ? 550.000mA oszilator or powervapedriver *arduino ide ** STM32F103C9T6 (128kB flash!) -> 85.072 Bytes (64%) used caused fastledlib //MEOW currently functions testing I/O and components (working) // screensaver const unsigned char PROGMEM m [] = //w42 h33 { 0xFF, 0xF8, 0x00, 0xFF, 0xF8, 0x00, // ############# ############# 0x80, 0x17, 0x01, 0x00, 0x27, 0x00, // # # ### # # ### 0x80, 0x08, 0xC2, 0x00, 0x20, 0xC0, // # # ## # # ## 0x80, 0x04, 0x24, 0x00, 0x20, 0x40, // # # # # # # 0x80, 0x02, 0x18, 0x00, 0x20, 0x40, // # # ## # # 0x80, 0x01, 0x10, 0x00, 0x20, 0x40, // # # # # # 0x80, 0x00, 0xA0, 0x00, 0x20, 0x40, // # # # # # 0x80, 0x00, 0x40, 0x00, 0x20, 0x40, // # # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, // # # # 0x80, 0x10, 0x01, 0x00, 0x20, 0x40, // # # # # # 0x80, 0x18, 0x03, 0x00, 0x20, 0x40, // # ## ## # # 0x80, 0x14, 0x05, 0x00, 0x20, 0x40, // # # # # # # # 0x80, 0x12, 0x09, 0x00, 0x20, 0x40, // # # # # # # # 0x80, 0x11, 0x11, 0x00, 0x20, 0x40, // # # # # # # # 0x80, 0x10, 0xA1, 0x00, 0x20, 0x40, // # # # # # # # 0x80, 0x10, 0x71, 0x00, 0x20, 0x40, // # # ### # # # 0x80, 0x10, 0x2F, 0x00, 0x20, 0x40, // # # # #### # # 0x80, 0x10, 0x21, 0x00, 0x20, 0x40, // # # # # # # 0x80, 0x10, 0x21, 0x00, 0x20, 0x40, // # # # # # # 0x80, 0x10, 0x21, 0x00, 0x20, 0x40, // # # # # # # 0x80, 0x10, 0x21, 0x00, 0x20, 0x40, // # # # # # # 0xFF, 0xFC, 0x21, 0xFF, 0xF8, 0x40, // ############## # ############## # 0x3C, 0x03, 0xA0, 0x78, 0x07, 0x40, // #### ### # #### ### # 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, // ############### ############# }; const unsigned char PROGMEM e [] =//w29 h33 { 0xFF, 0xFF, 0xFF, 0x80, // ######################### 0x80, 0x00, 0x01, 0x60, // # # ## 0x80, 0x00, 0x01, 0x18, // # # ## 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x1F, 0xFF, 0x88, // # ############## # 0x80, 0x10, 0x00, 0x68, // # # ## # 0x80, 0x10, 0xFF, 0xF8, // # # ############# 0x80, 0x1F, 0xFC, 0x00, // # ########### 0x80, 0x00, 0x0B, 0x00, // # # ## 0x80, 0x00, 0x08, 0xC0, // # # ## 0x80, 0x00, 0x08, 0x40, // # # # 0x80, 0x00, 0x08, 0x40, // # # # 0x80, 0x00, 0x08, 0x40, // # # # 0x80, 0x00, 0x08, 0x40, // # # # 0x80, 0x1F, 0xFC, 0x40, // # ########### # 0x80, 0x10, 0x03, 0x40, // # # ## # 0x80, 0x10, 0xFF, 0xC0, // # # ########## 0x80, 0x1F, 0xFF, 0x80, // # ############## 0x80, 0x00, 0x01, 0x60, // # # ## 0x80, 0x00, 0x01, 0x18, // # # ## 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x00, 0x01, 0x08, // # # # 0x80, 0x00, 0x01, 0x08, // # # # 0xFF, 0xFF, 0xFF, 0x88, // ######################### # 0x30, 0x00, 0x00, 0x68, // ## ## # 0x0F, 0xFF, 0xFF, 0xF8, // ######################### }; const unsigned char PROGMEM o [] =//w37 h33 { 0x0F, 0xFF, 0xFF, 0xFF, 0xF8, // ################################# 0x34, 0x00, 0x00, 0x00, 0x08, // ## # # 0x44, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0xFF, 0xC0, 0x08, // # # ########## # 0x84, 0x00, 0x83, 0x40, 0x08, // # # # ## # # 0x84, 0x00, 0xFC, 0x40, 0x08, // # # ###### # # 0x84, 0x00, 0x88, 0x40, 0x08, // # # # # # # 0x84, 0x00, 0x88, 0x40, 0x08, // # # # # # # 0x84, 0x00, 0x88, 0x40, 0x08, // # # # # # # 0x84, 0x00, 0x88, 0x40, 0x08, // # # # # # # 0x84, 0x00, 0xFF, 0xC0, 0x08, // # # ########## # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x84, 0x00, 0x00, 0x00, 0x08, // # # # 0x8F, 0xFF, 0xFF, 0xFF, 0xF8, // # ################################# 0xB0, 0x00, 0x00, 0x00, 0x60, // # ## ## 0xFF, 0xFF, 0xFF, 0xFF, 0x80, // ################################# }; const unsigned char PROGMEM w [] =//w47 h35 { 0x01, 0xFF, 0xF8, 0x01, 0xFF, 0xFE, // ############## ################ 0x3E, 0x80, 0x08, 0x1F, 0x20, 0x02, // ##### # # ##### # # 0xC0, 0x80, 0x08, 0x20, 0x20, 0x02, // ## # # # # # 0x80, 0x80, 0x08, 0x20, 0x20, 0x02, // # # # # # # 0x80, 0x80, 0x08, 0x20, 0x20, 0x02, // # # # # # # 0x80, 0x80, 0x08, 0x20, 0x20, 0x02, // # # # # # # 0x80, 0x80, 0x08, 0x30, 0x20, 0x02, // # # # ## # # 0x80, 0x80, 0x08, 0x68, 0x20, 0x02, // # # # ## # # # 0x80, 0x80, 0x08, 0x44, 0x20, 0x02, // # # # # # # # 0x80, 0x80, 0x08, 0xC4, 0x20, 0x02, // # # # ## # # # 0x80, 0x80, 0x09, 0x83, 0x20, 0x02, // # # # ## ## # # 0x80, 0x80, 0x0B, 0x80, 0xA0, 0x02, // # # # ### # # # 0x80, 0x80, 0x0E, 0x00, 0x60, 0x02, // # # ### ## # 0x80, 0x80, 0x08, 0x00, 0x20, 0x02, // # # # # # 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, // # # # 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, // # # # 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, // # # # 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, // # # # 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, // # # # 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, // # # # 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, // # # # 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, // # # # 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, // # # # 0x80, 0x80, 0x00, 0x10, 0x00, 0x02, // # # # # 0x80, 0x80, 0x00, 0x28, 0x00, 0x02, // # # # # # 0x80, 0x80, 0x00, 0x28, 0x00, 0x02, // # # # # # 0x80, 0x80, 0x00, 0x44, 0x00, 0x02, // # # # # # 0x80, 0x80, 0x00, 0x83, 0x00, 0x02, // # # # ## # 0x80, 0x80, 0x01, 0xC0, 0x80, 0x02, // # # ### # # 0x80, 0x80, 0x07, 0x20, 0x40, 0x02, // # # ### # # # 0x80, 0x80, 0x08, 0x10, 0x30, 0x02, // # # # # ## # 0x81, 0xFF, 0xF0, 0x08, 0x08, 0x02, // # ############# # # # 0xBE, 0x03, 0xC0, 0x06, 0x07, 0xFE, // # ##### #### ## ########## 0xFF, 0xFC, 0x00, 0x01, 0xFF, 0xE0, // ############## ############ }; const unsigned char PROGMEM cat1 [] =//w58 h48 { 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ### 0x00, 0x3F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, // ###### #### 0x00, 0x7F, 0x80, 0x1F, 0xC0, 0x00, 0x00, 0x00, // ######## ####### 0x00, 0xF1, 0xC0, 0x3D, 0xF0, 0x00, 0x00, 0x00, // #### ### #### ##### 0x01, 0xC0, 0xE0, 0x70, 0x38, 0x00, 0x00, 0x00, // ### ### ### ### 0x03, 0x80, 0x70, 0xE0, 0x1C, 0x00, 0x00, 0x00, // ### ### ### ### 0x07, 0x00, 0x79, 0xC0, 0x0E, 0x00, 0x00, 0x00, // ### #### ### ### 0x0E, 0x00, 0x3F, 0x80, 0x06, 0x00, 0x00, 0x00, // ### ####### ## 0x1C, 0x00, 0x3F, 0x00, 0x03, 0x00, 0x00, 0x00, // ### ###### ## 0x18, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, // ## # ## 0x38, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, // ### ### 0x70, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // ### ## 0x70, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ### ### 0x60, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ## ### 0xE0, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ### ### 0xEF, 0x00, 0x00, 0x03, 0xC0, 0xC0, 0x00, 0x00, // ### #### #### ## 0xDF, 0x80, 0x00, 0x07, 0xE0, 0xC0, 0x00, 0x00, // ## ###### ###### ## 0xF9, 0xC0, 0x30, 0x0E, 0x70, 0xC0, 0x00, 0x00, // ##### ### ## ### ### ## 0xF0, 0xC0, 0x30, 0x0C, 0x30, 0xC0, 0x00, 0x00, // #### ## ## ## ## ## 0xF0, 0xC2, 0x03, 0x8C, 0x30, 0xC0, 0x78, 0x00, // #### ## # ### ## ## ## #### 0xF9, 0xC6, 0x01, 0xCE, 0x70, 0xC1, 0xFC, 0x00, // ##### ### ## ### ### ### ## ####### 0xDF, 0x8C, 0x30, 0xC7, 0xE0, 0xC3, 0x8F, 0x00, // ## ###### ## ## ## ###### ## ### #### 0xCF, 0x0E, 0x79, 0xC3, 0xC0, 0xC3, 0x03, 0x80, // ## #### ### #### ### #### ## ## ### 0xC0, 0x03, 0xCF, 0x80, 0x00, 0xC3, 0x01, 0x80, // ## #### ##### ## ## ## 0xE0, 0x01, 0x87, 0x00, 0x01, 0xC3, 0x00, 0xC0, // ### ## ### ### ## ## 0xE0, 0x00, 0x00, 0x00, 0x01, 0xC3, 0x00, 0xC0, // ### ### ## ## 0x60, 0x00, 0x00, 0x00, 0x01, 0x81, 0x80, 0xC0, // ## ## ## ## 0x70, 0x00, 0x00, 0x00, 0x03, 0x81, 0xC0, 0xC0, // ### ### ### ## 0x3C, 0x00, 0x00, 0x00, 0x07, 0x00, 0xC0, 0xC0, // #### ### ## ## 0x1F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0xC0, 0xC0, // ##### ##### ## ## 0x0F, 0xF0, 0x00, 0x03, 0xFE, 0x00, 0xC0, 0xC0, // ######## ######### ## ## 0x01, 0xFF, 0xFF, 0xFF, 0xF7, 0x00, 0xC0, 0xC0, // ############################# ### ## ## 0x00, 0x7F, 0xFF, 0xFF, 0xC3, 0x81, 0xC0, 0xC0, // ######################### ### ### ## 0x00, 0xE0, 0x00, 0x00, 0x01, 0xC1, 0xC0, 0xC0, // ### ### ### ## 0x00, 0xC0, 0x00, 0x00, 0x00, 0xE3, 0x80, 0xC0, // ## ### ### ## 0x00, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0x01, 0xC0, // ## ####### ### 0x00, 0xC0, 0x00, 0x00, 0x00, 0x7E, 0x01, 0xC0, // ## ###### ### 0x00, 0xC0, 0x00, 0x00, 0xF8, 0x38, 0x01, 0x80, // ## ##### ### ## 0x00, 0xC0, 0x60, 0x01, 0xF0, 0x30, 0x03, 0x80, // ## ## ##### ## ### 0x00, 0xC0, 0xF0, 0x03, 0x80, 0x30, 0x07, 0x00, // ## #### ### ## ### 0x00, 0xC0, 0xF0, 0x03, 0x00, 0x10, 0x0F, 0x00, // ## #### ## # #### 0x00, 0xC0, 0x70, 0x03, 0x00, 0x10, 0x1E, 0x00, // ## ### ## # #### 0x00, 0xC0, 0x30, 0x07, 0x00, 0x30, 0x3C, 0x00, // ## ## ### ## #### 0x00, 0xC0, 0x30, 0x0F, 0xC0, 0x3F, 0xF8, 0x00, // ## ## ###### ########### 0x00, 0xC0, 0x30, 0x0F, 0xC0, 0x7F, 0xE0, 0x00, // ## ## ###### ########## 0x00, 0xC0, 0x30, 0x0E, 0x40, 0xFF, 0x80, 0x00, // ## ## ### # ######### 0x00, 0xE0, 0x30, 0x1C, 0x01, 0xF0, 0x00, 0x00, // ### ## ### ##### 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, // ################################ 0x00, 0x1F, 0xC7, 0xF3, 0xFE, 0x00, 0x00, 0x00, // ####### ####### ######### }; const unsigned char PROGMEM cat2 [] =//w61 h47 { 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x00, 0x00, // #### #### 0x00, 0x1F, 0xC0, 0x07, 0xF0, 0x00, 0x00, 0x00, // ####### ####### 0x00, 0x3F, 0xC0, 0x0F, 0xF8, 0x00, 0x00, 0x00, // ######## ######### 0x00, 0xFC, 0xE0, 0x1E, 0x3C, 0x00, 0x00, 0x00, // ###### ### #### #### 0x01, 0xE0, 0x70, 0x38, 0x1E, 0x00, 0x00, 0x00, // #### ### ### #### 0x03, 0xC0, 0x30, 0x70, 0x0F, 0x00, 0x00, 0x00, // #### ## ### #### 0x03, 0x80, 0x38, 0xE0, 0x07, 0x80, 0x00, 0x00, // ### ### ### #### 0x07, 0x00, 0x1F, 0xC0, 0x03, 0x80, 0x00, 0x00, // ### ####### ### 0x0E, 0x00, 0x1F, 0x80, 0x03, 0xC0, 0x00, 0x00, // ### ###### #### 0x1C, 0x00, 0x06, 0x00, 0x01, 0xE0, 0x00, 0x00, // ### ## #### 0x1C, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, // ### #### 0x38, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, // ### ### 0x38, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, // ### ### 0x30, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, // ## #### 0x70, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, // ### #### 0x77, 0x80, 0x00, 0x01, 0xE0, 0xF0, 0x00, 0x00, // ### #### #### #### 0xEF, 0xC0, 0x00, 0x03, 0xF0, 0x70, 0x00, 0x00, // ### ###### ###### ### 0xFC, 0xE0, 0x18, 0x07, 0x38, 0x70, 0x00, 0x00, // ###### ### ## ### ### ### 0xF8, 0x40, 0x18, 0x06, 0x18, 0x70, 0x00, 0x00, // ##### # ## ## ## ### 0xF8, 0x61, 0x81, 0x86, 0x18, 0x70, 0x1F, 0x00, // ##### ## ## ## ## ## ### ##### 0xFC, 0xE3, 0x00, 0xC7, 0x38, 0x70, 0x3F, 0xC0, // ###### ### ## ## ### ### ### ######## 0xFF, 0xC6, 0x18, 0x63, 0xF0, 0x60, 0x70, 0xE0, // ########## ## ## ## ###### ## ### ### 0xE7, 0x86, 0x3C, 0x61, 0xE0, 0x60, 0x60, 0x70, // ### #### ## #### ## #### ## ## ### 0xE0, 0x03, 0xE7, 0xC0, 0x00, 0xE0, 0x60, 0x30, // ### ##### ##### ### ## ## 0xC0, 0x01, 0xC3, 0x80, 0x00, 0xC0, 0x60, 0x30, // ## ### ### ## ## ## 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x60, 0x38, // #### ## ## ### 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x30, 0x18, // ### ## ## ## 0x38, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x38, 0x18, // ### ### ### ## 0x3E, 0x00, 0x00, 0x00, 0x07, 0x80, 0x18, 0x18, // ##### #### ## ## 0x0F, 0x80, 0x00, 0x00, 0x1F, 0xC0, 0x18, 0x18, // ##### ####### ## ## 0x07, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x18, 0x18, // ####### ############ ## ## 0x01, 0xFF, 0xFF, 0xFF, 0xF1, 0xF0, 0x18, 0x18, // ############################# ##### ## ## 0x00, 0x7F, 0xFF, 0xFF, 0xE0, 0x70, 0x38, 0x18, // ########################## ### ### ## 0x00, 0x70, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x38, // ### ######### ### 0x00, 0xE0, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x30, // ### ######### ## 0x00, 0xE0, 0x00, 0x00, 0x7C, 0x1C, 0x00, 0x70, // ### ##### ### ### 0x00, 0xE0, 0x70, 0x00, 0xF8, 0x18, 0x00, 0xE0, // ### ### ##### ## ### 0x01, 0xE0, 0x78, 0x01, 0xC0, 0x18, 0x01, 0xE0, // #### #### ### ## #### 0x01, 0xE0, 0x78, 0x01, 0x80, 0x18, 0x03, 0xC0, // #### #### ## ## #### 0x01, 0xE0, 0x38, 0x01, 0x80, 0x18, 0x07, 0x80, // #### ### ## ## #### 0x00, 0xE0, 0x18, 0x01, 0x80, 0x1C, 0x3F, 0x00, // ### ## ## ### ###### 0x00, 0xE0, 0x18, 0x07, 0xE0, 0x1F, 0xF8, 0x00, // ### ## ###### ########## 0x00, 0xE0, 0x18, 0x07, 0xE0, 0x3F, 0xF0, 0x00, // ### ## ###### ########## 0x00, 0xE0, 0x18, 0x07, 0x20, 0x78, 0x00, 0x00, // ### ## ### # #### 0x00, 0x60, 0x18, 0x06, 0x00, 0xF0, 0x00, 0x00, // ## ## ## #### 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, // ################################# 0x00, 0x0F, 0xC7, 0xF1, 0xFE, 0x00, 0x00, 0x00, // ###### ####### ######## }; const unsigned char PROGMEM cat3 [] =//w65 h42 { 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, // #### 0x00, 0x0F, 0xE0, 0x03, 0xFC, 0x00, 0x00, 0x00, 0x00, // ####### ######## 0x00, 0x7F, 0xF0, 0x07, 0xFE, 0x00, 0x00, 0x00, 0x00, // ########### ########## 0x01, 0xF8, 0x78, 0x1F, 0x87, 0x00, 0x00, 0x00, 0x00, // ###### #### ###### ### 0x03, 0xC0, 0x3C, 0x3C, 0x03, 0x80, 0x00, 0x00, 0x00, // #### #### #### ### 0x07, 0x00, 0x0E, 0x70, 0x01, 0xC0, 0x00, 0x00, 0x00, // ### ### ### ### 0x0F, 0x00, 0x0E, 0xF0, 0x00, 0xE0, 0x00, 0x00, 0x00, // #### ### #### ### 0x1C, 0x00, 0x0F, 0xC0, 0x00, 0x60, 0x00, 0x00, 0x00, // ### ###### ## 0x1C, 0x00, 0x0F, 0xC0, 0x00, 0x70, 0x00, 0x00, 0x00, // ### ###### ### 0x38, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, // ### ## ## 0x38, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, // ### ## 0x30, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, // ## ## 0x70, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, // ### ## 0x60, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, // ## ### 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, // ### ### 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // ### ## 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, // ## #### ## 0xFF, 0x00, 0x1C, 0x00, 0xFC, 0x0C, 0x00, 0x00, 0x00, // ######## ### ###### ## 0xFF, 0x80, 0x0C, 0x01, 0xFE, 0x0C, 0x00, 0x00, 0x00, // ######### ## ######## ## 0xE1, 0xC0, 0x00, 0x03, 0x87, 0x0C, 0x00, 0xF8, 0x00, // ### ### ### ### ## ##### 0xC0, 0xC3, 0x80, 0x63, 0x03, 0x0C, 0x01, 0xFE, 0x00, // ## ## ### ## ## ## ## ######## 0xC0, 0xC3, 0x0C, 0x33, 0x03, 0x0C, 0x03, 0x87, 0x00, // ## ## ## ## ## ## ## ## ### ### 0xC0, 0xC3, 0x1E, 0x33, 0x03, 0x0C, 0x07, 0x03, 0x00, // ## ## ## #### ## ## ## ## ### ## 0xFF, 0x81, 0xFF, 0xE1, 0xFE, 0x0E, 0x0E, 0x01, 0x80, // ######### ############ ######## ### ### ## 0xFF, 0x00, 0xFF, 0xC0, 0xFC, 0x1E, 0x0C, 0x01, 0xC0, // ######## ########## ###### #### ## ### 0xE0, 0x00, 0x3F, 0x00, 0x00, 0x1C, 0x0C, 0x01, 0xC0, // ### ###### ### ## ### 0x60, 0x00, 0x3F, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0xC0, // ## ###### ### ### ## 0x70, 0x00, 0x0C, 0x00, 0x00, 0x3E, 0x06, 0x00, 0xE0, // ### ## ##### ## ### 0x3C, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x00, 0xE0, // #### ######## ### ### 0x1F, 0x00, 0x00, 0x00, 0x03, 0xE7, 0x83, 0x00, 0xE0, // ##### ##### #### ## ### 0x07, 0xE0, 0x00, 0x00, 0x7F, 0xC3, 0xC3, 0x00, 0xE0, // ###### ######### #### ## ### 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xC7, 0x00, 0xE0, // ################################## ### ### ### 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xEF, 0x00, 0xC0, // ################################# #### #### ## 0x03, 0x80, 0x00, 0x00, 0x1C, 0x00, 0xFE, 0x01, 0xC0, // ### ### ####### ### 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, 0xFC, 0x01, 0x80, // ## ## ###### ## 0x07, 0x00, 0x00, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x80, // ### ## ## ### 0x07, 0x00, 0x7F, 0x00, 0x30, 0x00, 0xC0, 0x07, 0x00, // ### ####### ## ## ### 0x07, 0x03, 0xFF, 0xC0, 0xFC, 0x00, 0xC0, 0x0E, 0x00, // ### ############ ###### ## ### 0x07, 0x03, 0xFF, 0x80, 0xFC, 0x00, 0xC0, 0x3C, 0x00, // ### ########### ###### ## #### 0x03, 0x00, 0x3C, 0x00, 0xC0, 0x03, 0xFF, 0xF0, 0x00, // ## #### ## ############## 0x03, 0x80, 0x3C, 0x00, 0xC0, 0x07, 0xFF, 0xC0, 0x00, // ### #### ## ############# 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x3F, 0x80, 0x00, // ######################################## ####### 0x00, 0x3F, 0x80, 0xFF, 0x1F, 0xF8, 0x00, 0x00, 0x00, // ####### ######## ########## }; const unsigned char PROGMEM cat4 [] =//w64 h51 { 0x00, 0x3F, 0x80, 0x0F, 0xC0, 0x00, 0x00, 0x00, // ####### ###### 0x00, 0x7F, 0x80, 0x1F, 0xF0, 0x00, 0x00, 0x00, // ######## ######### 0x00, 0xF9, 0xC0, 0x7C, 0x78, 0x00, 0x00, 0x00, // ##### ### ##### #### 0x01, 0xC0, 0xE0, 0xF0, 0x38, 0x00, 0x00, 0x00, // ### ### #### ### 0x03, 0x80, 0x71, 0xE0, 0x1C, 0x00, 0x00, 0x00, // ### ### #### ### 0x07, 0x00, 0x73, 0xC0, 0x0E, 0x00, 0x00, 0x00, // ### ### #### ### 0x0E, 0x00, 0x3F, 0x80, 0x07, 0x00, 0x00, 0x00, // ### ####### ### 0x0C, 0x00, 0x3F, 0x00, 0x07, 0x00, 0x00, 0x00, // ## ###### ### 0x18, 0x00, 0x0C, 0x00, 0x03, 0x80, 0x00, 0x00, // ## ## ### 0x38, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, // ### ### 0x30, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // ## ## 0x70, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ### ### 0x60, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ## ### 0xE0, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ### ### 0xCF, 0x00, 0x00, 0x03, 0xC0, 0xC0, 0x00, 0x00, // ## #### #### ## 0xDF, 0x80, 0x78, 0x07, 0xE0, 0xC0, 0x00, 0x00, // ## ###### #### ###### ## 0xF0, 0xC0, 0x30, 0x0C, 0x30, 0xC0, 0x00, 0x00, // #### ## ## ## ## ## 0xF0, 0xC0, 0x30, 0x0C, 0x30, 0xC0, 0x00, 0x00, // #### ## ## ## ## ## 0xFF, 0xC7, 0x03, 0x8F, 0xF0, 0xC0, 0x00, 0x00, // ########## ### ### ######## ## 0xF0, 0xCE, 0x01, 0xCC, 0x30, 0xC0, 0x00, 0x00, // #### ## ### ### ## ## ## 0xE0, 0x4C, 0x30, 0xC8, 0x10, 0xC0, 0x00, 0x00, // ### # ## ## ## # # ## 0xC0, 0x0C, 0x78, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## #### ## ## 0xC0, 0x0F, 0xCF, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ###### ###### ## 0xC0, 0x0F, 0x87, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ##### ##### ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x03, 0xE0, // ## ## ## ## ##### 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x07, 0xF8, // ## ## ## ## ######## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x0E, 0x1C, // ## ## ## ## ### ### 0xC0, 0x0C, 0x00, 0xC0, 0x01, 0xC0, 0x0C, 0x0E, // ## ## ## ### ## ### 0xE0, 0x07, 0x03, 0x80, 0x01, 0xC0, 0x0C, 0x07, // ### ### ### ### ## ### 0x60, 0x01, 0xFE, 0x00, 0x01, 0x80, 0x0C, 0x07, // ## ######## ## ## ### 0x70, 0x00, 0x00, 0x00, 0x03, 0x80, 0x0E, 0x03, // ### ### ### ## 0x38, 0x00, 0x00, 0x00, 0x07, 0x00, 0x06, 0x03, // ### ### ## ## 0x1E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x06, 0x03, // #### ##### ## ## 0x0F, 0xE0, 0x00, 0x03, 0xFE, 0x00, 0x0E, 0x03, // ####### ######### ### ## 0x03, 0xFF, 0xFF, 0xFF, 0xEF, 0x00, 0x1C, 0x07, // ############################# #### ### ### 0x00, 0x7F, 0xFF, 0xFF, 0xC3, 0x80, 0x3C, 0x06, // ######################### ### #### ## 0x00, 0x70, 0x00, 0x00, 0x01, 0xE0, 0x30, 0x0E, // ### #### ## ### 0x00, 0x60, 0x00, 0x00, 0x00, 0xF0, 0x70, 0x0E, // ## #### ### ### 0x00, 0xE0, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x0C, // ### ########## ## 0x01, 0xC0, 0x00, 0x00, 0x1C, 0x7F, 0xC0, 0x1C, // ### ### ######### ### 0x01, 0x80, 0x00, 0x00, 0xF8, 0x30, 0x00, 0x38, // ## ##### ## ### 0x01, 0x80, 0x70, 0x01, 0xF0, 0x30, 0x00, 0x70, // ## ### ##### ## ### 0x01, 0xC0, 0xF8, 0x03, 0x80, 0x20, 0x00, 0xE0, // ### ##### ### # ### 0x01, 0xC0, 0xF0, 0x03, 0x00, 0x20, 0x03, 0xC0, // ### #### ## # #### 0x01, 0xC0, 0x70, 0x03, 0x00, 0x20, 0x0F, 0x80, // ### ### ## # ##### 0x00, 0xC0, 0x30, 0x07, 0x80, 0x30, 0x3E, 0x00, // ## ## #### ## ##### 0x00, 0xC0, 0x30, 0x0F, 0xC0, 0x3F, 0xF8, 0x00, // ## ## ###### ########### 0x00, 0xC0, 0x30, 0x0F, 0xC0, 0x3F, 0xE0, 0x00, // ## ## ###### ######### 0x00, 0xC0, 0x30, 0x0C, 0x00, 0xE0, 0x00, 0x00, // ## ## ## ### 0x00, 0xE0, 0x30, 0x0C, 0x01, 0xC0, 0x00, 0x00, // ### ## ## ### 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, // ################################ 0x00, 0x0F, 0xC7, 0xCF, 0xFE, 0x00, 0x00, 0x00, // ###### ##### ########### }; const unsigned char PROGMEM cat5 [] =//h66 w59 { 0x00, 0x3F, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, // ###### ##### 0x00, 0x7F, 0x80, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, // ######## ######### 0x00, 0xF1, 0xC0, 0x0E, 0x7E, 0x00, 0x00, 0x00, 0x00, // #### ### ### ###### 0x01, 0xC0, 0xE0, 0x1C, 0x0F, 0x00, 0x00, 0x00, 0x00, // ### ### ### #### 0x03, 0x80, 0x7F, 0xF8, 0x07, 0xC0, 0x00, 0x00, 0x00, // ### ############ ##### 0x07, 0x00, 0x3F, 0xF0, 0x03, 0xC0, 0x00, 0x00, 0x00, // ### ########## #### 0x0E, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, // ### ## 0x1C, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, // ### ### 0x38, 0x00, 0x00, 0x00, 0x0C, 0xE0, 0x00, 0x00, 0x00, // ### ## ### 0x30, 0x00, 0x00, 0x00, 0x1E, 0xE0, 0x00, 0x00, 0x00, // ## #### ### 0x77, 0x00, 0x78, 0x00, 0x3B, 0x60, 0x00, 0x00, 0x00, // ### ### #### ### ## ## 0x7F, 0x80, 0x30, 0x00, 0xF1, 0x70, 0x00, 0x00, 0x00, // ######## ## #### # ### 0xE9, 0xC0, 0x00, 0x00, 0xC0, 0x70, 0x00, 0x00, 0x00, // ### # ### ## ### 0xE0, 0xC6, 0x00, 0x60, 0xC0, 0x70, 0x00, 0x00, 0x00, // ### ## ## ## ## ### 0xEF, 0xCC, 0x30, 0x33, 0xFC, 0x30, 0x00, 0x00, 0x00, // ### ###### ## ## ## ######## ## 0xC0, 0xCC, 0xF8, 0x33, 0x84, 0x30, 0x00, 0x00, 0x00, // ## ## ## ##### ## ### # ## 0xC0, 0x4F, 0xCF, 0xF2, 0x00, 0x30, 0x00, 0x00, 0x00, // ## # ###### ######## # ## 0xC0, 0x0F, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, // ## #### ## ## 0xC0, 0x0C, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, // ## ## ## ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, // ## # # ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, // ## # # ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, // ## # # ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, // ## # # ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, // ## # # ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, // ## # # ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, // ## # # ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, // ## # # ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0x60, 0x00, // ## # # ## ## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x00, 0xFC, 0x00, // ## # # ## ###### 0xC0, 0x08, 0x00, 0x10, 0x00, 0x30, 0x01, 0xFE, 0x00, // ## # # ## ######## 0xC0, 0x08, 0x00, 0x10, 0x00, 0x70, 0x03, 0x03, 0x80, // ## # # ### ## ### 0xC0, 0x08, 0x00, 0x10, 0x00, 0x70, 0x03, 0x03, 0x80, // ## # # ### ## ### 0x60, 0x08, 0x00, 0x10, 0x00, 0x70, 0x03, 0x00, 0x80, // ## # # ### ## # 0x70, 0x08, 0x00, 0x30, 0x00, 0x70, 0x03, 0x00, 0xC0, // ### # ## ### ## ## 0x3C, 0x08, 0x00, 0x30, 0x00, 0xE0, 0x03, 0x80, 0xC0, // #### # ## ### ### ## 0x1F, 0x08, 0x00, 0x30, 0x01, 0xC0, 0x01, 0x00, 0xE0, // ##### # ## ### # ### 0x07, 0xC8, 0x00, 0x30, 0x03, 0x80, 0x01, 0x00, 0x60, // ##### # ## ### # ## 0x03, 0xE8, 0x00, 0x30, 0x1F, 0x00, 0x01, 0x80, 0x60, // ##### # ## ##### ## ## 0x07, 0xF8, 0x00, 0x7F, 0xFF, 0x00, 0x03, 0x80, 0xE0, // ######## ############### ### ### 0x06, 0x7E, 0x7C, 0xFF, 0xFF, 0x80, 0x03, 0x00, 0xC0, // ## ###### ##### ################# ## ## 0x0E, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x03, 0x00, 0xC0, // ### #### ## ## 0x0C, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0xC0, // ## ### ### ## 0x0C, 0x00, 0x00, 0x00, 0x00, 0x70, 0x3E, 0x03, 0x80, // ## ### ##### ### 0x1C, 0x00, 0x00, 0x00, 0x00, 0x70, 0x7C, 0x03, 0x00, // ### ### ##### ## 0x1C, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0xE0, 0x07, 0x00, // ### #### ######### ### 0x14, 0x00, 0x00, 0x00, 0x7E, 0x3F, 0xC0, 0x06, 0x00, // # # ###### ######## ## 0x16, 0x00, 0x00, 0x00, 0xE3, 0x30, 0x00, 0x0C, 0x00, // # ## ### ## ## ## 0x16, 0x03, 0xFF, 0x01, 0xC0, 0x30, 0x00, 0x1C, 0x00, // # ## ########## ### ## ### 0x17, 0x01, 0xFF, 0x03, 0x80, 0x30, 0x00, 0x38, 0x00, // # ### ######### ### ## ### 0x13, 0x00, 0xFF, 0x03, 0x00, 0x30, 0x00, 0x70, 0x00, // # ## ######## ## ## ### 0x1B, 0x00, 0x78, 0x03, 0x00, 0x30, 0x03, 0xC0, 0x00, // ## ## #### ## ## #### 0x1B, 0x80, 0x30, 0x03, 0x00, 0x30, 0x1F, 0x80, 0x00, // ## ### ## ## ## ###### 0x1B, 0x80, 0x30, 0x0F, 0xE0, 0x33, 0xFE, 0x00, 0x00, // ## ### ## ####### ## ######### 0x1B, 0x80, 0x30, 0x0F, 0xC0, 0x37, 0xF0, 0x00, 0x00, // ## ### ## ###### ## ####### 0x1B, 0x80, 0x30, 0x0E, 0x00, 0x3E, 0x00, 0x00, 0x00, // ## ### ## ### ##### 0x0D, 0xC0, 0x30, 0x0C, 0x00, 0x3C, 0x00, 0x00, 0x00, // ## ### ## ## #### 0x0D, 0xC0, 0x30, 0x0C, 0x00, 0xF0, 0x00, 0x00, 0x00, // ## ### ## ## #### 0x07, 0xE0, 0x30, 0x0E, 0x01, 0xE0, 0x00, 0x00, 0x00, // ###### ## ### #### 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, // ################################### 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, // ################################ }; const unsigned char PROGMEM cat6 [] =//h61 w61 { 0x00, 0x0F, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, // #### #### 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x00, 0x00, 0x00, // ####### ####### 0x00, 0x71, 0xC0, 0x38, 0xF0, 0x00, 0x00, 0x00, // ### ### ### #### 0x00, 0xC0, 0xF0, 0x70, 0x38, 0x00, 0x00, 0x00, // ## #### ### ### 0x01, 0x80, 0x78, 0xE0, 0x1C, 0x00, 0x00, 0x00, // ## #### ### ### 0x03, 0x00, 0x3F, 0xC0, 0x0C, 0x00, 0x00, 0x00, // ## ######## ## 0x06, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, // ## #### ## 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, // ## ## 0x18, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, // ## ## ## 0x18, 0x00, 0x00, 0x00, 0x7B, 0x80, 0x00, 0x00, // ## #### ### 0x3F, 0x00, 0x78, 0x00, 0xED, 0x80, 0x00, 0x00, // ###### #### ### ## ## 0x37, 0x80, 0x30, 0x01, 0xC1, 0x80, 0x00, 0x00, // ## #### ## ### ## 0x60, 0xC0, 0x00, 0x03, 0x01, 0xC0, 0x00, 0x00, // ## ## ## ### 0x60, 0xC6, 0x01, 0x83, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## ## ## 0x6F, 0xCC, 0x30, 0xCF, 0xFC, 0xC0, 0x00, 0x00, // ## ###### ## ## ## ########## ## 0xE8, 0xCC, 0x78, 0xCF, 0x0C, 0xC0, 0x00, 0x00, // ### # ## ## #### ## #### ## ## 0xC0, 0x4F, 0xCF, 0xC8, 0x00, 0xC0, 0x00, 0x00, // ## # ###### ###### # ## 0xC0, 0x0F, 0xCF, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ###### ###### ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x03, 0xC0, // ## ## ## ## #### 0xC0, 0x0C, 0x00, 0xC0, 0x01, 0xC0, 0x07, 0xE0, // ## ## ## ### ###### 0xE0, 0x0C, 0x00, 0xC0, 0x01, 0xC0, 0x0E, 0x70, // ### ## ## ### ### ### 0x60, 0x0C, 0x00, 0xC0, 0x01, 0x80, 0x0C, 0x38, // ## ## ## ## ## ### 0x70, 0x0C, 0x00, 0xC0, 0x03, 0x00, 0x08, 0x18, // ### ## ## ## # ## 0x3C, 0x0C, 0x00, 0xC0, 0x07, 0x00, 0x18, 0x1C, // #### ## ## ### ## ### 0x1E, 0x0C, 0x00, 0xC0, 0x0E, 0x00, 0x18, 0x1C, // #### ## ## ### ## ### 0x0F, 0x8C, 0x00, 0xC0, 0x7C, 0x00, 0x38, 0x0C, // ##### ## ## ##### ### ## 0x1B, 0xFF, 0x03, 0xFF, 0xF0, 0x00, 0x30, 0x0C, // ## ########## ############## ## ## 0x30, 0xFF, 0xFF, 0xCC, 0xE0, 0x00, 0x30, 0x0C, // ## ################## ## ### ## ## 0x60, 0x01, 0xFE, 0x00, 0xF0, 0x00, 0x60, 0x1C, // ## ######## #### ## ### 0x40, 0x00, 0x00, 0x00, 0x30, 0x00, 0x60, 0x18, // # ## ## ## 0xC0, 0x00, 0x00, 0x00, 0x18, 0x00, 0xC0, 0x30, // ## ## ## ## 0xC0, 0x00, 0x00, 0x00, 0x1C, 0x01, 0xC0, 0x30, // ## ### ### ## 0xC0, 0x00, 0x00, 0x00, 0x1C, 0x07, 0x80, 0x70, // ## ### #### ### 0xC0, 0x00, 0x00, 0x00, 0x0E, 0x7F, 0x00, 0x60, // ## ### ####### ## 0xC0, 0x00, 0x00, 0x0F, 0x0F, 0xF8, 0x00, 0xE0, // ## #### ######### ### 0xC0, 0x00, 0x40, 0x1F, 0x8F, 0xF0, 0x01, 0xC0, // ## # ###### ######## ### 0xC0, 0x7F, 0xE0, 0x39, 0x8E, 0x00, 0x03, 0x80, // ## ########## ### ## ### ### 0xE0, 0x7F, 0x80, 0x70, 0x0C, 0x00, 0x07, 0x00, // ### ######## ### ## ### 0xE0, 0x3F, 0x80, 0xC0, 0x0C, 0x00, 0x0C, 0x00, // ### ####### ## ## ## 0xF0, 0x1F, 0x00, 0xC0, 0x0C, 0x00, 0x38, 0x00, // #### ##### ## ## ### 0xD8, 0x0E, 0x00, 0xC0, 0x0C, 0x00, 0xF0, 0x00, // ## ## ### ## ## #### 0xD8, 0x0E, 0x01, 0xC0, 0x0C, 0x07, 0xC0, 0x00, // ## ## ### ### ## ##### 0xC8, 0x0E, 0x03, 0xF0, 0x0C, 0xFE, 0x00, 0x00, // ## # ### ###### ## ####### 0xC8, 0x0C, 0x03, 0xF8, 0x0C, 0xF0, 0x00, 0x00, // ## # ## ####### ## #### 0x6C, 0x0C, 0x07, 0x00, 0x0F, 0x80, 0x00, 0x00, // ## ## ## ### ##### 0x7C, 0x0C, 0x07, 0x00, 0x1F, 0x00, 0x00, 0x00, // ##### ## ### ##### 0x3C, 0x0C, 0x07, 0x00, 0x38, 0x00, 0x00, 0x00, // #### ## ### ### 0x1C, 0x0C, 0x0F, 0x00, 0x78, 0x00, 0x00, 0x00, // ### ## #### #### 0x1E, 0x1E, 0x0D, 0xFF, 0xF8, 0x00, 0x00, 0x00, // #### #### ## ############## 0x07, 0xF3, 0xF8, 0x7F, 0xF0, 0x00, 0x00, 0x00, // ####### ####### ########### }; const unsigned char PROGMEM cat7 [] =//w62 h51? { 0x00, 0x1E, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, // #### ### 0x00, 0x3F, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x00, // ###### ######## 0x00, 0xF9, 0x80, 0x78, 0xF0, 0x00, 0x00, 0x00, // ##### ## #### #### 0x01, 0xC0, 0xC1, 0xF0, 0x38, 0x00, 0x00, 0x00, // ### ## ##### ### 0x07, 0x80, 0x7F, 0xE0, 0x1C, 0x00, 0x00, 0x00, // #### ########## ### 0x07, 0x00, 0x3F, 0xC0, 0x0E, 0x00, 0x00, 0x00, // ### ######## ### 0x0E, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, // ### ## ## 0x1C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // ### # 0x38, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, // ### ### ## 0x3E, 0x00, 0x78, 0x00, 0x7F, 0x00, 0x00, 0x00, // ##### #### ####### 0x77, 0x00, 0x30, 0x00, 0xE1, 0x80, 0x00, 0x00, // ### ### ## ### ## 0x73, 0x80, 0x30, 0x01, 0xC1, 0x80, 0x00, 0x00, // ### ### ## ### ## 0x65, 0xC6, 0x01, 0x83, 0x81, 0x80, 0x00, 0x00, // ## # ### ## ## ### ## 0xEE, 0xCC, 0x00, 0xC7, 0x79, 0x80, 0x00, 0x00, // ### ### ## ## ## ### #### ## 0xE7, 0xEC, 0x30, 0xCF, 0xF8, 0x80, 0x00, 0x00, // ### ###### ## ## ## ######### # 0xC4, 0xEE, 0x71, 0xCF, 0xB0, 0x80, 0x00, 0x00, // ## # ### ### ### ### ##### ## # 0xC0, 0x2F, 0xDF, 0xCC, 0x00, 0xC0, 0x00, 0x00, // ## # ###### ####### ## ## 0xC0, 0x0F, 0xCF, 0xC8, 0x00, 0xC0, 0x00, 0x00, // ## ###### ###### # ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x01, 0x80, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x01, 0x80, 0x00, 0x00, // ## ## ## ## 0xC0, 0x0C, 0x00, 0xC0, 0x01, 0x80, 0x00, 0x00, // ## ## ## ## 0x60, 0x0C, 0x00, 0xC0, 0x01, 0x80, 0x00, 0x30, // ## ## ## ## ## 0x30, 0x0C, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF8, // ## ## ## ## ##### 0x1C, 0x0C, 0x00, 0xC0, 0x07, 0x00, 0x01, 0x98, // ### ## ## ### ## ## 0x0F, 0x0C, 0x00, 0xC0, 0x3E, 0x00, 0x03, 0x1C, // #### ## ## ##### ## ### 0x07, 0xFF, 0x8F, 0xFF, 0xF8, 0x00, 0x06, 0x0C, // ############ ################# ## ## 0x07, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x0C, 0x0C, // ############################## ## ## 0x0E, 0x01, 0xFC, 0x03, 0xC0, 0x00, 0x18, 0x0C, // ### ####### #### ## ## 0x0C, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x30, 0x1C, // ## #### ## ### 0x1C, 0x00, 0x00, 0x00, 0x78, 0x00, 0x60, 0x18, // ### #### ## ## 0x18, 0x00, 0x00, 0x00, 0x3C, 0x00, 0xC0, 0x18, // ## #### ## ## 0x38, 0x00, 0x00, 0x00, 0x1C, 0x01, 0x80, 0x30, // ### ### ## ## 0x38, 0x00, 0x00, 0x00, 0x1E, 0x03, 0x00, 0x70, // ### #### ## ### 0x38, 0x00, 0x00, 0x3C, 0x1E, 0x0E, 0x00, 0xE0, // ### #### #### ### ### 0x70, 0xFC, 0x00, 0x7E, 0x1E, 0x7C, 0x01, 0x80, // ### ###### ###### #### ##### ## 0x70, 0xF8, 0x00, 0xE2, 0x0F, 0xF0, 0x03, 0x00, // ### ##### ### # ######## ## 0x70, 0x78, 0x01, 0xC0, 0x0F, 0xC0, 0x06, 0x00, // ### #### ### ###### ## 0x70, 0x38, 0x03, 0x00, 0x0C, 0x00, 0x08, 0x00, // ### ### ## ## # 0x30, 0x18, 0x03, 0x00, 0x0C, 0x00, 0x3C, 0x00, // ## ## ## ## #### 0x30, 0x18, 0x03, 0x00, 0x30, 0x00, 0xF8, 0x00, // ## ## ## ## ##### 0x30, 0x18, 0x07, 0x00, 0x30, 0x07, 0xE0, 0x00, // ## ## ### ## ###### 0x38, 0x18, 0x0F, 0xC0, 0x30, 0x3F, 0x80, 0x00, // ### ## ###### ## ####### 0x1C, 0x18, 0x1F, 0xE0, 0x73, 0xFC, 0x00, 0x00, // ### ## ######## ### ######## 0x1C, 0x38, 0x1C, 0x00, 0xFF, 0xF0, 0x00, 0x00, // ### ### ### ############ 0x0F, 0x38, 0x0C, 0x01, 0xFF, 0xC0, 0x00, 0x00, // #### ### ## ########### 0x07, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, // ################################## 0x00, 0x7E, 0x01, 0xFF, 0xC0, 0x00, 0x00, 0x00, // ###### ########### }; const unsigned char PROGMEM cat8 [] =//w60 h50 { 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, // ## 0x00, 0x1F, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, // ##### ###### 0x00, 0x7F, 0x80, 0x1F, 0xE0, 0x00, 0x00, 0x00, // ######## ######## 0x00, 0xF9, 0xC0, 0x1E, 0x70, 0x00, 0x00, 0x00, // ##### ### #### ### 0x01, 0xC0, 0xE0, 0x30, 0x38, 0x00, 0x00, 0x00, // ### ### ## ### 0x07, 0x00, 0x60, 0x60, 0x1C, 0x00, 0x00, 0x00, // ### ## ## ### 0x07, 0x00, 0x60, 0xE0, 0x0C, 0x00, 0x00, 0x00, // ### ## ### ## 0x0E, 0x00, 0x71, 0xC0, 0x0C, 0x00, 0x00, 0x00, // ### ### ### ## 0x1C, 0x00, 0x33, 0xC0, 0x0E, 0x00, 0x00, 0x00, // ### ## #### ### 0x1C, 0x00, 0x3F, 0x80, 0x06, 0x00, 0x00, 0x00, // ### ####### ## 0x3C, 0x00, 0x3F, 0x00, 0x07, 0x00, 0x00, 0x00, // #### ###### ### 0x38, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ### ## 0x78, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, // #### ### 0x78, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // #### ## 0xF0, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // #### ## 0xEF, 0x00, 0x00, 0x03, 0xC1, 0xC0, 0x00, 0x00, // ### #### #### ### 0xDF, 0x80, 0x00, 0x07, 0xE1, 0xC0, 0x00, 0x00, // ## ###### ###### ### 0xF0, 0xC0, 0x78, 0x0C, 0x31, 0xC0, 0x00, 0x00, // #### ## #### ## ## ### 0xF9, 0xC0, 0x30, 0x0E, 0x30, 0xC0, 0x00, 0x00, // ##### ### ## ### ## ## 0xFF, 0xC0, 0x00, 0x0F, 0xF0, 0xC0, 0x00, 0x00, // ########## ######## ## 0xE0, 0xC6, 0x01, 0x8E, 0x30, 0xC0, 0x00, 0x00, // ### ## ## ## ### ## ## 0xC0, 0x0C, 0x30, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ## ## ## ## 0xC0, 0x0E, 0x79, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ### #### ### ## 0xC0, 0x0F, 0xCF, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ###### ###### ## 0xC0, 0x0F, 0x87, 0xC0, 0x00, 0xC0, 0x00, 0x00, // ## ##### ##### ## 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0xC0, 0x07, 0x00, // ## ## ## ## ### 0xC0, 0x0C, 0x00, 0xC0, 0x01, 0xC0, 0x0F, 0x80, // ## ## ## ### ##### 0xC0, 0x0C, 0x00, 0xC0, 0x01, 0xC0, 0x38, 0xC0, // ## ## ## ### ### ## 0xE0, 0x0C, 0x00, 0xC0, 0x01, 0xC0, 0x30, 0xE0, // ### ## ## ### ## ### 0x70, 0x0C, 0x00, 0xC0, 0x03, 0x80, 0x60, 0x60, // ### ## ## ### ## ## 0x3C, 0x04, 0x00, 0xC0, 0x07, 0x80, 0x60, 0x70, // #### # ## #### ## ### 0x1E, 0x06, 0x03, 0x80, 0x3E, 0x00, 0xC0, 0x30, // #### ## ### ##### ## ## 0x0F, 0x87, 0x03, 0x03, 0xFC, 0x00, 0xC0, 0x70, // ##### ### ## ######## ## ### 0x0F, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0xC0, 0xE0, // ################################# ## ### 0x03, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0xE0, 0xE0, // ################################ ### ### 0x06, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x60, 0xC0, // ## ##### ## ## 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x60, 0xC0, // ### ### ## ## 0x0E, 0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0xC0, // ### ## ## ## 0x0C, 0x00, 0x00, 0x00, 0x07, 0x00, 0xC0, 0xC0, // ## ### ## ## 0x0C, 0x00, 0x00, 0x0F, 0x03, 0x81, 0xC1, 0xC0, // ## #### ### ### ### 0x18, 0x03, 0x80, 0x1F, 0xC3, 0x83, 0xC1, 0x80, // ## ### ####### ### #### ## 0x18, 0x0F, 0x80, 0x38, 0x63, 0xFF, 0x81, 0x80, // ## ##### ### ## ########### ## 0x38, 0x0F, 0x80, 0x30, 0x03, 0xFF, 0x01, 0x00, // ### ##### ## ########## # 0x30, 0x03, 0x00, 0x30, 0x03, 0x00, 0x03, 0x00, // ## ## ## ## ## 0x30, 0x02, 0x00, 0x30, 0x03, 0x00, 0x07, 0x00, // ## # ## ## ### 0x30, 0x03, 0x00, 0x30, 0x03, 0x00, 0x0E, 0x00, // ## ## ## ## ### 0x30, 0x03, 0x00, 0x38, 0x03, 0x00, 0x1C, 0x00, // ## ## ### ## ### 0x30, 0x03, 0x00, 0xFC, 0x03, 0x00, 0x38, 0x00, // ## ## ###### ## ### 0x30, 0x03, 0x01, 0xFE, 0x03, 0x01, 0xF0, 0x00, // ## ## ######## ## ##### 0x3C, 0x03, 0x01, 0xE0, 0x0F, 0xFF, 0x80, 0x00, // #### ## #### ############# 0x1E, 0x03, 0x80, 0xC0, 0x0F, 0xFE, 0x00, 0x00, // #### ### ## ########### 0x07, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, // ################################ 0x00, 0xF8, 0x3E, 0x1F, 0xC0, 0x00, 0x00, 0x00, // ##### ##### ####### }; const unsigned char PROGMEM cat9 [] =//w58 h48 { 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ## 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x00, // #### ##### 0x00, 0x3D, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x00, // #### # ######## 0x00, 0x79, 0x80, 0x38, 0xF0, 0x00, 0x00, 0x00, // #### ## ### #### 0x00, 0xC0, 0xC0, 0xF0, 0x38, 0x00, 0x00, 0x00, // ## ## #### ### 0x03, 0x80, 0x40, 0xE0, 0x1C, 0x00, 0x00, 0x00, // ### # ### ### 0x07, 0x00, 0x61, 0xC0, 0x0C, 0x00, 0x00, 0x00, // ### ## ### ## 0x0E, 0x00, 0x33, 0x80, 0x06, 0x00, 0x00, 0x00, // ### ## ### ## 0x0C, 0x00, 0x3F, 0x00, 0x06, 0x00, 0x00, 0x00, // ## ###### ## 0x18, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, // ## ## ## 0x18, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, // ## ### 0x30, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // ## ## 0x30, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ## ### 0x60, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ## ### 0x60, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ## ### 0x4F, 0x00, 0x00, 0x03, 0xC0, 0xC0, 0x00, 0x00, // # #### #### ## 0xDF, 0x80, 0x30, 0x07, 0xE0, 0xC0, 0x00, 0x00, // ## ###### ## ###### ## 0xF9, 0xC0, 0x78, 0x0E, 0x70, 0xC0, 0x00, 0x00, // ##### ### #### ### ### ## 0xF0, 0xC0, 0x30, 0x0C, 0x30, 0xC0, 0x00, 0x00, // #### ## ## ## ## ## 0xF0, 0xC0, 0x00, 0x0C, 0x30, 0xC0, 0xF8, 0x00, // #### ## ## ## ## ##### 0xF9, 0xC6, 0x01, 0x8E, 0x70, 0xC0, 0xFC, 0x00, // ##### ### ## ## ### ### ## ###### 0xDF, 0x8C, 0x30, 0xC7, 0xE0, 0xC1, 0x87, 0x00, // ## ###### ## ## ## ###### ## ## ### 0xCF, 0x0C, 0x78, 0xC3, 0xC0, 0xC3, 0x03, 0x80, // ## #### ## #### ## #### ## ## ### 0xC0, 0x07, 0xCF, 0x80, 0x00, 0xC3, 0x01, 0x80, // ## ##### ##### ## ## ## 0xC0, 0x01, 0xCE, 0x00, 0x00, 0xC1, 0x01, 0x80, // ## ### ### ## # ## 0xE0, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x80, 0x80, // ### ## ## # 0x60, 0x00, 0x00, 0x00, 0x01, 0xC1, 0x80, 0x80, // ## ### ## # 0x70, 0x00, 0x00, 0x00, 0x03, 0xC0, 0xC0, 0x80, // ### #### ## # 0x38, 0x00, 0x00, 0x00, 0x0F, 0x80, 0xC0, 0xC0, // ### ##### ## ## 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0xC0, 0xC0, // #### ###### ## ## 0x07, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x60, 0xC0, // ###### ######## ## ## 0x03, 0xFF, 0xFF, 0xFF, 0xEF, 0x00, 0x60, 0xC0, // ############################# #### ## ## 0x01, 0xFF, 0xFF, 0xFF, 0xC3, 0x80, 0xC0, 0xC0, // ########################### ### ## ## 0x00, 0x80, 0x00, 0x00, 0x01, 0xC0, 0xC0, 0x80, // # ### ## # 0x00, 0x80, 0x00, 0x00, 0x00, 0xE1, 0xC0, 0x80, // # ### ### # 0x00, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0x81, 0x80, // ## ######## ## 0x00, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0x01, 0x80, // ## ####### ## 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x3C, 0x03, 0x00, // ## #### #### ## 0x00, 0xC0, 0x70, 0x01, 0xF8, 0x30, 0x06, 0x00, // ## ### ###### ## ## 0x00, 0xC0, 0xF8, 0x03, 0x88, 0x30, 0x0C, 0x00, // ## ##### ### # ## ## 0x00, 0xC0, 0xFC, 0x03, 0x00, 0x30, 0x1C, 0x00, // ## ###### ## ## ### 0x01, 0xC0, 0x30, 0x03, 0x00, 0x30, 0x38, 0x00, // ### ## ## ## ### 0x01, 0xC0, 0x30, 0x03, 0x80, 0x30, 0xE0, 0x00, // ### ## ### ## ### 0x01, 0x80, 0x30, 0x0F, 0xC0, 0x3F, 0xC0, 0x00, // ## ## ###### ######## 0x01, 0xC0, 0x30, 0x1F, 0xC0, 0x7F, 0x80, 0x00, // ### ## ####### ######## 0x00, 0xC0, 0x30, 0x1E, 0x00, 0xE0, 0x00, 0x00, // ## ## #### ### 0x00, 0xE0, 0x30, 0x0C, 0x01, 0xC0, 0x00, 0x00, // ### ## ## ### 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, // ################################ 0x00, 0x3F, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, // ############################# }; const unsigned char PROGMEM cat10 [] =//w60 h44 { 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // # 0x00, 0x1F, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, // ##### #### 0x00, 0x3F, 0x80, 0x0F, 0xC0, 0x00, 0x00, 0x00, // ####### ###### 0x00, 0x79, 0xC0, 0x3C, 0xE0, 0x00, 0x00, 0x00, // #### ### #### ### 0x00, 0xE0, 0xC0, 0x78, 0x78, 0x00, 0x00, 0x00, // ### ## #### #### 0x01, 0xC0, 0xE0, 0xF0, 0x3C, 0x00, 0x00, 0x00, // ### ### #### #### 0x03, 0x80, 0x71, 0xE0, 0x1C, 0x00, 0x00, 0x00, // ### ### #### ### 0x07, 0x00, 0x7B, 0xC0, 0x0E, 0x00, 0x00, 0x00, // ### #### #### ### 0x06, 0x00, 0x7F, 0x80, 0x07, 0x00, 0x00, 0x00, // ## ######## ### 0x0C, 0x00, 0x3F, 0x00, 0x03, 0x00, 0x00, 0x00, // ## ###### ## 0x18, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, // ## ## ## 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ## ## 0x30, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // ## ## 0x30, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // ## ## 0x60, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ## ### 0x60, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, // ## ### 0x6F, 0x00, 0x00, 0x03, 0xC0, 0xC0, 0x00, 0x00, // ## #### #### ## 0x5F, 0x80, 0x00, 0x07, 0xE0, 0xC0, 0x00, 0x00, // # ###### ###### ## 0xF9, 0xC0, 0x78, 0x0E, 0x70, 0xC0, 0x00, 0x00, // ##### ### #### ### ### ## 0xF0, 0xC0, 0x30, 0x0C, 0x30, 0xC0, 0x00, 0x00, // #### ## ## ## ## ## 0xF0, 0xC6, 0x03, 0x0C, 0x30, 0xC0, 0x1E, 0x00, // #### ## ## ## ## ## ## #### 0xF9, 0xCE, 0x01, 0xCE, 0x70, 0xC0, 0x3E, 0x00, // ##### ### ### ### ### ### ## ##### 0xDF, 0x8C, 0x30, 0xC7, 0xE0, 0xC0, 0x63, 0x80, // ## ###### ## ## ## ###### ## ## ### 0xCF, 0x0C, 0x78, 0xC3, 0xC0, 0xC0, 0x60, 0xC0, // ## #### ## #### ## #### ## ## ## 0xC0, 0x0F, 0xCF, 0x80, 0x00, 0xC0, 0x40, 0x40, // ## ###### ##### ## # # 0xE0, 0x07, 0x86, 0x00, 0x01, 0xC0, 0x40, 0x60, // ### #### ## ### # ## 0xE0, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x40, 0x60, // ### ### # ## 0xE0, 0x00, 0x00, 0x00, 0x01, 0x80, 0x60, 0x30, // ### ## ## ## 0x70, 0x00, 0x00, 0x00, 0x03, 0x80, 0x70, 0x30, // ### ### ### ## 0x7C, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x30, 0x30, // ##### #### ## ## 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x18, 0x30, // ###### ###### ## ## 0x0F, 0xF0, 0x00, 0x03, 0xFF, 0x80, 0x18, 0x30, // ######## ########### ## ## 0x07, 0xFF, 0xFF, 0xFF, 0xE3, 0xC0, 0x30, 0x30, // ############################## #### ## ## 0x00, 0xFF, 0xFF, 0xFF, 0xC0, 0xE0, 0x70, 0x30, // ########################## ### ### ## 0x00, 0x40, 0x00, 0x00, 0x00, 0x71, 0xC0, 0x30, // # ### ### ## 0x00, 0xC0, 0x00, 0x00, 0x00, 0x3B, 0xC0, 0x60, // ## ### #### ## 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0xC0, // ## #### ###### ## 0x00, 0xC0, 0x70, 0x01, 0xF8, 0x30, 0x00, 0xC0, // ## ### ###### ## ## 0x00, 0xC0, 0xF8, 0x03, 0x88, 0x30, 0x03, 0x80, // ## ##### ### # ## ### 0x00, 0xC0, 0xF8, 0x03, 0x00, 0x30, 0x07, 0x00, // ## ##### ## ## ### 0x00, 0xC0, 0x70, 0x03, 0x00, 0x30, 0x0F, 0x00, // ## ### ## ## #### 0x00, 0xC0, 0x30, 0x07, 0x00, 0x30, 0x78, 0x00, // ## ## ### ## #### 0x00, 0xC0, 0x30, 0x0F, 0xC0, 0x3F, 0xF0, 0x00, // ## ## ###### ########## 0x00, 0xC0, 0x30, 0x1F, 0xC0, 0x7F, 0x00, 0x00, // ## ## ####### ####### 0x00, 0xC0, 0x30, 0x1E, 0x00, 0xE0, 0x00, 0x00, // ## ## #### ### 0x00, 0x40, 0x38, 0x0C, 0x01, 0xC0, 0x00, 0x00, // # ### ## ### 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, // ############################### }; /*meow draw commands int16_t meowx=10; int16_t meowy=150; tft.drawBitmap(meowx,meowy,m,42, 33, WHITE); tft.drawBitmap(meowx+47,meowy,e,29, 33, WHITE); tft.drawBitmap(meowx+81,meowy,o,37, 33, WHITE); tft.drawBitmap(meowx+123,meowy,w,47, 33, WHITE); int16_t catx=50; int16_t caty=200; tft.drawBitmap(catx,caty,cat1,58, 48, WHITE); tft.drawBitmap(catx,caty,cat2,61, 47, WHITE); tft.drawBitmap(catx,caty,cat3,65, 42, WHITE); tft.drawBitmap(catx,caty,cat4,64, 51, WHITE); tft.drawBitmap(catx,caty,cat5,66, 59, WHITE); tft.drawBitmap(catx,caty,cat6,61, 61, WHITE); tft.drawBitmap(catx,caty,cat7,61, 51, WHITE); tft.drawBitmap(catx,caty,cat8,60, 50, WHITE); tft.drawBitmap(catx,caty,cat9,58, 48, WHITE); tft.drawBitmap(catx,caty,cat10,60, 44, WHITE); */ #define powerpin PB0 #define tonpin PB12 #define liegtrum PB15 #define lcdback PB11 #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define DARKGREEN 0x03E0 #define CYAN 0x07FF #define PURPLE 0x780F #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF //ws2812 #include #define LED_PIN PB8 #define BRIGHTNESS 255 #define LED_TYPE WS2812 #define COLOR_ORDER GRB #define screeny 16 CRGB leds[screeny]; CRGBPalette16 currentPalette; TBlendType currentBlending; #define UPDATES_PER_SECOND 5000 extern CRGBPalette16 myRedWhiteBluePalette; // ili9341 2.8" tft #include "SPI.h" #include "Adafruit_GFX_AS.h" #include "Adafruit_ILI9341_STM.h" #define TFT_CS PB14 #define TFT_DC PB13 #define TFT_RST PA8 #define swap(a, b) { int16_t t = a; a = b; b = t; } Adafruit_ILI9341_STM tft = Adafruit_ILI9341_STM(TFT_CS, TFT_DC, TFT_RST); //temperaturfühler #define tres1 PA3 #define tres2 PA4 #define tres3 PB1 // battereiettemp //opptokoplermesser #define opto1 PA0 //bnatteriespannung 3.046V 1810 4.14V 3820 #define opto2 PA1 #define opto3 PA2 #define opto4 PA10 //highlow batterieladent //tft taster #define t1 PA11 #define t2 PA12 //? #define t3 PA15 #define t4 PC14 #define t5 PC15 //high power LED/farben NPN trans. #define UV PB6 #define rot PC13 #define grun PA9 #define blau PB10 //vapebutton #define tast PB7 long color =0;long colorc =0;int g = 0;int b=0;int r=0;int f1 = 0; //128step rainbowspectrom *upbradet.. missed PURPLE uint32_t rainbow[129] = {0xff0000,0xff0d00,0xff1a00,0xff2700,0xff3300,0xff4000,0xff4d00,0xff5a00,0xff6400,0xff6d00,0xff7700,0xff8100,0xff8a00,0xff9400,0xff9900,0xff9e00,0xffa300,0xffa700,0xffac00,0xffb100,0xffb600,0xffbb00,0xffbf00,0xffc400,0xffc900,0xffce00,0xffd200,0xffd700,0xfcde00,0xfae400,0xf7eb00,0xf4f200,0xf2f800,0xefff00,0xeaff00,0xe6ff00,0xe1ff00,0xddff00,0xd8ff00,0xd4ff00,0xcfff00,0xc7ff00,0xbfff00,0xb7ff00,0xafff00,0xa7ff00,0x9fff00,0x97ff00,0x8eff00,0x84ff00,0x7bff00,0x72ff00,0x68ff00,0x5fff00,0x51ff06,0x44ff0b,0x36ff11,0x29ff17,0x1bff1d,0x0eff22,0x00ff28,0x00ff3a,0x00ff4b,0x00ff5d,0x00ff6e,0x00ff80,0x00ff91,0x00ffa3,0x00ffab,0x00ffb3,0x00ffbb,0x00ffc3,0x00ffcb,0x00ffd3,0x00ffdb,0x00ffe0,0x00ffe6,0x00ffeb,0x00fff0,0x00fff6,0x00fffb,0x00f6fc,0x00edfc,0x00e4fd,0x00dbfd,0x00d2fe,0x00c9fe,0x00c0ff,0x00b6ff,0x00adff,0x00a3ff,0x009aff,0x0090ff,0x0087ff,0x007dff,0x0968ff,0x1253ff,0x1c3fff,0x252aff,0x2e15ff,0x3700ff,0x3c00ff,0x4000ff,0x4500ff,0x4a00ff,0x4f00ff,0x5300ff,0x5800ff,0x6200ff,0x6b00ff,0x7500ff,0x7f00ff,0x8900ff,0x9200ff,0x9c00ff,0x9f00ff,0xa300ff,0xa600ff,0xa900ff,0xad00ff,0xb000ff,0xa800f4,0xa000e8,0x9800dd,0x9100d1,0x8900c6,0x8100ba,0x7900af}; uint32_t grays[5] = {0x000000,0x808080,0xffffff}; long tim = millis(); long mosz = millis(); int speedb=0; int speedc=0; int maintime =millis(); int8_t digbright5; void setup () { delay(500); pinMode(UV, OUTPUT); pinMode(rot, OUTPUT); pinMode(grun, OUTPUT); pinMode(blau, OUTPUT); pinMode(powerpin, OUTPUT); pinMode(tonpin, OUTPUT); pinMode(liegtrum, OUTPUT); pinMode(lcdback, OUTPUT); pinMode(opto4, INPUT); pinMode(tast, INPUT); pinMode(t1, INPUT); pinMode(t2, INPUT); pinMode(t3, INPUT); pinMode(t4, INPUT); pinMode(t5, INPUT); FastLED.addLeds(leds, screeny).setCorrection( TypicalLEDStrip ); FastLED.setBrightness( BRIGHTNESS ); currentPalette = RainbowColors_p; currentBlending = BLEND; tft.begin(); tft.fillScreen(ILI9341_BLACK); tft.setRotation(2); drawdoszistuf(); tftr(); } int temp1,temp2,temp3,zeit1; int8_t ckcatz;boolean catway=false; int8_t load=120; int8_t standbytrig=3; int16_t brightz =20; int8_t changevalue=127; int16_t posdraw=0; int8_t LCDLEDbright=20; //(0-20) 60=max; int16_t errortemp=145; //signaltemp; int16_t alarmtime=425; //7uhr morgens **min nach 0uhr long uhrzeit= 72000; //zeit 72000 = 20uhr int16_t runday=0; int colorw =0; int ccount1=0; int ccount2=0; int ccount1a=0; int ccount2a=0; int16_t colorplus=4; //steigerung für nächsten text int8_t changepos=0; int32_t puffs=0; boolean alarm=false; boolean screensaver=true; boolean catwayx=true;int colcatz=0; void loop () { if (digitalRead(t2) == HIGH) {digitalWrite(rot,HIGH);} if (digitalRead(t3) == HIGH) {digitalWrite(grun,HIGH);} if(digitalRead(t1) == HIGH && digitalRead(t5) == HIGH ){screensaver=true;} if(digitalRead(tast) == HIGH){ tft.fillScreen(ILI9341_BLACK);drawdoszistuf();screensaver=false;} if(screensaver==true) {tft.setRotation(3); savemeow();} if(screensaver==false) { tft.setRotation(2); istinput(); wuselbild(); changedraw(changepos); cutykatzie(); mospower();} readmessi(); zeitreise(); wecker(); } int bigi=0;int bigi2=0;int bigi2m=0; void cutykatzie(){ ckcatz++; colcatz-=5;if (colcatz <= 1) {colcatz=64;} cutekatz(80,80,colcatz); } void cutekatz(int cutex, int cutey,int catcoli){ catway=true; if (ckcatz>=10) {ckcatz=0;} bigi=(10-ckcatz)*4+100; if (ckcatz==0) {blackbb();bigi2=4; wuselbitmap(cutex,cutey,cat1,58, 49,catcoli,"vertikal",bigi,catwayx,true); } if (ckcatz==1) {blackbb();bigi2=3; wuselbitmap(cutex,cutey+2,cat2,61, 47,catcoli,"vertikal",bigi,catwayx,true);} if (ckcatz==2) {blackbb();bigi2=2; wuselbitmap(cutex,cutey+4,cat3,65, 43,catcoli,"vertikal",bigi,catwayx,true);} if (ckcatz==3) {blackbb();bigi2=1; wuselbitmap(cutex+4,cutey+2,cat4,64, 53,catcoli,"vertikal",bigi,catwayx,true);} if (ckcatz==4) {blackbb();bigi2=0; wuselbitmap(cutex+8,cutey,cat5,66, 59,catcoli,"vertikal",bigi,catwayx,true);} if (ckcatz==5) {blackbb();bigi2=0; wuselbitmap(cutex+10,cutey,cat6,61, 63,catcoli,"vertikal",bigi,catwayx,true);} if (ckcatz==6) {blackbb();bigi2=1; wuselbitmap(cutex+8,cutey+4,cat7,61, 53,catcoli,"vertikal",bigi,catwayx,true);} if (ckcatz==7) {blackbb();bigi2=2; wuselbitmap(cutex+6,cutey,cat8,60, 52,catcoli,"vertikal",bigi,catwayx,true);} if (ckcatz==8) {blackbb();bigi2=3; wuselbitmap(cutex+4,cutey,cat9,58, 49,catcoli,"vertikal",bigi,catwayx,true);} if (ckcatz==9) {blackbb();bigi2=4; wuselbitmap(cutex+2,cutey+2,cat10,60, 47,catcoli,"vertikal",bigi,catwayx,true);} } void blackbb(){ tft.fillRect(4+(4-bigi2),12+(bigi2),85+(5-bigi2),74+(bigi2+2),BLACK); } int8_t onpress[17]; void tftr() { tft.fillRect(0,0,240,150,BLACK); drawdoszistuf(); } int16_t bathis[231]; int16_t temp1his[231]; int16_t temp2his[231]; int16_t temp3his[231]; int16_t graphposx=6; int16_t graphposy=155; int16_t graphwidth=230; int16_t graphheight=150; void graphdraw() { // graph raster tft.fillRect(0,90,240,230,BLACK); for (int16_t lsie = 0; lsie < (graphheight+10); lsie++){ if ((lsie%2)==0) { tft.drawPixel(graphposx-1,lsie+graphposy,BLUE);} if ((lsie%8)==0) { tft.drawPixel(graphposx-2,lsie+graphposy,BLUE);} if ((lsie%16)==0) { tft.drawFastHLine(graphposx,lsie+graphposy,graphwidth,BLUE);} } for (int16_t sie = graphwidth; sie > 0; sie--){ if ((sie%2)==0) { tft.drawPixel(graphposx-1+sie,graphposy+graphheight+8,BLUE);} if ((sie%8)==0) { tft.drawPixel(graphposx-1+sie,graphposy+graphheight+9,BLUE);} if ((sie%16)==0) { tft.drawFastVLine(graphposx-2+sie,graphposy,graphheight+7,BLUE);} } for (int16_t lsi = 0; lsi < graphwidth; lsi++){ tft.drawPixel(lsi+graphposx,graphposy+graphheight+10-bathis[lsi],WHITE); tft.drawPixel(lsi+graphposx,graphposy+graphheight+10-temp1his[lsi],GREEN); tft.drawPixel(lsi+graphposx,graphposy+graphheight+10-temp2his[lsi],CYAN); tft.drawPixel(lsi+graphposx,graphposy+graphheight+10-temp3his[lsi],PURPLE); } wuselline(posdraw+graphposx,graphposy,posdraw+graphposx,graphposy+160,1,1,true); tft.drawRect(graphposx-5,graphposy-1,graphwidth+6,graphheight+14,CYAN); //temperature texte tft.setTextColor(YELLOW); tft.setTextSize(1); tft.setCursor(0,90); tft.print("Temps: \n"); tft.setTextColor(GREEN); tft.print("Mosfet\n "); if (temp1his[posdraw-1] <=9) {tft.print("0");} if (temp1his[posdraw-1] <=99) {tft.print("0");} tft.print(temp1his[posdraw-1]); tft.print("\n"); tft.setTextColor(CYAN); tft.print("FeCore\n "); if (temp2his[posdraw-1] <=9) {tft.print("0");} if (temp2his[posdraw-1] <=99) {tft.print("0");} tft.print(temp2his[posdraw-1]); tft.print("\n"); tft.setTextColor(PURPLE); tft.print("Li-po \n "); if (temp3his[posdraw-1] <=9) {tft.print("0");} if (temp3his[posdraw-1] <=99) {tft.print("0");} tft.print(temp3his[posdraw-1]); //akkupowerregenbogengraph tft.setTextColor(WHITE); tft.setCursor(40,132); tft.print("CELL-POWER:"); if ((analogRead(opto1)-2300) <=9) {tft.print("0");} if ((analogRead(opto1)-2300) <=99) {tft.print("0");} tft.print(analogRead(opto1)); tft.print(" "); for (int16_t bat = 0; bat < 200; bat++){ if (bat < ((analogRead(opto1)-2900)/1)) {colory(rainbow[round(bat*0.64)]); tft.drawFastVLine(40+bat,140,9,tft.color565(r,g,b));} } tft.drawRect(39,140,200,10,WHITE); //sonstiges tft.setTextColor(MAGENTA); if (puffs <=9) {tft.print("0");} if (puffs <=99) {tft.print("0");} if (puffs <=999) {tft.print("0");} tft.print(puffs); tft.print("puffs "); tft.setTextColor(GREEN); if (runday <=9) {tft.print("0");} if (runday <=99) {tft.print("0");} tft.print(runday); tft.print("days"); } void istinput() { if (zeit1 >=1) { if (digitalRead(t1) == HIGH && onpress[8] ==0) { onpress[8] =1; changethis(changepos,false); tftr(); } if (onpress[8] == 1) { onpress[9]++; }//spiel(melodie2); if (onpress[9] >= 5) { onpress[9] =0; onpress[8]=0; } if (digitalRead(t5) == HIGH && onpress[10] ==0) { onpress[10] =1; changethis(changepos,true); tftr();} if (onpress[10] == 1) { onpress[11]++;} if (onpress[11] >= 5) { onpress[11] =0; onpress[10]=0; } if (digitalRead(t4) == HIGH && onpress[12] ==0) { onpress[12] =1; changepos-=1; if (changepos <= -1) {changepos=10;}tftr(); }//play(meow3,random(10,120),4460); } //zeitc -signal if (onpress[12] == 1) { onpress[13]++;} if (onpress[13] >= 3) { onpress[13] =0; onpress[12]=0; } if (digitalRead(t3) == HIGH && onpress[14] ==0) { onpress[14] =1; changepos+=1; if (changepos >= 9) {changepos=0;}tftr(); } if (onpress[14] == 1) { onpress[15]++;} if (onpress[15] >= 3) { onpress[15] =0; onpress[14]=0; } if (digitalRead(t2) == HIGH && onpress[6] ==0) { onpress[6] =1; alarm=false;} if (onpress[6] == 1) { onpress[7]++;} if (onpress[7] >= 3) { onpress[7] =0; onpress[6]=0; } zeit1=0; }} int batvol=200; void changedraw(int8_t wass) { if (wass ==0) {wuselrect(121,14,118,40,1,2,true);} if (wass ==1) {wuselrect(121,57,118,11,1,1,true);} if (wass ==2) {wuselrect(121,67,118,11,1,1,true);} if (wass ==3) {wuselrect(190,77,19,11,1,1,true);} if (wass ==4) {wuselrect(208,77,19,11,1,1,true);} if (wass ==5) {wuselrect(37,89,61,41,1,1,true);} if (wass ==6) {wuselrect(107,89,61,41,1,1,true);} if (wass ==7) {wuselrect(177,89,61,41,1,1,true);} if (wass ==8) {wuselrect(177,89,61,41,1,1,true);} } void changethis(int8_t was,boolean updown){ if (was ==0) { //load **länge der impulsdauer if (updown ==true && load <=117) {load+=3;} if (updown ==false && load >=2) {load-=2;}} if (was ==1) { //ledback **wieviele 10tel sekunden die 2x470yF kondensatoren an 5V (mit 18Ohm wiederstand zu LCD backlight) in 6sekunden geladen werden if (updown ==true && LCDLEDbright <=57) {LCDLEDbright+=3;}//+ auf welche helligkeit WS2812/B zurückgefahren werden (60=240brigth) if (updown ==false && LCDLEDbright >=2) {LCDLEDbright-=2;}} if (was ==2) { //wenn eine der 3 temperaturfühler (für lipofühlerist der wert 50geringer) wert überschreitet dampfen verhintert und signale(audio? ledblitz) if (updown ==true && errortemp <=187) {errortemp+=3;} if (updown ==false && errortemp >=2) {errortemp-=2;}} if (was ==3) { //alarmzeit ändern stunden if (updown ==true && alarmtime <=1380) {alarmtime+=60;} if (updown ==false && alarmtime >=60) {alarmtime-=60;}} if (was ==4) { //alarmzeit änder minuten if (updown ==true && alarmtime <=1438) {alarmtime+=3;} if (updown ==false && alarmtime >=2) {alarmtime-=2;}} if (was ==5) { //uhrzeit änder stunden if (updown ==true && uhrzeit <=82800) {uhrzeit+=3600;} if (updown ==false && uhrzeit >=3600) {uhrzeit-=3600;}} if (was ==6) { //uhrzeit änder minuten if (updown ==true && uhrzeit <=86220) {uhrzeit+=180;} if (updown ==false && uhrzeit >=120) {uhrzeit-=120;}} if (was ==7) { //uhrzeit änder sekunden if (updown ==true && uhrzeit <=86397) {uhrzeit+=3;} if (updown ==false && uhrzeit >=2) {uhrzeit-=2;}} if (was ==8){ //standbyblitzen häufigkeit if (updown ==true && standbytrig <=15) {standbytrig++;} if (updown ==false && standbytrig >=1) {standbytrig--;}} } void readmessi(void){ if (temp1 < (analogRead(tres1)-2000)/10) {temp1 +=1;} if (temp1 > (analogRead(tres1)-2000)/10) {temp1-=1;} if (temp2 < (analogRead(tres2)-2000)/10) {temp2+=1;} if (temp2 > (analogRead(tres2)-2000)/10) {temp2-=1;} if (temp3 < (analogRead(tres3)-2000)/10) {temp3+=1;} if (temp3 > (analogRead(tres3)-2000)/10) {temp3-=1;} if (batvol < ((analogRead(opto1)-2950)/1.25)) {batvol+=1;} if (batvol > ((analogRead(opto1)-2950)/1.25 )) {batvol-=1;} temp1his[posdraw] = (analogRead(tres1)-2000)/10; temp2his[posdraw] = (analogRead(tres2)-2000)/10; temp3his[posdraw] = (analogRead(tres3)-2000)/10; bathis[posdraw] = batvol; } void drawdoszistuf(void){ //load colory(0x0000ff); tft.drawFastVLine(120,41,14, tft.color565(r,g,b)); tft.drawFastHLine(120,55,120, tft.color565(r,g,b)); colory(0x00ffff); for( int id = 0; id < load; id++) { tft.drawFastVLine(id+120,36,15, tft.color565(r,g,b));} tft.drawFastHLine(load+120,51,240-load, tft.color565(r,g,b)); } int8_t einz=0; int8_t chaosz =0; void wecker(void) { if (alarmtime >= (round(uhrzeit/60))&& alarmtime <= (round(uhrzeit/60)+1)&& einz==0 && alarm==false) {alarm =true; einz=1;} if (alarmtime == (round(uhrzeit/60+15))&& einz==1) {alarm =false; einz=0;} if (alarm ==true) { chaosz =round(random(0,8)); if (chaosz == 1) { digitalWrite(rot,HIGH); } if (chaosz == 2) { digitalWrite(blau,HIGH); } if (chaosz == 3) { digitalWrite(grun,HIGH); } if (chaosz == 4) { digitalWrite(UV,HIGH); } if (chaosz == 5) { digitalWrite(rot,LOW); } if (chaosz == 6) { digitalWrite(blau,LOW); } if (chaosz == 7) { digitalWrite(grun,LOW); } if (chaosz == 8) { digitalWrite(UV,LOW); } brightz=round(random(150,254)); } } int zeitzis[6]; int8_t ladevollblink =0; int8_t LCDLEDbrightc=0; long maintime2=millis(); long maintime3=millis(); long maintime4=millis(); void zeitreise(void){ while ((millis()- maintime) >= 3) { zeit1++; speedb++; speedc++; maintime = millis(); if (speedb >300) {speedb=0; } } while ((millis()- maintime2) >= 900) {//not 1000caused cl0ock lag caused stops durring diswplayrefresh if (alarm == true) {}//play(meow3, random(80,120),4460);} standbyblitz(); uhrzeit+=1; if (uhrzeit > 86400) {uhrzeit=0; runday++;} posdraw++; if (posdraw>(graphwidth-1)) {posdraw=0;} if (ccount2a ==1) {ccount2-=2;} if (ccount2a ==0) {ccount2+=2;} if (ccount2>120){ccount2a=1;} if (ccount2<=2){ccount2a=0;} if (screensaver ==false) {graphdraw();} maintime2 = millis(); } while ((millis()- maintime3) >= 100) { //messignal der 4x 1A Li-po lademodule wenn geladen if (digitalRead(opto4) == HIGH) {ladevollblink++;} if (digitalRead(opto4) == LOW) { ladevollblink=0;} if (ladevollblink> 20) { ladevollblink=0;} if (ladevollblink==0 ) { digitalWrite(blau,LOW); digitalWrite(rot,LOW);digitalWrite(grun,LOW);digitalWrite(UV,LOW);} if (ladevollblink==1) { digitalWrite(blau,HIGH);} if (ladevollblink==2) { digitalWrite(rot,HIGH);} if (ladevollblink==3) { digitalWrite(rot,LOW);} if (ladevollblink==4) { digitalWrite(blau,LOW);} if (LCDLEDbrightc == 0) { digitalWrite(lcdback, HIGH); } if (LCDLEDbrightc == 1) { digitalWrite(lcdback, LOW); } LCDLEDbrightc++; if (LCDLEDbrightc > (61-LCDLEDbright)) {LCDLEDbrightc=0;} maintime3 = millis(); } while ((millis()- maintime4) >= 20) { WS2812rainbow(); colorw +=8; FastLED.show(); maintime4 = millis(); } } void standbyblitz(void) { if (digitalRead(opto4) == LOW && standbytrig >=1 && alarm == false) { if ((uhrzeit%(standbytrig+1))==0) {digitalWrite(blau,HIGH);} if ((uhrzeit%(standbytrig+2))==0) {digitalWrite(rot,HIGH);} if ((uhrzeit%(standbytrig+3))==0) {digitalWrite(grun,HIGH);} if ((uhrzeit%(standbytrig+4))==0) {digitalWrite(UV,HIGH);} } } int slowg=0; int dazuzeit=3; void mospower(void) { int8_t ony =0; while (digitalRead(tast) == HIGH) { alarm=false; brightz =254; if (ony==0) {puffs++; uhrzeit+=dazuzeit ; ony=1;} digitalWrite(blau,LOW); for (int16_t lss = 0; lss < 120; lss++){ if (lss == 1) {digitalWrite(powerpin,HIGH);} if (lss == load) {digitalWrite(powerpin,LOW); digitalWrite(blau,HIGH);} }}digitalWrite(powerpin,LOW); } int16_t uhrx=40; int16_t uhry=92; String info = " MEOW Its marderhcen's 700W 0-417kHz CATZ-VAPE Oszilator Prototype =^.^= MEOW! Intrigents=> 5x IRF3205 110.000mA Mosfet => STM32F102C9T6 72Mhz 128kB FLASH 20kB RAM => 6x Li-Po 2000mAh 15C 1x Li-Po 2200mAh 8C 14.200mAh Akkupower Cells ratet permanent POWERoutput ~700Watt ==> LEDs 1Watt RED, 1Watt GREEN, 1 Watt BLUE, 3Watt 420nm UV, 8x WS2812, 5x WS2812b ==> BOARsupply (USB OUT bottom: 5V 4000mA ==> Charge eating up to 6.000mA on 5V (USB port side) ==> tft ILI9341 2.8' 320x240px SPI ==> FERRIT core: 4x 1mm² 6turns ==> SAVETY stuff: 3x Themperature sniffer against overheating, 4x optokoppler vor meassure savly voltages, 5V supply powercuttswitch botton near USB PORT, Li-Po cells cased in glassfibre coated plastic case and connected with silicon FLEX wires to rest, Acryl laque agains watererrors, 18Ohm Gate discharge resistor fopr every MOSFET, FERRIT COIL also emergency shortcut HIGH preformence Resistor MEW! Ian like RAINBOWs so ITs slafhing colors for standby or errors, or battery chargestates *PURRRRRR* build with ebay Articles from china :: CODE,ELECTRIC,CIRCUITS,IDEA,MECHANICS, DEVELOPED from MARDERCHEN, if you finde something usefull in mess documentation just use it or parts =^.^= *SOL* ::, MEOW! speaker with BD237 on pin ==> =^.^= find code / pictures / stuff somewhere on http://marderchen.de "; int32_t startpos=0; int32_t letter=0; int32_t stringlang= info.length(); int8_t rainback=1; void wuselbild() { if (ccount1a ==1) {ccount1--;} if (ccount1a ==0) {ccount1++;} if (ccount1>96){ccount1a=1;} if (ccount1<=3){ccount1a=0;} tft.fillRect(0,2,239,8,BLACK); //learned this from MAX7219 library example (and motivied it a little) thanks colory(rainbow[ccount1+colorplus]); tft.setTextSize(1); tft.setCursor(0,2); for (int8_t linepos = 0; linepos < 40; linepos++) { letter=startpos+linepos; if (letter > stringlang) {letter -=stringlang;} if ((letter%128)==0) {rainback++; if (rainback>=2) {rainback =0;}} if (rainback==1) {colory(rainbow[letter%128]);} if (rainback==0) {colory(rainbow[128-(letter%128)]);} tft.setTextColor(tft.color565(r,g,b)); tft.print(info[letter]);} if (startpos++ >=stringlang){startpos=0; } tft.drawFastHLine(0,0,240,tft.color565(r,g,b)); tft.drawFastHLine(0,11,240,tft.color565(r,g,b)); //load power colory(rainbow[ccount1+colorplus*2]); tft.setTextColor(tft.color565(r,g,b)); tft.setTextSize(1); tft.setCursor(120,17); tft.print("FUEL");tft.setCursor(120,25); tft.print("powder"); tft.setTextSize(2); tft.setCursor(155,17); if (load <=9) {tft.print(" ");} if (load <=99) {tft.print(" ");} tft.print(load); tft.print("/120"); // LCD LED BCKLIGHT colory(rainbow[ccount1+ colorplus*6]); tft.setTextColor(tft.color565(r,g,b)); tft.setTextSize(1); tft.setCursor(122,59); tft.print("LED-back."); colory(0x00aa00); tft.drawFastHLine(180,65,60, tft.color565(r,g,b)); colory(0x00FF00); tft.fillRect(180,59,LCDLEDbright-1,4, tft.color565(r,g,b)); // Alarmtemp colory(rainbow[ccount1+ colorplus*7]); tft.setTextColor(tft.color565(r,g,b)); tft.setTextSize(1); tft.setCursor(122,69); tft.print("ERROR-temp: "); colory(0xff0000); tft.setTextColor(tft.color565(r,g,b)); if (errortemp <=9) { tft.print(" ");} if (errortemp <=99) { tft.print(" ");} tft.print(errortemp); // Alarmweck colory(rainbow[ccount1+ colorplus*8]); tft.setTextColor(tft.color565(r,g,b)); tft.setTextSize(1); tft.setCursor(122,79); tft.print("Weck-ZEIT : "); colory(0xff0000); tft.setTextColor(tft.color565(r,g,b)); if ((alarmtime/60) <=9) { tft.print("0");} tft.print(alarmtime/60); tft.print(":"); if ((alarmtime%60) <=9) { tft.print("0");} tft.print(alarmtime%60); tft.print(" "); tft.setTextColor(DARKGREEN); tft.print(standbytrig); // Uhrzeit colory(rainbow[ccount2]); tft.setTextColor(tft.color565(r,g,b)); tft.setTextSize(5); tft.setCursor(uhrx,uhry); if (((uhrzeit/60)/60) <=9) { tft.print("0");} tft.print(((uhrzeit/60)/60)); tft.setCursor(uhrx+50,uhry); if ((uhrzeit%2)==0){ tft.print(":");} if ((uhrzeit%2)==1){ tft.print(" ");} tft.setCursor(uhrx+70,uhry); if (((uhrzeit/60)%60) <=9) { tft.print("0");} tft.print(((uhrzeit/60)%60)); tft.setCursor(uhrx+120,uhry); if ((uhrzeit%2)==0){ tft.print(":");} if ((uhrzeit%2)==1){ tft.print(" ");} tft.setCursor(uhrx+140,uhry); if ((uhrzeit%60) <=9) { tft.print("0");} tft.print((uhrzeit%60)); // wuselrect(6,15,200,150,2,3,true); } int rainbowcolor =0; int rainbowcolor2 =0; int rant=0; //my rainbow chaotic drawingstuff void wuselfillrect(int16_t eckex, int16_t eckey,int16_t breit, int16_t hoch,uint8_t colorspeed, int8_t chaos, boolean colormove) { for( int rx = eckex; rx < (eckex+breit); rx++) { wuselline(rx,eckey,rx+breit,eckey+hoch,colorspeed,chaos,colormove); } } void wuselrect(int16_t eckex,int16_t eckey, int16_t breit, int16_t hoch,uint32_t colorspeed, int8_t chaos, boolean colormove) { rant+=random(4,6);; if (rant >=128){rant=0;} rainbowcolor2=rant; wuselline(eckex,eckey,eckex+breit,eckey,colorspeed,chaos,colormove); wuselline(eckex+breit,eckey,eckex+breit,eckey+hoch,colorspeed,chaos,colormove); wuselline(eckex+breit,eckey+hoch,eckex,eckey+hoch,colorspeed,chaos,colormove); wuselline(eckex,eckey+hoch,eckex,eckey,colorspeed,chaos,colormove); } int slower =0; //Bresenham's algorithm - thx wikpedia (and adafruit) but the marderchenmod void wuselline(int16_t x0, int16_t y0,int16_t x1, int16_t y1,uint32_t colorspeed, int8_t chaos, boolean colormove) { //if colormove =false, colorspeed = color ( 0xFF205B etc.) int16_t steep = abs(y1 - y0) > abs(x1 - x0); if (steep) { swap(x0, y0); swap(x1, y1); } if (x0 > x1) { swap(x0, x1); swap(y0, y1); } int16_t dx, dy; dx = x1 - x0; dy = abs(y1 - y0); int16_t x10=x0; int16_t err = dx / 2; int16_t err2 = dx / 2; int y10 =y0; int16_t ystep; if (y0 < y1) { ystep = 1; } else { ystep = -1; } for (; x0<=x1; x0++) { err -= dy; if (err < 0) { y0 += ystep; err += dx; } } for (; x10<=x1; x10++) { rainbowcolor2 +=colorspeed; slower++; if (rainbowcolor2 >= (128-colorspeed)) { rainbowcolor2 =1;} if (steep) { if (colormove == true) {colory(rainbow[rainbowcolor2]); tft.drawPixel(y10+random(-chaos,chaos),x10+random(-chaos,chaos), tft.color565(r,g,b)); } } else { if (colormove == true) {colory(rainbow[rainbowcolor2]); tft.drawPixel(x10+random(-chaos,chaos),y10+random(-chaos,chaos), tft.color565(r,g,b));} } err2 -= dy; if (err2 < 0) { y10 += ystep; err2 += dx; } } } int colorIndex =0; void WS2812rainbow() { if (brightz >(LCDLEDbright*4+3)){brightz -=2;} if (colorw > 500) {colorw=0;} colorIndex = colorw; for( int iy = 0; iy < screeny; iy++) { colorIndex+=20; leds[iy] = ColorFromPalette( currentPalette, colorIndex, brightz, currentBlending);}} int startx =50; int starty=14; int once =0;int c1 =0;int8_t menu = 0;int8_t zeitz=0;int colori=0; int dist =45; int infh =80; void wuselRGBrec(int16_t eckex,int16_t eckey,int16_t breit,int16_t hoch) { for( int rx = eckex; rx < (eckex+breit); rx++) { colory(rainbow[round(128-(rx-eckex)*0.58)]); tft.drawFastVLine(rx,eckey,hoch,tft.color565(r,g,b)); } } void colory(uint32_t colorz) { String hexcolor = String(colorz); int number = hexcolor.toInt(); r = number >> 16; g = number >> 8 & 0xFF; b = number & 0xFF; } int16_t meowx=170; //center int16_t meowy=135; //center int16_t caty=100; int16_t scaller[5]={150,150,150,150}; boolean slowcatz=false; int ry=320; int16_t spyx,spyy,randx,randy,rx,stube,stube2,tube,tube2,catcol,akcatz,diecatz,wer,catx,pozs,spyspeed,spyxstart,catyyspeet; int16_t spys[4][2]; void savemeow(void) { tft.fillScreen(ILI9341_BLACK); tube++; if (tube >128) {tube =80;} tube2--; if (tube2 <80) {tube2=128;} randx=random(-8,+8); randy=random(-8,+8); tft.drawLine(randx,randy,320+randx,240+randy,rainbow[tube2]); tft.drawLine(320+randx,randy,randx,240+randy,rainbow[tube2]); rx+=8; if (rx >170) {rx=0;} for(int16_t stube =(rx-170); stube <(320-rx);stube+=40){ stube2=stube*0.75; if (stube <200 && stube >=0){ tft.drawRect(stube+randx,stube2+randy,320-(stube*2),240-(stube2*2),rainbow[tube2]);} } pozs-=10; if (pozs <10) {pozs=128; } if ((pozs%64)==0) { scaller[wer]=random(150,180);wer++;} if (wer >3) {wer=0;} catcol-=10; if (catcol <10) {catcol=128; } meowx=randx/1.5+170; meowy=randy/1.8+135; for (int8_t pp =0; pp < 4; pp++) { if (scaller[pp] >130) {scaller[pp]-=1;} } wuselbitmap(meowx-(76*(scaller[0]/98)),meowy,m,43, 33,pozs,"vertikal",scaller[0],false,false); wuselbitmap(meowx-(30*(scaller[1]/95)),meowy,e,29, 33,pozs,"vertikal",scaller[1],false,false); wuselbitmap(meowx+(28*(scaller[2]/95)),meowy,o,37, 33,pozs,"vertikal",scaller[2],false,false); wuselbitmap(meowx+(86*(scaller[3]/90)),meowy,w,48, 34,pozs,"vertikal",scaller[3],false,false); diecatz++; if (diecatz>=10) {diecatz=0;} for (int8_t katzen =0; katzen <4; katzen++){ if(slowcatz== true) { //realy to slow FPS if solloring cats in raibowspectrum if (katzen ==0) {catx=70; caty=90; akcatz=diecatz; catway=false;} if (katzen ==1) {catx=70; caty=200; akcatz=diecatz+3; catway=false; if (akcatz>=10) {akcatz=diecatz+3-10;}} if (katzen ==2) {catx=295; caty=90; akcatz=diecatz+6; catway=true;if (akcatz>=10) {akcatz=diecatz+6-10;}} if (katzen ==3) {catx=295; caty=200; akcatz=diecatz+9;catway=true; if (akcatz>=10) {akcatz=diecatz+9-10;}} if (akcatz==0) {wuselbitmap(catx,caty,cat1,58, 49,catcol,"horizontal",100,catway,true); } if (akcatz==1) {wuselbitmap(catx,caty+2,cat2,61, 47,catcol,"horizontal",100,catway,true); } if (akcatz==2) {wuselbitmap(catx,caty+4,cat3,65, 43,catcol,"horizontal",100,catway,true); } if (akcatz==3) {wuselbitmap(catx+4,caty+2,cat4,64, 53,catcol,"horizontal",100,catway,true); } if (akcatz==4) {wuselbitmap(catx+8,caty,cat5,66, 59,catcol,"horizontal",100,catway,true); } if (akcatz==5) {wuselbitmap(catx+10,caty,cat6,61, 63,catcol,"horizontal",100,catway,true); } if (akcatz==6) {wuselbitmap(catx+8,caty+4,cat7,61, 53,catcol,"horizontal",100,catway,true); } if (akcatz==7) {wuselbitmap(catx+6,caty,cat8,60, 52,catcol,"horizontal",100,catway,true); } if (akcatz==8) {wuselbitmap(catx+4,caty,cat9,58, 49,catcol,"horizontal",100,catway,true); } if (akcatz==9) {wuselbitmap(catx+2,caty+2,cat10,60, 47,catcol,"horizontal",100,catway,true);} } if (slowcatz==false) { if (katzen ==0) {catx=30; caty=30; akcatz=diecatz; catway=false; spyspeed=7; spyxstart=40; catyyspeet=4;} if (katzen ==1) {catx=30; caty=150; akcatz=diecatz+3; catway=false;spyspeed=7; spyxstart=40; catyyspeet=-1;if (akcatz>=10) {akcatz=diecatz+3-10;}} if (katzen ==2) {catx=290; caty=30; akcatz=diecatz+6; catway=true; spyspeed=-4;spyxstart=-17;catyyspeet=7; if (akcatz>=10) {akcatz=diecatz+6-10;}} if (katzen ==3) {catx=290; caty=150; akcatz=diecatz+9;catway=true; spyspeed=-5;spyxstart=-17;catyyspeet=-1; if (akcatz>=10) {akcatz=diecatz+9-10;}} if (akcatz==0) {wuselnormal(catx,caty,cat1,58, 49,YELLOW,catway); } if (akcatz==1) {wuselnormal(catx,caty+2,cat2,61, 47,RED,catway); } if (akcatz==2) {wuselnormal(catx,caty+4,cat3,65, 43,PURPLE,catway); } if (akcatz==3) {wuselnormal(catx+4,caty+2,cat4,64, 53,CYAN,catway); } if (akcatz==4) {wuselnormal(catx+8,caty,cat5,66, 59,WHITE,catway); spys[katzen][0]=catx+spyxstart; spys[katzen][1]=caty+25;} if (akcatz==5) {wuselnormal(catx+10,caty,cat6,61, 63,YELLOW,catway); } if (akcatz==6) {wuselnormal(catx+8,caty+4,cat7,61, 53,WHITE,catway);} if (akcatz==7) {wuselnormal(catx+6,caty,cat8,60, 52,CYAN,catway); } if (akcatz==8) {wuselnormal(catx+4,caty,cat9,58, 49,BLUE,catway);} if (akcatz==9) {wuselnormal(catx+2,caty+2,cat10,60, 47,GREEN,catway);} } spys[katzen][1]-=catyyspeet; if (katzen <=1) {spys[katzen][0]-=spyspeed-((21-(spys[katzen][0]-catx))/14); tft.fillRect(spys[katzen][0],spys[katzen][1],(26-(spys[katzen][0]-catx))/1.4,(26-(spys[katzen][0]-catx))/1.4,WHITE);} if (katzen >=2) {spys[katzen][0]-=spyspeed; tft.fillRect(spys[katzen][0],spys[katzen][1],20+spys[katzen][0]-catx,20+spys[katzen][0]-catx,WHITE);} }} //thanks to adafruit for bitmap but want more colors uint8_t weniger=0; void wuselbitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t cpos,String way,int16_t scal,boolean reverse,boolean cat) { //scal = 1 /100) int16_t istcol=0; int16_t i, j, byteWidth = (w + 7) / 8; for(j=0; j> (i & 7))) { if (way == "vertikal") { istcol= ((128/h+1)*j)+cpos;} if (way == "horizontal") { istcol= ((128/w+1)*i)+cpos;} weniger++; if (weniger >8 && cat==true) { colory(rainbow[istcol]); weniger =0;} if (cat==false) { colory(rainbow[istcol]);} if( istcol >128) {colory(rainbow[istcol-128]);} if (reverse ==false && cat ==false) { tft.fillRect(x+((i-w/2)*scal/100)-((w*(scal/100))/2), y+((j-h/2)*scal/100)-((h*(scal/100))/2),scal/50,scal/50, tft.color565(r,g,b));} if (reverse ==true) { tft.drawPixel(x-((i-w/2)*scal/100)-((w*(scal/100))/2), y+((j-h/2)*scal/100)-((h*(scal/100))/2), tft.color565(r,g,b));} if (reverse ==false && cat ==true) { tft.drawPixel(x+((i-w/2)*scal/100)-((w*(scal/100))/2), y+((j-h/2)*scal/100)-((h*(scal/100))/2), tft.color565(r,g,b));} } } } } void wuselnormal(int16_t x, int16_t y,const uint8_t *bitmap, int16_t w, int16_t h,uint16_t color,boolean reverse) { int16_t i, j, byteWidth = (w + 7) / 8; for(j=0; j> (i & 7))) { if (reverse ==true) { tft.drawPixel(x-i, y+j, color);} if (reverse ==false) { tft.drawPixel(x+i, y+j, color);} } } } } /* MEOW build power li-po caused 3dal walkingtravel next week and wouldn permanently charge vape ..working fine now upgrading code * by marderchen =^.^= currently working awesome * uh changed little just rainbowcat more important than lots ov dutymodifiengthingys :3 *ITs free! ( copy parts or use it in any kind if its usefull for you ) * ___ * _.-| | / |\__/,| (`\ { | | -- |^ ^ |__ _) ) "-.|___| \ _.( Y ) ` / .--'-`-. _((_ `^--' /__< \ ....-+|______|__.-||__)`-' (((/ (((/ CATS are awesome! */