//board STM32F103C9T6 (64Kb**(64Kb you should beliefe but STM building in 128KB and sellers dont tell)** 72Mhz) || tft: ILI9341 (240x320pixel 2,8" COLOR LCD SPI) || testprogramm uses Adafruit library have fun =^.^= marderchen //pins TFT ::VCC on 3.3V ::LED on 3.3V ::GND on GND :: CS on PB11 :: Reset on PA10 :: DC/RS on PA6 not connectet :: SCK on A5 :: MISO on A6 :: MOSI on A7 //pins touch T_clk = PB13 | T_cs = PA8 | T_din = MOSI = PB15 | T_D0 = PB13 | T_IRQ = PB12 ok touch not used no i/os left //[MEOW] this is a cute colorlcd controlling system for my buildet colum fan.. seens to be the powerfullst everbuildet.. //used:: 1x supply HSTNS-PR02 power 700Watt output 12V56Ampere DC (3v3 not used) for driving 26x 12V 1-1.4A dualrotor turbines connectet to 8channels, 6turbines/2channel splittet in 1channel all front rotors 2chn all reate.. and the high current IRF1404 carfanoutput.. maybe also lights later.. //used:: 1x supply 30Watt multivoltage output 3v3 (notused) 5V aprox 3-4A (says 5Vstabilizing IC on heatsink) 12V notused 5V to interface ws2812b, and to 3V3 AMS1117 regulator ic to drife stm measure inputz and led backlight(did you know? 3V3 can connectet to LED backlight direcktly but beater use adittional 3V3source caused STM32F103C8T6 5V->3V3sourceripping if using more than 200mA) //used:: 2x AC aluminium fan 230V aprox30Watt (supplyes booth and 2 ACvans switched over seperate switchplate in front.. with 230V16A LS fuse on rear.. serversupply have 2turbines seperasted regulatet and seperat switch for PSon //used:: lot of NYM 1.5mm˛ cooper wire caused have to handle 56A highdrain.. carfan connected over 2x 2.5mm˛ superfinelitz Flexible wire //uasd:: 5x 10k temperature sensor with 10k fine poti for each to compensate diffrent wirelength //notused have not found working Fi in martenhole caused its window fan maybe souhld have one if raining XD /* pics * https://marderchen.lima-city.de/NEU+/hellstorm_multiturbine_columfan_planing.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_turbinesglued.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_case_supply750Watt_turbinepowderaprox_375Watt_purrrr.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_multiturbine_columfan_casefortoday_wellworked_standingitself.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_columnfan_wiering.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_turbinesmainwieder.jpg * https://marderchen.lima-city.de/NEU+/hellstorn_controllunibbuild.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_pulsinunit_causee12V56A_DC.jpg * https://marderchen.lima-city.de/NEU+/Ili9341_-touch_4GPIO_connect_rst-to-GND.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_interface_progress.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_interface_progress_rear.jpg * https://marderchen.lima-city.de/NEU+/many-taster_on1analog_GPIO_solution.jpg //oh saving lots of GPIOS and can be extendet to muchmore.. caused STM32F103C8T6 analog measure is 0-3v3 in 4096 steps! realy exact * https://marderchen.lima-city.de/NEU+/hellstorm_interfacetaster_soldered.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_tempsensors.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_LS-fuse_causedpowerconsumtionnear_1kW.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_ACmultisupplyswitch.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_ACsupplysonoffmultiswitch.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_ACpartsavenow.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_main_AC_switchs.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_maincurrentcircuitwiering.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_STM-wiered.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_casewok.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_readytowritekote.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_kotig_runningtempgrapj.jpg * oh finaly working colorlaser printer again upcomming poster https://marderchen.lima-city.de/NEU+/z0r7254_bild8_poster_pixel.png *purrrrRR* * https://marderchen.lima-city.de/NEU+/hellstorm_mobileawesomepowder_fanunit.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_mobileawesomepowder_fanunit_rear.jpg * https://marderchen.lima-city.de/NEU+/hellstorm_scrennbuilding_progress.jpg * oh thing hardware is nearb finished now just have to push more kote from brain into keyboardkeys caused not realy finished this programz think getting better loot how smal the funktions to draw graph "malgraph" and draw the rainbowpowderstatechasngable lines"malpowder" :3 * have fun if there is something usefull just use it =^.^= * */ #include "Adafruit_GFX_AS.h" #include "Adafruit_ILI9341_STM.h" #include #define TFT_CS PB11 #define TFT_DC PA4 #define TFT_RST PA6 #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); // Use hardware SPI #define screeny 32 CRGB leds[screeny]; CRGBPalette16 currentPalette; TBlendType currentBlending; const unsigned char PROGMEM monstercat []= { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, // ############################################## ############### ################### 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x3F, 0xFE, 0xFF, 0xFF, 0xC0, // ############################################# # ############# ################## 0xC3, 0x87, 0xFF, 0xFE, 0xFF, 0xFB, 0xBF, 0xFD, 0xFF, 0xFF, 0x30, // ## ### ################## ############# ### ############ ################# ## 0xDD, 0x77, 0xFF, 0xFD, 0x3F, 0x9B, 0xDF, 0xFB, 0xFF, 0xF8, 0xF0, // ## ### # ### ################# # ####### ## #### ########## ############### #### 0xDE, 0xF7, 0xFF, 0xFD, 0xD0, 0x67, 0xDF, 0xFB, 0xFF, 0xE7, 0xF0, // ## #### #### ################# ### # ## ##### ########## ############# ####### 0xDF, 0xF7, 0xFF, 0xFD, 0xEF, 0xFF, 0xEF, 0xF7, 0xFE, 0x1F, 0xF0, // ## ######### ################# #### ############### ######## ########## ######### 0xDB, 0xB7, 0xFF, 0xFD, 0xFC, 0x07, 0xF7, 0xFF, 0xF1, 0xFF, 0xF0, // ## ## ### ## ################# ####### ####### ############### ############# 0xD9, 0x37, 0xCF, 0xFD, 0xF0, 0x1F, 0xFB, 0xFF, 0xCF, 0xFF, 0xF0, // ## ## # ## ##### ########## ##### ########## ############ ################ 0xDA, 0xB7, 0xF3, 0xFD, 0xFF, 0xFF, 0xFD, 0xFF, 0x3F, 0xFF, 0xF0, // ## ## # # ## ####### ######## ####################### ######### ################## 0xC3, 0x87, 0xFC, 0xFB, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0xFF, 0xF0, // ## ### ######### ##### ##################### # ############################# 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xFF, 0xF0, // ############################ ####################### # ############################ 0xFF, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xF0, // ########################### ## ######################### ########################## 0xC0, 0x07, 0xFF, 0xE9, 0xFF, 0xFF, 0xFF, 0x9F, 0x00, 0x00, 0x00, // ## ############## # ########################## ##### 0xDF, 0xF7, 0xFF, 0xEB, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF0, // ## ######### ############## # ############################ ######################## 0xDF, 0xF7, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF0, // ## ######### ############# ############################### ######################## 0xD8, 0x07, 0x01, 0xDF, 0xFF, 0xE3, 0x1F, 0xDF, 0xFF, 0xFF, 0xF0, // ## ## ### ### ################ ## ####### ######################### 0xDB, 0xFF, 0xFF, 0xDF, 0xFE, 0x01, 0x0F, 0xBF, 0xF3, 0xFF, 0xF0, // ## ## #################### ############ # ##### ########## ############## 0xD8, 0x3F, 0xFF, 0xDF, 0xF2, 0x00, 0x0F, 0x7F, 0x7C, 0x1F, 0xF0, // ## ## ################ ######### # #### ####### ##### ######### 0xDF, 0xBF, 0xFF, 0xEF, 0xE0, 0x00, 0x0C, 0xC0, 0xFF, 0xE0, 0x70, // ## ###### ################# ####### ## ## ########### ### 0xD8, 0x3F, 0xF8, 0x77, 0xE0, 0x00, 0x0C, 0x1E, 0x7F, 0xFF, 0x80, // ## ## ########### ### ###### ## #### ################ 0xDB, 0xFF, 0xE7, 0xF8, 0xF0, 0x00, 0x8C, 0xFF, 0x7F, 0xFF, 0xF0, // ## ## ############# ######## #### # ## ######## ################### 0xD8, 0x07, 0x9F, 0xFF, 0x78, 0x43, 0xFB, 0xFF, 0x7F, 0xFF, 0xF0, // ## ## #### ############# #### # ####### ########## ################### 0xDF, 0xF7, 0x7F, 0xFF, 0xBC, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, // ## ######### ### ################ #### ####################### ################### 0xDF, 0xF6, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xF0, // ## ######### ## ################## ########################### ################### 0xC0, 0x07, 0xFF, 0xC0, 0x07, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF0, // ## ############# ######################### #################### 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, // ######################### ################################ #################### 0xC0, 0x07, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, // ## ########### ############################### ######################## 0xDF, 0xF7, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xF0, // ## ######### ########## ################################# ######################### 0xDF, 0xF7, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xF0, // ## ######### ########## ################################## ######################### 0xD8, 0x37, 0xFF, 0x7F, 0x3F, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xF0, // ## ## ## ########### ####### ######################## ######################### 0xDB, 0xB7, 0xFF, 0x80, 0x1F, 0xE7, 0x1F, 0xDF, 0xFF, 0xFF, 0xF0, // ## ## ### ## ############ ######## ### ####### ######################### 0xDB, 0xB7, 0xFE, 0x00, 0x3F, 0xC7, 0xDF, 0xD1, 0xFF, 0xFF, 0xF0, // ## ## ### ## ########## ######## ##### ####### # ##################### 0xD8, 0x37, 0xFC, 0xFC, 0x7F, 0x87, 0xCF, 0x88, 0x3F, 0xFF, 0xF0, // ## ## ## ######### ###### ######## ##### ##### # ################## 0xDF, 0xF7, 0xF9, 0xFF, 0xFF, 0xBF, 0xEF, 0x8F, 0xBF, 0xFF, 0xF0, // ## ######### ######## ################## ######### ##### ##### ################## 0xDF, 0xF7, 0xFB, 0xC0, 0xFF, 0xBF, 0xEF, 0xFF, 0x9F, 0xFF, 0xF0, // ## ######### ######## #### ######### ######### ############# ################# 0xC0, 0x07, 0xFB, 0x9F, 0x7F, 0xBF, 0xEF, 0xFF, 0x9F, 0xFF, 0xF0, // ## ######## ### ##### ######## ######### ############# ################# 0xFF, 0xFF, 0xF8, 0x1F, 0x7F, 0xBF, 0xCF, 0xFF, 0xBF, 0xFF, 0xF0, // ##################### ##### ######## ######## ############# ################## 0xFF, 0xFF, 0xFC, 0x3F, 0x3F, 0x9F, 0xDF, 0xFF, 0x3F, 0xFF, 0xF0, // ###################### ###### ####### ####### ############# ################## 0xC3, 0x87, 0xFF, 0x3F, 0xBF, 0xDF, 0xDF, 0xF8, 0x7F, 0xFC, 0xF0, // ## ### ########### ####### ######## ####### ########## ############# #### 0xDB, 0xB7, 0xFF, 0xFF, 0xDF, 0xCF, 0xC0, 0x03, 0xFF, 0x9F, 0x70, // ## ## ### ## ##################### ####### ###### ########### ##### ### 0xDA, 0xB7, 0xFF, 0xF8, 0x0F, 0xEF, 0xFF, 0xFF, 0xFF, 0x9F, 0x70, // ## ## # # ## ################ ####### ############################# ##### ### 0xD9, 0x37, 0xFF, 0xF7, 0xC7, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, // ## ## # ## ############### ##### ###### #################################### ### 0xDB, 0xB7, 0xFF, 0xEF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, // ## ## ### ## ############## ############### ################################## #### 0xDF, 0xF7, 0xFF, 0xEF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, // ## ######### ############## ############### ################################### ### 0xDE, 0xF7, 0xFF, 0xEF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0x9F, 0x70, // ## #### #### ############## ################ ############################ ##### ### 0xDD, 0x77, 0xFF, 0xE7, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0x9F, 0x70, // ## ### # ### ############## ############### ############################ ##### ### 0xC3, 0x87, 0xFF, 0xF0, 0x78, 0x03, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, // ## ### ############### #### ################################ #### 0xFF, 0xFF, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, // ############################# ############################################## }; 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 =^.^= kot vor try brightenes from CIS RGB leds (thisone lighting a acryl stick in scanner) uint8_t contraent=50; void displaystart(void) {tft.begin(); tft.fillScreen(ILI9341_BLACK); tft.setRotation(2);} void ws2812Bstart(void){FastLED.addLeds(leds, screeny);FastLED.setBrightness(255);currentPalette = RainbowColors_p;currentBlending = BLEND; for(uint8_t dieda=0; diedaDB237->irf4905 p-channel -> 6rotors //mosfets 1-8charging 16V470uF capacitor paralel to turbinesrotor #define MOS2 PB13 //2 #define MOS3 PB14 #define MOS4 PB15 //4 #define MOS5 PA8 //11 #define MOS6 PA9 //12 #define MOS7 PA10 //13 #define MOS8 PB5 //14 #define npn1 PB6 //5 //supply turbine1 front rotor #define npn2 PB7 //6 //12V 2A NPN wire output maybe leds later.. #define npn3 PC13 //7 //supply turbine2 front rotor #define npn4 PC14 //8 //supply turbine1+2 rear rotor #define npn5 PC15 //9 #define npn6 PB10 //10 PB1?? //IRF1404 n-channel watch datashet http://www.irf.com/product-info/datasheets/data/irf1404.pdf awesome thingy.. 333Watt lol 808Ampere pulspower far enough to puls-chagre with supplyoutput a 25V4700uF capacitor and drife the extern cased mobile powderfull car radiator fan.. #define tempoben PA1 #define tempmitte PA2 #define tempmittedick PA3 #define tempsupply PB0 #define tempfanin PB1 #define Tmulti PA0 #define Tfix1 PA12 #define Tfix2 PA15 uint16_t zeit1; int8_t onpress[8]; uint16_t dutywidth=240; uint8_t steps=6; 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}; uint8_t r,g,b; uint8_t dutys[15]; uint16_t toben=380; uint16_t tmite=380; uint16_t tdick=380; uint16_t tsupp=380; uint16_t tfans=380; uint8_t selector=0; boolean plusset=false; boolean minusset=false; void setup() { delay(100); pinMode(MOS1, OUTPUT); pinMode(MOS2, OUTPUT); pinMode(MOS3, OUTPUT); pinMode(MOS4, OUTPUT); pinMode(MOS4, OUTPUT); pinMode(MOS5, OUTPUT); pinMode(MOS7, OUTPUT); pinMode(MOS8, OUTPUT); //24 rotors //12turbines// 8channel + 4xrotor in 2x serversupply 12V56A 730W cooling pinMode(npn1, OUTPUT); pinMode(npn2, OUTPUT); pinMode(npn3, OUTPUT); pinMode(npn4, OUTPUT); pinMode(npn5, OUTPUT); pinMode(npn6, OUTPUT); // 6xBD237 for pulsing 12V2A pinMode(Tfix1, INPUT); pinMode(Tfix2, INPUT); delay(100); dutys[0]=10; dutys[1]=20; dutys[2]=30; dutys[3]=40; dutys[4]=50;dutys[5]=60; dutys[6]=70;dutys[7]=80; dutys[8]=240; dutys[9]=140; dutys[10]=180; dutys[11]=220; //for testgraphic displaystart(); ws2812Bstart(); } boolean automan=true; void loop() { zeitreise(); messmal(); cutykatzi(50,145,90); if(automan==true){manualchange();} } uint8_t runrainbow; void maldisplay(void){ tft.fillScreen(ILI9341_BLACK); textso(10,20,String(selector),2,100);textso(10,40,String(analogRead(Tmulti)),2,50); runrainbow+=2; if (runrainbow >127){runrainbow=0;} if(automan==true){ textso(2,145,"AUTO",1,runrainbow); tft.drawRect(0,144,40,10,0xffff); tft.fillRect(0,134,40,10,0xffff); textso(2,135,"MANUEL",1,0);} else{ colory(rainbow[runrainbow]); tft.fillRect(0,134,40,10,tft.color565(r,g,b)); textso(2,145,"AUTO",1,129-runrainbow); tft.drawRect(0,134,40,10,0xffff); textso(2,135,"MANUEL",1,0);} malgraph(0,200); textso(0,0,"Hellstorm Steamtower by ~marderchen :3",1,runrainbow); malpowder(10,10); //for (uint8_t fixline3=0; fixline3 <128; fixline3++) { colory(rainbow[fixline3]); tft.drawPixel(fixline3,50,tft.color565(r,g,b));}//linear rainbowarray testline //tft.drawFastVLine(205,200,120,(255,255,255)); } void textso(uint8_t xhier,uint8_t yhier,String dentext,uint8_t sisze,uint8_t colorzs){tft.setCursor(xhier,yhier); tft.setTextSize(sisze);colory(rainbow[colorzs]); tft.setTextColor(tft.color565(r,g,b)); tft.print(dentext);} uint8_t sensorzeugs[240][6];uint8_t kalibri=540;//weniger=runter void messmal(void) { if ((analogRead(tempoben)/3) > toben) {toben++;}else{toben--;} if ((analogRead(tempmitte)/3) > tmite) {tmite++;}else{tmite--;} if ((analogRead(tempmittedick)/3) > tdick) {tdick++;}else{tdick--;} if ((analogRead(tempsupply)/3) > tsupp) {tsupp++;}else{tsupp--;} if ((analogRead(tempfanin)/3) > tfans) {tfans++;}else{tfans--;} sensorzeugs[200][0]=toben-kalibri; sensorzeugs[200][1]=tmite-kalibri; sensorzeugs[200][2]=tdick-kalibri; sensorzeugs[200][3]=tsupp-kalibri; sensorzeugs[200][4]=tfans-kalibri; } void manualchange(void){ for (uint8_t nemenge=0; nemenge <11; nemenge++) { if(selector==nemenge){ if(plusset==true && dutys[selector]<=(dutywidth-20)){dutys[selector]+=20;plusset=false;} if(minusset==true && (dutys[selector]>=10)){dutys[selector]-=10; minusset=false;} }}} uint8_t powderposis[13]={0,15,40,55,80,95,120,135,160,185,200,215}; void malpowder(uint8_t xhier, uint8_t yhier){ tft.drawRect(xhier-5,yhier-2,155,125,0xffff); textso(xhier+50,yhier+124,"Turbinen",1,129-runrainbow);tft.drawRect(xhier+45,yhier+123,57,10,0xffff);//turninbars tft.drawRect(xhier+155,yhier-2,20,125,0xffff); tft.drawRect(xhier+155,yhier+123,20,10,0xffff);textso(xhier+156,yhier+124,"12V",1,129-runrainbow);//12V fanout tft.drawRect(xhier+180,yhier-2,50,125,0xffff); textso(xhier+188,yhier+124,"Supply",1,129-runrainbow);tft.drawRect(xhier+180,yhier+123,50,10,0xffff);//supplyturbinen for (uint8_t leinchen=0; leinchen <12; leinchen++) { for (uint8_t merchen=0; merchen <(dutywidth/2); merchen++) {if (merchen < (dutys[leinchen]/2)) {colory(rainbow[120-merchen]); tft.drawFastHLine(xhier+powderposis[leinchen],yhier+120-merchen,10,tft.color565(r,g,b));}} if(selector==leinchen){wuselrect(xhier-2+powderposis[selector],yhier+1,14,120,1,true);}} } void malgraph(uint8_t xda,uint8_t yda){ for (uint8_t fixline=1; fixline <121; fixline++) { if((fixline%4)==0){ tft.drawFastHLine(xda+4,yda+fixline-5,1,(0,0,255));} if((fixline%20)==0){ tft.drawFastHLine(xda+2,yda+fixline-5,204,(0,0,255));}} for (uint8_t fixline2=0; fixline2 <205; fixline2++) { if((fixline2%4)==0){ colory(rainbow[fixline2/2]); tft.drawFastVLine(xda+5+fixline2,yda+115,2,tft.color565(r,g,b));} if((fixline2%20)==0){ colory(rainbow[fixline2/2]); tft.drawFastVLine(xda+5+fixline2,yda,119,tft.color565(r,g,b));}} for (uint8_t alle=0; alle<5; alle++) {for (uint8_t rutsch=0; rutsch <200; rutsch++) { swap(sensorzeugs[rutsch][alle],sensorzeugs[rutsch+1][alle]); colory(rainbow[alle*25]); tft.drawPixel(xda+5+rutsch,yda+sensorzeugs[rutsch][alle],tft.color565(r,g,b)); }tft.drawFastVLine(xda+206+alle*3,yda+sensorzeugs[199][alle],120,tft.color565(r,g,b)); tft.drawFastHLine(xda+205,yda+sensorzeugs[199][alle],alle*3+1,tft.color565(r,g,b)); } textso(xda+205,yda,String(toben)+"t1",1,20); textso(xda+205,yda+10,String(tmite)+"t2",1,40); textso(xda+205,yda+20,String(tdick)+"t3",1,60); textso(xda+205,yda+30,String(tsupp)+"t4",1,80); textso(xda+205,yda+40,String(tfans)+"t5",1,100); } long maintime=millis(); long maintime2=micros(); long maintime3=micros();long beaty=micros(); long timez=millis(); long flash=millis(); uint8_t entwederoder,eins2plus; void zeitreise(void){ while ((millis()- maintime) >= 5){zeit1++; istinput(); maintime = millis(); } //fader(); while ((micros()- beaty) >= 100) {beaty=micros();} while ((millis()- timez) >= 10) {entwederoder++; if (entwederoder <=9) {schaltzeugs(); } if (entwederoder >=10) {maldisplay(); entwederoder=0;} timez = millis();} while ((millis()-flash) >= 500) {flash =millis();eins2plus++;if (eins2plus>1){eins2plus=0;} ws2182bmeter(eins2plus);} } uint8_t ledstep=dutywidth/8;//30 uint8_t welchcalc,rainbowstepy,rainbowstepy2,rainbowstepy3; void ws2182bmeter(uint8_t eins2){ if (rainbowstepy2 <1){rainbowstepy2=16;}rainbowstepy2--; for (int8_t stripes=0; stripes <8; stripes+=2) { rainbowstepy=0; for (uint8_t viele=0; viele <9; viele++) { welchcalc=(8-viele)+(4*stripes); rainbowstepy+=2; rainbowstepy3=rainbowstepy2*rainbowstepy; if (eins2==0) { if(viele >(dutys[6-stripes]/ledstep)){leds[welchcalc]=0x000000;} else {leds[welchcalc]=ColorFromPalette( currentPalette, rainbowstepy3, dutys[6-stripes]/viele, currentBlending);} if(viele ==(dutys[6-stripes]/ledstep)){leds[welchcalc].setRGB(0,0,random(75,30*6+75));} } if (eins2==1) { if(viele >(dutys[6-(stripes-1)]/ledstep)){leds[welchcalc]=0x000000;} else {leds[welchcalc]=ColorFromPalette( currentPalette, rainbowstepy, dutys[6-stripes]/viele, currentBlending);} if(viele ==(dutys[6-(stripes-1)]/ledstep)){leds[welchcalc].setRGB(random(75,30*6+75),0,0);}} }}FastLED.show();} /*void ws2182bmeter(uint8_t eins2){ if (rainbowstepy2 <1){rainbowstepy2=16;}rainbowstepy2--; for (int8_t stripes=0; stripes <8; stripes+=2) { rainbowstepy=0; for (uint8_t viele=0; viele <9; viele++) { if (eins2==0) { welchcalc=(8-viele)+(4*stripes); rainbowstepy+=16/rainbowstepy2; if(viele >(dutys[6-stripes]/ledstep)){leds[welchcalc]=0x000000;} else {leds[welchcalc]=ColorFromPalette( currentPalette, rainbowstepy, dutys[6-stripes]/viele, currentBlending);} if(viele ==(dutys[6-stripes]/ledstep)){leds[welchcalc].setRGB(0,0,random(75,30*6+75));} } if (eins2==0) {} }FastLED.show();}*/ /* TFT ilili9341 taster resuistor value mp using one analogfGPU for lots of tasters * O6 O7 O8 O9 * ________________ * O5 | | O10 * O4 | | O11 * | | * O3 | LCD | O12 * | | * O2 | | O13 * O1 | | O14 * ---------------- * O1=3852 || O2 3637 || O3 3446 || O4 3280 || O5 3275 * O6=2980 || O7 2850 || O8 2730 || O9 2620 * O10= 2520 || O11 2430 || O12 2342 || O13 2562 || O14 2186 * O1 O2 O3 O4 O14 O15 *3V3-o____________________________________ PA0 GPIO * | | | | | | | *221R-o-221R-o-221R-o-221R-o-....-o-221R-o-221R-o-3571R-o-GND */ uint8_t toleranz=30; uint16_t tastervalue[15] = {3852,3637,3446,3280,3120,2980,2850,2730,2620,2520,2430,2342,2562,2186}; uint16_t tmess=0; void istinput(void){ if (zeit1 >=1) { tmess=analogRead(Tmulti); // if (digitalRead(Tfix1) == HIGH && onpress[0] ==0) { onpress[0] =1; } // if (onpress[0] == 1) { onpress[1]++;} if (onpress[1] >= 3) { onpress[1] =0; onpress[0]=0; } // if (digitalRead(Tfix2) == HIGH && onpress[2] ==0) { onpress[2] =1; } // if (onpress[2] == 1) { onpress[3]++;} if (onpress[3] >= 40) { onpress[3] =0; onpress[2]=0; } if (tmess> (tastervalue[0]-toleranz) && tmess < (tastervalue[0]+toleranz) && onpress[4] ==0) {onpress[4] =1; } if (tmess> (tastervalue[1]-toleranz) && tmess < (tastervalue[1]+toleranz) && onpress[4] ==0) {onpress[4] =1; } if (tmess> (tastervalue[2]-toleranz) && tmess < (tastervalue[2]+toleranz) && onpress[4] ==0) {onpress[4] =1; if(automan==true) {automan=false;}else{automan=true;} } if (tmess> (tastervalue[3]-toleranz) && tmess < (tastervalue[3]+toleranz) && onpress[4] ==0) {onpress[4] =1; minusset=true; } if (tmess> (tastervalue[4]-toleranz) && tmess < (tastervalue[4]+toleranz) && onpress[4] ==0) {onpress[4] =1; plusset=true; } if (tmess> (tastervalue[5]-toleranz) && tmess < (tastervalue[5]+toleranz) && onpress[4] ==0) {onpress[4] =1; if (selector==1){selector=0;}else{selector=1;}} if (tmess> (tastervalue[6]-toleranz) && tmess < (tastervalue[6]+toleranz) && onpress[4] ==0) {onpress[4] =1; if (selector==3){selector=2;}else{selector=3;}} if (tmess> (tastervalue[7]-toleranz) && tmess < (tastervalue[7]+toleranz) && onpress[4] ==0) {onpress[4] =1; if (selector==5){selector=4;}else{selector=5;}} if (tmess> (tastervalue[8]-toleranz) && tmess < (tastervalue[8]+toleranz) && onpress[4] ==0) {onpress[4] =1; if (selector==7){selector=6;}else{selector=7;}} if (tmess> (tastervalue[9]-toleranz) && tmess < (tastervalue[9]+toleranz) && onpress[4] ==0) {onpress[4] =1; selector=8;} if (tmess> (tastervalue[10]-toleranz) && tmess < (tastervalue[10]+toleranz) && onpress[4] ==0) {onpress[4] =1; if (selector==9){selector=10;}else{if(selector==10){selector=11;}else{selector=9;}}} if (tmess> (tastervalue[11]-toleranz) && tmess < (tastervalue[11]+toleranz) && onpress[4] ==0) {onpress[4] =1; } if (tmess> (tastervalue[12]-toleranz) && tmess < (tastervalue[12]+toleranz) && onpress[4] ==0) {onpress[4] =1; } if (tmess> (tastervalue[13]-toleranz) && tmess < (tastervalue[13]+toleranz) && onpress[4] ==0) {onpress[4] =1; } if (tmess> (tastervalue[14]-toleranz) && tmess < (tastervalue[14]+toleranz) && onpress[4] ==0) {onpress[4] =1; } if (onpress[4] == 1) { onpress[5]++;} if (onpress[5] >= 10) { onpress[5] =0; onpress[4]=0; } zeit1=0; }} int weniger=0; //thanks to adafruit for PROGMAN algoritm 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 wuselfillrect(int16_t eckex, int16_t eckey,int16_t breit, int16_t hoch,uint32_t colorspeed,boolean colormove) { for( int ry = eckex; ry < (hoch); ry++) { wuselline(eckex,eckey+ry,eckex+breit,eckey+ry,colorspeed,colormove);}} void wuselrect(int16_t eckex, int16_t eckey,int16_t breit, int16_t hoch,uint32_t colorspeed,boolean colormove) { wuselline(eckex+breit,eckey,eckex,eckey,colorspeed,colormove); wuselline(eckex+breit,eckey,eckex+breit,eckey+hoch,colorspeed,colormove); wuselline(eckex+breit,eckey+hoch,eckex,eckey+hoch,colorspeed,colormove); wuselline(eckex,eckey+hoch,eckex,eckey,colorspeed,colormove);} int rainbowcolor,rainbowcolor2,colorslows,colorslows2; //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,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 err = dx / 2;int16_t ystep; if (y0 < y1) {ystep = 1;} else {ystep = -1;} for (; x0<=x1; x0++) {colorslows2++; if (colorslows2 >1) {rainbowcolor +=colorspeed; colorslows2=0;} if (rainbowcolor >=128) { rainbowcolor =0;} if (steep) { if (colormove == true) { colory(rainbow[rainbowcolor]); tft.drawPixel(y0, x0, tft.color565(r,g,b));}if (colormove == false) { colory(colorspeed); tft.drawPixel(y0, x0,tft.color565(r,g,b));} } else { if (colormove == true) { colory(rainbow[rainbowcolor]); tft.drawPixel(x0, y0, tft.color565(r,g,b));}if (colormove == false) { colory(colorspeed); tft.drawPixel(x0, y0, tft.color565(r,g,b));}} err -= dy;if (err < 0) {y0 += ystep;err += dx;}}} void colory(uint32_t colorz) { String hexcolor = String(colorz); int number = hexcolor.toInt(); r = number >> 16; g = number >> 8 & 0xFF; b = number & 0xFF;} void schaltzeugs(void) { for (int16_t laag=0; laag <=dutywidth; laag++) { if (laag == 0) {allout();} if (laag <= (dutywidth-1) && laag >=1) { if (laag == (dutywidth-dutys[0])) { digitalWrite(MOS1, HIGH);} if (laag == (dutywidth-dutys[1])) { digitalWrite(MOS2, HIGH);} if (laag == (dutywidth-dutys[2])) { digitalWrite(MOS3, HIGH);} if (laag == (dutywidth-dutys[3])) { digitalWrite(MOS4, HIGH);} if (laag == (dutywidth-dutys[4])) { digitalWrite(MOS5, HIGH);} if (laag == (dutywidth-dutys[5])) { digitalWrite(MOS6, HIGH);} if (laag == (dutywidth-dutys[6])) { digitalWrite(MOS7, HIGH);} if (laag == (dutywidth-dutys[7])) { digitalWrite(MOS8, HIGH);} if (laag == (dutywidth-dutys[8])) { digitalWrite(npn1, HIGH);} if (laag == (dutywidth-dutys[9])) { digitalWrite(npn2, HIGH);} if (laag == (dutywidth-dutys[10])) { digitalWrite(npn3, HIGH);} if (laag == (dutywidth-dutys[11])) { digitalWrite(npn4, HIGH);} if (laag == (dutywidth-dutys[12])) { digitalWrite(npn5, HIGH);} if (laag == (dutywidth-dutys[13])) { digitalWrite(npn6, HIGH);}} if (laag >=dutywidth) {allout();} }} void allout(void) {digitalWrite(MOS1,LOW); digitalWrite(MOS2,LOW); digitalWrite(MOS3,LOW); digitalWrite(MOS4,LOW); digitalWrite(MOS5,LOW); digitalWrite(MOS6,LOW); digitalWrite(MOS7,LOW); digitalWrite(MOS8,LOW); digitalWrite(npn1,LOW); digitalWrite(npn2,LOW); digitalWrite(npn3,LOW); digitalWrite(npn4,LOW); digitalWrite(npn5,LOW); digitalWrite(npn6,LOW);} uint8_t bigi,bigi2,ckcatz,bigi2m,catcoli,cutey; void cutykatzi(int cutex, int cutecach,int scalling){//oh debuging by flashing new.. wouldcount maybe 50times or more?.. need cute conversation for fun durring it ckcatz++;cutey=cutecach+50; if (catcoli <= 5) {catcoli=128;}catcoli-=2; if (ckcatz>=10) {ckcatz=0;} bigi=100;//(10-ckcatz)*(400/scalling)+ tft.fillRect(cutex-(4+(4-bigi2)),cutecach-(12+(bigi2)),85+(5-bigi2),74+(bigi2+2),0x0000); if (ckcatz==0) {bigi2=4; wuselbitmap(cutex,cutey,cat1,58, 49,catcoli,"vertikal",bigi,true,true); } if (ckcatz==1) {bigi2=3; wuselbitmap(cutex,cutey+2,cat2,61, 47,catcoli,"vertikal",bigi,true,true);} if (ckcatz==2) {bigi2=2; wuselbitmap(cutex,cutey+4,cat3,65, 43,catcoli,"vertikal",bigi,true,true);} if (ckcatz==3) {bigi2=1; wuselbitmap(cutex+4,cutey+2,cat4,64, 53,catcoli,"vertikal",bigi,true,true);} if (ckcatz==4) {bigi2=0; wuselbitmap(cutex+8,cutey,cat5,66, 59,catcoli,"vertikal",bigi,true,true);} if (ckcatz==5) {bigi2=0; wuselbitmap(cutex+10,cutey,cat6,61, 63,catcoli,"vertikal",bigi,true,true);} if (ckcatz==6) {bigi2=1; wuselbitmap(cutex+8,cutey+4,cat7,61, 53,catcoli,"vertikal",bigi,true,true);} if (ckcatz==7) {bigi2=2; wuselbitmap(cutex+6,cutey,cat8,60, 52,catcoli,"vertikal",bigi,true,true);} if (ckcatz==8) {bigi2=3; wuselbitmap(cutex+4,cutey,cat9,58, 49,catcoli,"vertikal",bigi,true,true);} if (ckcatz==9) {bigi2=4; wuselbitmap(cutex+2,cutey+2,cat10,60, 47,catcoli,"vertikal",bigi,true,true);} } // // [MEOW] more steampowder cajused realy tomuch electronic in martenhole and summercomming and meself and my loudlypurringdevices wouldn`t die by head there are other better ways for .. so have tobuild smal but realy loud manual or automaticregulated steam power fave fun :3