Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二

1.概述

这篇文章在触摸屏上绘制一个开关,通过点击开关实现控制灯的开关功能。

2.硬件

硬件连接参考第一篇文章介绍
Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之获取触控坐标一

3.实现触控开关效果

3.1.完整代码

首先给出实现点击屏幕实现开关状态改变的完整代码,然后在详细说明实现思路以及代码中每个部分的作用。

1.图标位图

在代码中开关图标是十六进制的位图,因此在字体取模软件PCtoLCD2002软件绘制开关图形即可,下面是绘制好的代码。
在主程序同路径下新建一个switch.c文件然后将下面的内容复制到该文件中。

#ifdef __AVR__
#include <avr/pgmspace.h>
#elif defined(ESP8266)
#include <pgmspace.h>
#else
#define PROGMEM
#endifconst unsigned char switch_off_1[450] PROGMEM = 
{ /* 0X00,0X10,0X0F,0X00,0X0F,0X00,0X01,0X1B, */
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X79,0XCE,0XD7,0XBD,0X96,0XB5,0X96,0XB5,0X96,0XB5,
0XD7,0XBD,0X79,0XCE,0X9E,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XB6,0XB5,0X38,0XC6,0X3C,0XE7,0X9E,0XF7,0X9E,0XF7,0X9E,0XF7,0X3C,0XE7,
0X38,0XC6,0XB6,0XB5,0X5D,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XB6,0XB5,
0X79,0XCE,0XBE,0XF7,0XDB,0XD6,0X39,0XC6,0X39,0XC6,0X39,0XC6,0XDB,0XDE,0XBE,0XF7,
0X79,0XCE,0XB6,0XB5,0X9E,0XEF,0XFF,0XFF,0XFF,0XFF,0X79,0XCE,0X18,0XC6,0XBE,0XF7,
0X59,0XCE,0XF8,0XBD,0X39,0XC6,0X5A,0XC6,0X5A,0XC6,0X39,0XC6,0X9A,0XD6,0XBE,0XF7,
0X38,0XC6,0X79,0XCE,0XFF,0XFF,0XFF,0XFF,0XD7,0XBD,0X3C,0XE7,0XDB,0XD6,0XF8,0XBD,
0X7A,0XCE,0X9A,0XCE,0XBB,0XD6,0XDB,0XDE,0XFB,0XDE,0X7A,0XCE,0X1C,0XE7,0X3C,0XE7,
0XD7,0XBD,0X9E,0XF7,0XFF,0XFF,0X96,0XB5,0X9E,0XF7,0X39,0XC6,0X59,0XC6,0XBB,0XD6,
0XBB,0XD6,0XFC,0XDE,0X1C,0XE7,0X3D,0XE7,0X1C,0XE7,0XDB,0XDE,0X9E,0XF7,0X96,0XB5,
0X5D,0XEF,0XFF,0XFF,0X96,0XB5,0X9E,0XF7,0X59,0XC6,0X9A,0XCE,0XFB,0XDE,0X1C,0XE7,
0X5D,0XE7,0X5D,0XEF,0X7D,0XEF,0X5D,0XEF,0X1C,0XE7,0XBE,0XF7,0X75,0XAD,0X5D,0XEF,
0XFF,0XFF,0X96,0XB5,0X9E,0XF7,0X7A,0XCE,0XBB,0XD6,0X3C,0XE7,0X5D,0XEF,0X7D,0XEF,
0X9E,0XF7,0X9E,0XF7,0X7D,0XEF,0X3C,0XE7,0XBE,0XF7,0X96,0XB5,0X5D,0XEF,0XFF,0XFF,
0XD7,0XBD,0X1C,0XE7,0X1C,0XE7,0X9A,0XD6,0X5D,0XEF,0X7D,0XEF,0X9E,0XF7,0XBE,0XF7,
0XBE,0XF7,0X7D,0XEF,0X9E,0XF7,0X1C,0XE7,0XD7,0XBD,0X9E,0XF7,0XFF,0XFF,0X59,0XCE,
0XD7,0XBD,0XDF,0XFF,0XFB,0XDE,0XFB,0XDE,0X7D,0XEF,0X9E,0XF7,0XBE,0XF7,0X9E,0XF7,
0X9E,0XF7,0XDF,0XFF,0XD7,0XBD,0X59,0XCE,0XFF,0XFF,0XFF,0XFF,0X9E,0XF7,0XD7,0XB5,
0X79,0XCE,0X9E,0XF7,0X5D,0XEF,0X3C,0XE7,0X5D,0XEF,0X9E,0XEF,0XBE,0XF7,0XBE,0XF7,
0X59,0XCE,0XD7,0XB5,0X9E,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5D,0XEF,0XF7,0XBD,
0XB6,0XB5,0XFB,0XDE,0X9E,0XF7,0XDF,0XFF,0X9E,0XF7,0XFB,0XDE,0XB6,0XB5,0XF7,0XBD,
0X5D,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0XFF,0X79,0XCE,
0XD7,0XBD,0X96,0XB5,0X75,0XAD,0X96,0XB5,0XD7,0XBD,0X79,0XCE,0XBE,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,
0X5D,0XEF,0X3C,0XE7,0X5D,0XEF,0XBE,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,};const unsigned char switch_on_1[450] PROGMEM = 
{ /* 0X00,0X10,0X0F,0X00,0X0F,0X00,0X01,0X1B, */
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X79,0XCE,0XD7,0XBD,0X96,0XB5,0X96,0XB5,0X96,0XB5,
0XD7,0XBD,0X79,0XCE,0X9E,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XB6,0XB5,0X38,0XC6,0X3C,0XEF,0XBE,0XF7,0X9E,0XF7,0XBE,0XF7,0X3C,0XEF,
0X38,0XC6,0XB6,0XB5,0X5D,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XB6,0XB5,
0X79,0XCE,0XDF,0XFF,0XFB,0XDE,0XF8,0XBD,0X76,0XA5,0X18,0XBE,0XFC,0XDE,0XDF,0XFF,
0X79,0XCE,0XB6,0XB5,0X9E,0XEF,0XFF,0XFF,0XFF,0XFF,0X79,0XCE,0X18,0XC6,0XDF,0XFF,
0X39,0XC6,0XF1,0X6B,0X0E,0X43,0X4F,0X53,0XAD,0X3A,0XF1,0X6B,0X7A,0XCE,0XDF,0XFF,
0X38,0XC6,0X79,0XCE,0XFF,0XFF,0XFF,0XFF,0XD7,0XBD,0X5C,0XEF,0XDB,0XD6,0XB1,0X63,
0XB5,0X7C,0X5D,0XCF,0X3E,0XCF,0X54,0X5C,0XCA,0X19,0XB0,0X63,0X1C,0XE7,0X5C,0XEF,
0XD7,0XBD,0X9E,0XF7,0XFF,0XFF,0X96,0XB5,0XBE,0XF7,0X56,0XA5,0X2F,0X4B,0X1E,0XC7,
0XFF,0XEF,0X7E,0XB7,0XBB,0X45,0XB0,0X02,0X2B,0X2A,0XF8,0XB5,0XBE,0XFF,0X96,0XB5,
0X5D,0XEF,0XFF,0XFF,0X96,0XB5,0XBE,0XF7,0XB4,0X84,0X4B,0X32,0X99,0X6D,0X5C,0X76,
0XBB,0X45,0X3A,0X25,0XF6,0X0B,0XA9,0X11,0X15,0X9D,0XFF,0XFF,0X96,0XAD,0X3C,0XEF,
0XFF,0XFF,0X96,0XB5,0XDE,0XFF,0X15,0X9D,0XA9,0X19,0X11,0X0B,0XFA,0X14,0XFA,0X1C,
0XDA,0X14,0XF1,0X02,0XC9,0X19,0X97,0XAD,0XDF,0XFF,0X96,0XB5,0X5D,0XEF,0XFF,0XFF,
0XD7,0XBD,0X3C,0XE7,0XDB,0XD6,0XAD,0X3A,0X69,0X01,0X12,0X0B,0XD6,0X0B,0XF2,0X02,
0X49,0X01,0XED,0X42,0X5D,0XE7,0X3C,0XE7,0XD7,0XBD,0X9E,0XF7,0XFF,0XFF,0X59,0XCE,
0XD7,0XBD,0XFF,0XFF,0XD8,0XB5,0XAC,0X3A,0X68,0X11,0X28,0X01,0X68,0X11,0XCD,0X42,
0X59,0XC6,0XFF,0XFF,0XD7,0XBD,0X59,0XCE,0XFF,0XFF,0XFF,0XFF,0X9E,0XF7,0XB6,0XB5,
0X79,0XCE,0XBE,0XFF,0XFC,0XDE,0X15,0X95,0X32,0X7C,0X35,0X95,0X3D,0XE7,0XDF,0XFF,
0X59,0XCE,0XB6,0XB5,0X9E,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5D,0XEF,0XF7,0XBD,
0XB6,0XB5,0X1C,0XE7,0XDF,0XFF,0XFF,0XFF,0XDF,0XFF,0X1C,0XE7,0XB6,0XB5,0XF7,0XBD,
0X5D,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0XFF,0X79,0XCE,
0XD7,0XBD,0X96,0XB5,0X75,0XAD,0X96,0XB5,0XD7,0XBD,0X79,0XCE,0XBE,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,
0X5D,0XEF,0X3C,0XE7,0X5D,0XEF,0XBE,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,};const unsigned char switch_off_2[1800] PROGMEM = 
{ /* 0X00,0X10,0X1E,0X00,0X1E,0X00,0X01,0X1B, */
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0X8A,0X4A,0XAE,0X73,0X92,0X94,0X14,0XA5,0X55,0XAD,0X55,0XAD,0X14,0XA5,0X92,0X8C,
0X8E,0X73,0X6A,0X4A,0XE7,0X39,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XAA,0X52,0XF3,0X9C,0X96,0XAD,0X75,0XAD,
0X35,0XA5,0X34,0XA5,0X34,0XA5,0X34,0XA5,0X35,0XA5,0X35,0XA5,0X55,0XAD,0X96,0XAD,
0XD3,0X9C,0X8A,0X52,0X45,0X29,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0X51,0X84,0X76,0XAD,0X14,0XA5,0X14,0X9D,0X14,0X9D,0X14,0X9D,0X14,0X9D,
0X14,0X9D,0X14,0X9D,0X14,0X9D,0XF4,0X9C,0X14,0X9D,0X14,0X9D,0X14,0XA5,0X76,0XAD,
0X31,0X84,0XC3,0X18,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X82,0X10,0XB3,0X94,0X55,0XA5,
0XF4,0X9C,0XF4,0X9C,0XF4,0X9C,0XF4,0X9C,0XF4,0X9C,0XF4,0X9C,0XB3,0X94,0XB3,0X94,
0XF4,0X9C,0XF4,0X9C,0XF4,0X9C,0XF4,0X9C,0XF4,0X9C,0XF4,0X9C,0X55,0XA5,0X92,0X94,
0X82,0X10,0XEB,0X5A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0X20,0X00,0XCF,0X7B,0X35,0XA5,0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,
0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XD3,0X94,0X9A,0XCE,0X7A,0XCE,0XD3,0X94,0XD3,0X9C,
0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0X35,0XA5,0XAF,0X73,0X20,0X00,
0X8E,0X73,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0X08,0X42,0X14,0X9D,0XD3,0X94,0XD3,0X94,0XD3,0X94,0XD3,0X94,0XB3,0X94,0X92,0X94,
0XB3,0X94,0XF4,0X9C,0XFF,0XFF,0XFF,0XFF,0XD3,0X9C,0XB2,0X94,0X92,0X94,0XB3,0X94,
0XD3,0X94,0XD3,0X94,0XD3,0X94,0XD3,0X94,0XF4,0X9C,0XE7,0X39,0X82,0X10,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,0X18,0X2C,0X63,0XF4,0X9C,
0XB3,0X94,0XB3,0X94,0XB3,0X94,0X92,0X94,0X92,0X8C,0X35,0XA5,0XB3,0X94,0XD3,0X9C,
0XDF,0XFF,0XBE,0XF7,0XD3,0X94,0XB3,0X94,0X34,0XA5,0X72,0X8C,0X92,0X94,0XB3,0X94,
0XB3,0X94,0XB3,0X94,0XF4,0X9C,0X0C,0X63,0XC3,0X18,0XC7,0X39,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0X04,0X21,0X45,0X29,0X8E,0X73,0XD3,0X9C,0X92,0X94,0X92,0X94,
0X72,0X8C,0XB2,0X94,0XBA,0XD6,0XFF,0XFF,0X9A,0XCE,0X92,0X8C,0XDF,0XFF,0XBE,0XF7,
0X72,0X8C,0X79,0XCE,0XFF,0XFF,0XBA,0XD6,0X92,0X94,0X72,0X8C,0X92,0X94,0X92,0X94,
0XD3,0X9C,0X6E,0X6B,0X45,0X29,0X04,0X21,0XEF,0X7B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0X86,0X31,0X86,0X31,0X6D,0X6B,0XB3,0X94,0X92,0X8C,0X71,0X8C,0X92,0X94,0X3C,0XE7,
0XFF,0XFF,0XBE,0XF7,0X75,0XAD,0X92,0X8C,0XDF,0XFF,0XBE,0XF7,0X72,0X8C,0X76,0XAD,
0XBE,0XF7,0XFF,0XFF,0X3C,0XE7,0X72,0X8C,0X71,0X8C,0X92,0X8C,0XB3,0X94,0X4D,0X6B,
0X86,0X31,0X86,0X31,0X28,0X42,0XFF,0XFF,0XFF,0XFF,0XA6,0X31,0XE7,0X39,0XC7,0X39,
0XCB,0X5A,0XB2,0X94,0X72,0X8C,0X31,0X84,0XDB,0XDE,0XFF,0XFF,0X3C,0XE7,0X92,0X94,
0X10,0X84,0X92,0X94,0XDF,0XFF,0XBE,0XF7,0X92,0X94,0X10,0X84,0XB2,0X94,0X3D,0XE7,
0XFF,0XFF,0XBA,0XD6,0X31,0X84,0X72,0X8C,0X92,0X94,0XCB,0X5A,0XC7,0X39,0XE7,0X39,
0XA6,0X31,0X34,0XA5,0XFF,0XFF,0XC7,0X39,0X28,0X42,0X08,0X42,0X28,0X42,0X30,0X84,
0X31,0X84,0X55,0XA5,0XFF,0XFF,0X9E,0XF7,0X92,0X8C,0X10,0X84,0X51,0X84,0X72,0X8C,
0XFF,0XFF,0XFF,0XFF,0X71,0X8C,0X51,0X84,0X10,0X84,0X92,0X94,0X9E,0XF7,0XFF,0XFF,
0X34,0XA5,0X31,0X84,0X10,0X84,0X28,0X42,0X08,0X42,0X28,0X42,0XC7,0X39,0X10,0X84,
0XFF,0XFF,0X28,0X42,0X49,0X4A,0X49,0X4A,0X28,0X42,0XEB,0X5A,0X30,0X84,0XDB,0XDE,
0XFF,0XFF,0XB6,0XB5,0XEF,0X7B,0X51,0X84,0X31,0X84,0X30,0X84,0X18,0XBE,0XF7,0XBD,
0X30,0X84,0X31,0X84,0X51,0X84,0XEF,0X7B,0XB7,0XB5,0XFF,0XFF,0XBA,0XD6,0X10,0X84,
0XEB,0X5A,0X28,0X42,0X49,0X4A,0X49,0X4A,0X28,0X42,0X2C,0X63,0XFF,0XFF,0X69,0X4A,
0X69,0X4A,0X69,0X4A,0X69,0X4A,0X49,0X4A,0X6D,0X6B,0XDF,0XFF,0XDF,0XFF,0X71,0X8C,
0X10,0X84,0X30,0X84,0X31,0X84,0X30,0X84,0XEF,0X7B,0XF0,0X7B,0X30,0X84,0X30,0X84,
0X30,0X84,0X10,0X7C,0X72,0X8C,0XFF,0XFF,0XBE,0XF7,0X4D,0X6B,0X49,0X4A,0X69,0X4A,
0X69,0X4A,0X69,0X4A,0X69,0X4A,0XEB,0X5A,0XFF,0XFF,0XAA,0X52,0XAA,0X52,0XAA,0X52,
0XAA,0X52,0X69,0X4A,0X4D,0X6B,0XFF,0XFF,0X5D,0XEF,0X10,0X84,0X10,0X84,0X10,0X84,
0X10,0X84,0X10,0X84,0X10,0X84,0X10,0X84,0X10,0X84,0X10,0X84,0X10,0X84,0X10,0X84,
0X10,0X84,0X7D,0XEF,0XFF,0XFF,0X2C,0X63,0X8A,0X52,0XAA,0X52,0XAA,0X52,0XAA,0X52,
0XAA,0X52,0XCB,0X5A,0XEB,0X5A,0XCB,0X5A,0XEB,0X5A,0XEB,0X5A,0XEB,0X5A,0XAA,0X52,
0X8E,0X73,0XFF,0XFF,0X1C,0XE7,0X4D,0X6B,0XCF,0X7B,0X10,0X7C,0X10,0X7C,0X10,0X7C,
0X10,0X7C,0X10,0X7C,0X10,0X7C,0X10,0X7C,0X10,0X7C,0XCF,0X7B,0X4D,0X6B,0X3C,0XE7,
0XFF,0XFF,0X6D,0X6B,0XAA,0X52,0XEB,0X5A,0XEB,0X5A,0XEB,0X5A,0XCB,0X5A,0X0C,0X63,
0XFF,0XFF,0X0C,0X63,0X0C,0X63,0X0C,0X63,0X0C,0X63,0XEB,0X5A,0X4D,0X6B,0XBE,0XF7,
0XBE,0XF7,0X2C,0X63,0XEB,0X5A,0X4D,0X63,0X6D,0X6B,0X8E,0X73,0X8E,0X73,0X8E,0X73,
0X8E,0X73,0X6D,0X6B,0X4D,0X63,0XEB,0X5A,0X4D,0X6B,0XDF,0XFF,0X9E,0XF7,0X2C,0X63,
0XEB,0X5A,0X0C,0X63,0X0C,0X63,0X0C,0X63,0X0C,0X63,0X4D,0X6B,0XFF,0XFF,0X2C,0X63,
0X4D,0X6B,0X4D,0X6B,0X4D,0X6B,0X2C,0X63,0XEB,0X5A,0X9A,0XD6,0XFF,0XFF,0XD3,0X9C,
0XCB,0X5A,0X2C,0X63,0X2C,0X63,0X2C,0X63,0X2C,0X63,0X2C,0X63,0X2C,0X63,0X2C,0X63,
0X2C,0X63,0XCB,0X5A,0XF3,0X9C,0XFF,0XFF,0X79,0XCE,0XEB,0X5A,0X4D,0X6B,0X4D,0X6B,
0X4D,0X6B,0X4D,0X6B,0X2C,0X63,0X8E,0X73,0XFF,0XFF,0X4D,0X6B,0X6D,0X6B,0X6D,0X6B,
0X6D,0X6B,0X6D,0X6B,0X0C,0X63,0XD3,0X9C,0XFF,0XFF,0X5D,0XEF,0X6D,0X6B,0X2C,0X63,
0X6D,0X6B,0X6D,0X6B,0X6D,0X6B,0X6D,0X6B,0X6D,0X6B,0X6D,0X6B,0X2C,0X63,0X6D,0X6B,
0X5D,0XEF,0XFF,0XFF,0XB2,0X94,0X2C,0X63,0X6D,0X6B,0X6D,0X6B,0X6D,0X6B,0X6D,0X6B,
0X4D,0X6B,0XEF,0X7B,0XFF,0XFF,0X8E,0X73,0X8E,0X73,0X8E,0X73,0X8E,0X73,0X8E,0X73,
0X8E,0X73,0X6D,0X6B,0XDB,0XDE,0XFF,0XFF,0XBA,0XD6,0X8E,0X73,0X4D,0X6B,0X8E,0X73,
0X8E,0X73,0X8E,0X73,0X8E,0X73,0X2C,0X63,0XAE,0X73,0XBA,0XD6,0XFF,0XFF,0XBA,0XD6,
0X6D,0X6B,0X8E,0X73,0X8E,0X73,0X8E,0X73,0X8E,0X73,0XAE,0X73,0X8E,0X73,0X51,0X8C,
0XFF,0XFF,0XAE,0X73,0XCF,0X7B,0XCF,0X7B,0XCF,0X7B,0XCF,0X7B,0XCF,0X7B,0XAE,0X73,
0X10,0X84,0X5D,0XEF,0XFF,0XFF,0X5D,0XEF,0X14,0XA5,0X10,0X84,0XAE,0X73,0XAE,0X73,
0X10,0X84,0X34,0XA5,0X5D,0XEF,0XFF,0XFF,0X3C,0XE7,0XF0,0X83,0XAE,0X73,0XCF,0X7B,
0XCF,0X7B,0XCF,0X7B,0XCF,0X7B,0XCF,0X7B,0XAE,0X73,0XB2,0X94,0XFF,0XFF,0XFF,0XFF,
0X10,0X84,0X10,0X84,0X10,0X84,0X10,0X84,0X10,0X84,0X10,0X84,0XCF,0X7B,0X30,0X84,
0XBA,0XD6,0XFF,0XFF,0XFF,0XFF,0XDF,0XFF,0X5D,0XEF,0X5D,0XEF,0XDF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XBA,0XD6,0X30,0X84,0XCF,0X7B,0X10,0X84,0X10,0X84,0X10,0X84,0X10,0X84,
0X10,0X84,0X10,0X84,0XCF,0X7B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XEF,0X7B,0X51,0X8C,
0X30,0X84,0X30,0X84,0X30,0X84,0X30,0X84,0X30,0X84,0X10,0X84,0XEF,0X7B,0X34,0XA5,
0XBA,0XD6,0XBE,0XF7,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,0XBA,0XD6,0X34,0XA5,0XEF,0X7B,
0X10,0X84,0X30,0X84,0X30,0X84,0X30,0X84,0X30,0X84,0X30,0X84,0X51,0X8C,0XEF,0X7B,
0X10,0X84,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X71,0X8C,0X71,0X8C,0X51,0X8C,
0X71,0X8C,0X71,0X8C,0X71,0X8C,0X71,0X8C,0X51,0X8C,0X10,0X84,0X30,0X84,0X71,0X8C,
0XD3,0X9C,0XD3,0X9C,0X92,0X94,0X30,0X84,0X10,0X84,0X51,0X8C,0X71,0X8C,0X71,0X8C,
0X71,0X8C,0X51,0X8C,0X51,0X8C,0X71,0X8C,0X51,0X8C,0X8E,0X73,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XB2,0X94,0X92,0X94,0X92,0X94,0X92,0X94,
0X92,0X94,0X92,0X94,0X92,0X94,0X92,0X94,0X92,0X94,0X71,0X8C,0X71,0X8C,0X71,0X8C,
0X71,0X8C,0X92,0X94,0X92,0X94,0X92,0X94,0X92,0X94,0X92,0X94,0X92,0X94,0X92,0X94,
0X92,0X94,0XB2,0X94,0X8E,0X73,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XAE,0X73,0XF3,0X9C,0XD3,0X9C,0XB2,0X94,0XD3,0X9C,0XD3,0X9C,
0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,
0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XD3,0X9C,0XB2,0X94,0XD3,0X9C,0XF3,0X9C,0XAE,0X73,
0X8E,0X73,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0X8E,0X73,0X14,0XA5,0X14,0XA5,0XF3,0X9C,0XF3,0X9C,0XF3,0X9C,0XF3,0X9C,
0XF3,0X9C,0XF3,0X9C,0XF3,0X9C,0XF3,0X9C,0XF3,0X9C,0XF3,0X9C,0XF3,0X9C,0XF3,0X9C,
0XF3,0X9C,0XF3,0X9C,0X34,0XA5,0XF3,0X9C,0X8E,0X73,0X6D,0X6B,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0X92,0X94,0X75,0XAD,0X55,0XAD,0X34,0XA5,0X34,0XA5,0X34,0XA5,0X34,0XA5,
0X34,0XA5,0X34,0XA5,0X34,0XA5,0X34,0XA5,0X34,0XA5,0X34,0XA5,0X55,0XAD,0X75,0XAD,
0X71,0X8C,0X0C,0X63,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0X4D,0X6B,0X92,0X94,0X55,0XAD,0X96,0XB5,0X96,0XB5,0X75,0XAD,0X75,0XAD,0X75,0XAD,
0X75,0XAD,0X96,0XB5,0X96,0XB5,0X55,0XAD,0X92,0X94,0X4D,0X6B,0XCB,0X5A,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XCB,0X5A,0X4D,0X6B,0X10,0X84,0X92,0X94,0XF3,0X9C,0XF3,0X9C,0X92,0X94,0X10,0X84,
0X4D,0X6B,0XCB,0X5A,0XCB,0X5A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,};const unsigned char switch_on_2[1800] PROGMEM = 
{ /* 0X00,0X10,0X1E,0X00,0X1E,0X00,0X01,0X1B, */
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XC7,0X91,0XAA,0XAA,0X6D,0XBB,0XEF,0XC3,0X10,0XCC,0X10,0XCC,0XEF,0XC3,0X6D,0XBB,
0XAA,0XAA,0XC7,0X91,0XA6,0X91,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XA6,0X99,0X8E,0XC3,0X30,0XCC,0X10,0XCC,
0XEF,0XCB,0XCF,0XCB,0XCF,0XCB,0XCF,0XCB,0XCF,0XCB,0XEF,0XCB,0X10,0XCC,0X30,0XCC,
0X6E,0XC3,0XA6,0X99,0X04,0X89,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XEB,0XBA,0XEF,0XD3,0XAE,0XCB,0X8E,0XC3,0X8E,0XC3,0X8E,0XC3,0X8E,0XC3,
0X8E,0XC3,0X8E,0XC3,0X8E,0XC3,0X8E,0XC3,0X8E,0XC3,0X8E,0XC3,0XAE,0XCB,0XEF,0XD3,
0XCB,0XB2,0X20,0X78,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X78,0X0C,0XC3,0XAE,0XCB,
0X6D,0XC3,0X6D,0XC3,0X6D,0XC3,0X6D,0XC3,0X6D,0XC3,0X6D,0XC3,0X0C,0XC3,0X0C,0XC3,
0X6D,0XC3,0X6D,0XC3,0X6D,0XC3,0X6D,0XC3,0X6D,0XC3,0X6D,0XC3,0XAE,0XCB,0XEB,0XBA,
0X00,0X78,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0X00,0X70,0X49,0XB2,0X8E,0XCB,0X2C,0XC3,0X2C,0XC3,0X2C,0XC3,
0X2C,0XC3,0X2C,0XC3,0X2C,0XC3,0X2C,0XC3,0XB6,0XE5,0X96,0XE5,0X0C,0XC3,0X2C,0XC3,
0X2C,0XC3,0X2C,0XC3,0X2C,0XC3,0X2C,0XC3,0X2C,0XC3,0X8E,0XCB,0X28,0XB2,0X00,0X70,
0X2C,0XBB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XA2,0X90,0X2C,0XCB,0X0C,0XC3,0X0B,0XC3,0X0B,0XC3,0X0C,0XC3,0XEB,0XC2,0XCB,0XC2,
0XCB,0XC2,0X4D,0XCB,0XFF,0XFF,0XDF,0XFF,0X2C,0XC3,0XCB,0XC2,0XCB,0XC2,0XEB,0XC2,
0X0C,0XC3,0X0B,0XC3,0X0B,0XC3,0X0C,0XC3,0X2C,0XCB,0X82,0X90,0X00,0X80,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X80,0X85,0XA9,0X0C,0XCB,
0XCB,0XC2,0XCB,0XC2,0XCB,0XC2,0XAA,0XC2,0X89,0XC2,0X8E,0XCB,0XCB,0XC2,0X0B,0XCB,
0XBE,0XFF,0X9E,0XFF,0XEB,0XC2,0XCB,0XC2,0X8E,0XCB,0X89,0XC2,0XAA,0XC2,0XCB,0XC2,
0XCB,0XC2,0XCB,0XC2,0X0C,0XCB,0X65,0XA9,0X00,0X80,0XC3,0X98,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0X00,0X88,0X00,0X88,0XA6,0XB1,0XCB,0XCA,0X8A,0XC2,0X8A,0XC2,
0X49,0XC2,0X8A,0XC2,0XF7,0XED,0XFF,0XFF,0X96,0XE5,0X69,0XC2,0XBE,0XFF,0X7D,0XFF,
0X49,0XC2,0X96,0XE5,0XFF,0XFF,0XD7,0XE5,0X8A,0XC2,0X69,0XC2,0X8A,0XC2,0X8A,0XC2,
0XCB,0XCA,0X86,0XB1,0X00,0X88,0X00,0X88,0X4D,0XC3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0X00,0X90,0X00,0X90,0X65,0XB1,0X8A,0XCA,0X69,0XC2,0X28,0XC2,0X69,0XC2,0XBA,0XEE,
0XFF,0XFF,0X9E,0XFF,0XCF,0XD3,0X69,0XC2,0XBE,0XFF,0X7D,0XFF,0X28,0XC2,0XEF,0XD3,
0X9E,0XFF,0XFF,0XFF,0X99,0XEE,0X49,0XC2,0X28,0XC2,0X69,0XC2,0X8A,0XCA,0X45,0XA9,
0X00,0X90,0X00,0X90,0XC3,0XA0,0XFF,0XFF,0XFF,0XFF,0X00,0X90,0X00,0X98,0X00,0X90,
0XC3,0XA8,0X49,0XC2,0X28,0XC2,0XC7,0XC1,0XF7,0XED,0XFF,0XFF,0XDB,0XF6,0X8A,0XCA,
0X86,0XB9,0X69,0XC2,0XBE,0XFF,0X7D,0XFF,0X49,0XC2,0XA6,0XB9,0XAA,0XC2,0XDB,0XF6,
0XFF,0XFF,0XB6,0XE5,0XA6,0XC1,0X28,0XC2,0X49,0XC2,0XA2,0XA0,0X00,0X90,0X00,0X98,
0X00,0X90,0XB2,0XDC,0XFF,0XFF,0X00,0X90,0X00,0X98,0X00,0X98,0X20,0X98,0XC7,0XC1,
0XA6,0XC1,0X6D,0XD3,0XFF,0XFF,0X7D,0XFF,0X49,0XC2,0X86,0XC1,0XC7,0XC1,0X28,0XC2,
0XFF,0XFF,0XDF,0XFF,0X08,0XC2,0XC7,0XC1,0X86,0XB9,0X69,0XC2,0X7D,0XFF,0XFF,0XFF,
0X2C,0XD3,0XA6,0XC1,0XA6,0XB9,0X00,0X98,0X00,0X98,0X00,0X98,0X00,0X90,0X0C,0XC3,
0XFF,0XFF,0X00,0X98,0X00,0XA0,0X00,0XA0,0X00,0X98,0X82,0XA8,0X65,0XC1,0XF7,0XED,
0XFF,0XFF,0X30,0XDC,0X24,0XB9,0XC7,0XC1,0XA6,0XC1,0X86,0XC1,0XD2,0XDC,0X92,0XDC,
0X86,0XC1,0XA6,0XC1,0XC7,0XC1,0X04,0XB9,0X71,0XDC,0XFF,0XFF,0X96,0XED,0X65,0XC1,
0X82,0XA8,0X00,0X98,0X00,0XA0,0X00,0XA0,0X00,0X98,0XC7,0XB9,0XFF,0XFF,0X00,0XA0,
0X00,0XA0,0X00,0XA0,0X00,0XA0,0X00,0XA0,0XE3,0XB0,0X7D,0XFF,0XDF,0XFF,0X07,0XC2,
0X45,0XC1,0X86,0XC1,0X85,0XC1,0X85,0XC1,0X04,0XB9,0X04,0XB9,0X85,0XC1,0X86,0XC1,
0X86,0XC1,0X44,0XB9,0X28,0XC2,0XDF,0XFF,0X3C,0XFF,0XC2,0XB0,0X00,0XA0,0X00,0XA0,
0X00,0XA0,0X00,0XA0,0X00,0XA0,0X03,0XB1,0XFF,0XFF,0X00,0XA8,0X00,0XA8,0X00,0XA8,
0X00,0XA8,0X00,0XA0,0XE3,0XB0,0XFF,0XFF,0XFB,0XF6,0X45,0XC1,0X45,0XC1,0X45,0XC1,
0X45,0XC1,0X45,0XC1,0X45,0XC1,0X45,0XC1,0X45,0XC1,0X45,0XC1,0X45,0XC1,0X44,0XC1,
0X45,0XC1,0X3C,0XF7,0XDF,0XFF,0XA2,0XA8,0X00,0XA8,0X00,0XA8,0X00,0XA8,0X00,0XA8,
0X00,0XA8,0X82,0XB0,0X61,0XB0,0X00,0XA8,0X00,0XA8,0X00,0XA8,0X00,0XA8,0X00,0XA8,
0X04,0XB1,0XFF,0XFF,0XBA,0XF6,0X61,0XB0,0XE3,0XB8,0X24,0XC1,0X24,0XC1,0X24,0XC1,
0X24,0XC1,0X24,0XC1,0X24,0XC1,0X24,0XC1,0X24,0XC1,0XE3,0XB8,0X82,0XB0,0XFB,0XF6,
0XFF,0XFF,0XC3,0XB0,0X00,0XA8,0X00,0XA8,0X00,0XA8,0X00,0XA8,0X00,0XA8,0X82,0XB0,
0XFF,0XFF,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X61,0XB0,0X7D,0XFF,
0X9E,0XFF,0X61,0XB0,0X00,0XA8,0X41,0XB0,0X61,0XB8,0X82,0XB8,0XA2,0XB8,0XA2,0XB8,
0X82,0XB8,0X61,0XB8,0X41,0XB0,0X00,0XA8,0X82,0XB0,0XBE,0XFF,0X3C,0XF7,0X20,0XB0,
0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0XC3,0XB8,0XFF,0XFF,0X00,0XB0,
0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X96,0XE5,0XFF,0XFF,0XAA,0XCA,
0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,0X00,0XB0,
0X00,0XB0,0X00,0XA8,0XEB,0XD2,0XFF,0XFF,0X55,0XE5,0X00,0XB0,0X00,0XB0,0X00,0XB0,
0X00,0XB0,0X00,0XB0,0X00,0XB0,0X65,0XC1,0XFF,0XFF,0X00,0XB8,0X00,0XB8,0X00,0XB8,
0X00,0XB8,0X00,0XB8,0X00,0XB0,0X69,0XCA,0XFF,0XFF,0XDB,0XF6,0X41,0XB8,0X00,0XB8,
0X20,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB0,0X61,0XB8,
0XFB,0XF6,0XFF,0XFF,0X28,0XCA,0X00,0XB0,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,
0X00,0XB8,0X28,0XCA,0XFF,0XFF,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,
0X00,0XB8,0X00,0XB8,0XD7,0XED,0XFF,0XFF,0X96,0XED,0X41,0XB8,0X00,0XB8,0X00,0XB8,
0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X61,0XB8,0XD7,0XED,0XFF,0XFF,0X96,0XED,
0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X00,0XB8,0X0C,0XD3,
0XFF,0XFF,0X41,0XC0,0X00,0XC0,0X20,0XC0,0X20,0XC0,0X20,0XC0,0X20,0XC0,0X00,0XC0,
0XA2,0XC0,0XBA,0XF6,0XFF,0XFF,0XBA,0XF6,0XAA,0XD2,0X82,0XC0,0X00,0XC0,0X00,0XC0,
0XA2,0XC0,0XEB,0XD2,0XDB,0XF6,0XFF,0XFF,0X9A,0XF6,0XA2,0XC0,0X00,0XC0,0X20,0XC0,
0X20,0XC0,0X20,0XC0,0X20,0XC0,0X00,0XC0,0X61,0XC0,0X10,0XDC,0XFF,0XFF,0XFF,0XFF,
0X00,0XC0,0X20,0XC0,0X20,0XC0,0X20,0XC0,0X20,0XC0,0X20,0XC0,0X00,0XC0,0XA2,0XC8,
0X96,0XED,0XFF,0XFF,0XFF,0XFF,0XBE,0XFF,0X9A,0XF6,0X9A,0XF6,0XBE,0XFF,0XFF,0XFF,
0XFF,0XFF,0X75,0XED,0XA2,0XC8,0X00,0XC0,0X20,0XC0,0X20,0XC0,0X20,0XC0,0X00,0XC0,
0X20,0XC0,0X00,0XC0,0XA6,0XC9,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X20,0XC8,0X00,0XC8,
0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X20,0XC8,0X00,0XC8,0X00,0XC0,0X69,0XDA,
0X75,0XED,0X5D,0XFF,0XFF,0XFF,0XFF,0XFF,0X7D,0XFF,0X75,0XED,0X69,0XDA,0X00,0XC0,
0X00,0XC8,0X20,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X40,0XC8,
0X2C,0XD3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0XC8,0X00,0XC8,0X00,0XC8,
0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X61,0XD0,
0X24,0XD1,0X24,0XD1,0X61,0XD0,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,
0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0X00,0XC8,0XC6,0XC9,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,
0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,
0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,0X00,0XD0,
0X00,0XD0,0X00,0XD0,0XC3,0XC8,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0X61,0XC8,0X00,0XD8,0X20,0XD0,0X20,0XD0,0X20,0XD0,0X20,0XD0,
0X20,0XD0,0X20,0XD0,0X20,0XD0,0X20,0XD0,0X20,0XD0,0X20,0XD0,0X20,0XD0,0X20,0XD0,
0X20,0XD0,0X20,0XD0,0X20,0XD0,0X20,0XD0,0X20,0XD0,0X20,0XD0,0X00,0XD8,0X82,0XC8,
0XEB,0XCA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0X81,0XC8,0X00,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,
0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,
0X20,0XD8,0X20,0XD8,0X20,0XD8,0X00,0XD8,0X82,0XC8,0X8A,0XCA,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0X00,0XD0,0X00,0XE0,0X20,0XE0,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,
0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XD8,0X20,0XE0,0X00,0XE0,
0X00,0XD0,0XC3,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0X41,0XC8,0X00,0XD8,0X00,0XE0,0X00,0XE0,0X20,0XE0,0X20,0XE0,0X20,0XE0,0X20,0XE0,
0X20,0XE0,0X20,0XE0,0X00,0XE0,0X00,0XE0,0X00,0XD8,0X61,0XC8,0X86,0XC1,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XC3,0XC0,0X41,0XC8,0X20,0XD0,0X20,0XD8,0X20,0XE0,0X20,0XE0,0X20,0XD8,0X20,0XD0,
0X41,0XC8,0XC3,0XC0,0XA6,0XC1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,};const unsigned char switch_off_3[1200] PROGMEM = 
{ /* 0X00,0X10,0X28,0X00,0X0F,0X00,0X01,0X1B, */
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0XF7,
0X9F,0XEF,0X3D,0XDF,0X9B,0XC6,0X7A,0XC6,0XDC,0XCE,0X1D,0XCF,0X1D,0XCF,0X1D,0XCF,
0X1D,0XD7,0X1D,0XD7,0X1D,0XD7,0X1D,0XD7,0X1D,0XD7,0X3C,0XD7,0X3C,0XD7,0X3C,0XD7,
0X3D,0XDF,0X3D,0XDF,0X3D,0XDF,0X3D,0XDF,0X3D,0XDF,0X3D,0XDF,0X3D,0XDF,0X3D,0XDF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,0XD6,0XC5,0XEA,0X9A,0X2B,0XA3,0X4B,0XA3,0X4B,0XA3,
0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,
0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,0X4B,0XA3,
0X4B,0XA3,0X4B,0XA3,0XCD,0XA3,0X12,0XAD,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0XFF,0XDF,0XFF,0XBE,0XF7,0X9E,0XF7,0X9E,0XF7,
0X9E,0XF7,0XDF,0XFF,0XFF,0XFF,0XFF,0XFF,0X34,0XD5,0X65,0XA1,0XA6,0XB1,0XC7,0XB1,
0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,
0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,
0XC7,0XB1,0XC7,0XB1,0XC7,0XB1,0XE6,0XA9,0XAC,0XA3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XDE,0XFF,0XBE,0XF7,0X5D,0XEF,0X3C,0XE7,0X1C,0XE7,0X3C,0XE7,
0X3C,0XE7,0X3C,0XE7,0X9E,0XF7,0XDF,0XFF,0XFF,0XFF,0X50,0XC4,0XA6,0XA9,0X08,0XBA,
0X28,0XBA,0X08,0XB2,0X28,0XBA,0X29,0XC2,0X29,0XC2,0X49,0XC2,0X29,0XBA,0X28,0XB2,
0X28,0XBA,0X49,0XC2,0X49,0XC2,0X49,0XC2,0X49,0XC2,0X28,0XBA,0X49,0XC2,0X49,0XC2,
0X49,0XC2,0X49,0XC2,0X28,0XBA,0X08,0XBA,0XA6,0XB1,0XCC,0XA3,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XBE,0XF7,0X9E,0XF7,0X5D,0XEF,0X1C,0XE7,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,
0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X7D,0XEF,0XDF,0XF7,0X3C,0XEF,0X49,0XAA,0X08,0XB2,
0X28,0XBA,0X28,0XBA,0X49,0XBA,0X85,0X91,0XE3,0X78,0X04,0X79,0XC7,0XA1,0X49,0XC2,
0X08,0XB2,0X24,0X81,0X04,0X79,0X04,0X79,0X04,0X81,0X08,0XB2,0X45,0X89,0X04,0X81,
0X04,0X79,0X04,0X79,0XE8,0XA9,0X49,0XBA,0X28,0XBA,0XE7,0XB1,0X33,0XB5,0XFF,0XFF,
0XFF,0XFF,0X9D,0XF7,0X7D,0XEF,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,
0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X3D,0XEF,0X7D,0XEF,0XDF,0XF7,0XEF,0XBB,0XC7,0XA9,
0X49,0XBA,0X69,0XC2,0X65,0X89,0XE3,0X78,0X08,0XB2,0XE8,0XB1,0XA2,0X70,0XC7,0X99,
0XE8,0XA9,0XA2,0X70,0X07,0XB2,0XE7,0XA9,0XE7,0XA9,0X28,0XB2,0XA2,0X68,0XC7,0XA9,
0XE7,0XB1,0XE7,0XA9,0X28,0XB2,0X49,0XBA,0X49,0XBA,0XE7,0XB9,0XCC,0XB3,0XFF,0XFF,
0XFF,0XFF,0X5D,0XEF,0X3C,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,
0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0XDF,0XF7,0XF3,0XC4,0XC7,0XA9,
0X69,0XBA,0X49,0XBA,0XA3,0X70,0X49,0XC2,0X8A,0XC2,0XAA,0XCA,0XE7,0XA9,0XE3,0X78,
0X08,0XB2,0XE3,0X78,0X69,0XC2,0X49,0XBA,0X69,0XC2,0X49,0XBA,0XC3,0X78,0X28,0XBA,
0X49,0XBA,0X69,0XBA,0X69,0XC2,0X69,0XBA,0X69,0XBA,0X28,0XC2,0X2A,0XB3,0XFF,0XFF,
0XFC,0XDE,0X3C,0XE7,0X3C,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,
0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X3C,0XE7,0X9E,0XEF,0X34,0XC5,0XE7,0XA1,
0X6A,0XBA,0X28,0XB2,0XC3,0X70,0X6A,0XC2,0X6A,0XC2,0X89,0XC2,0X49,0XBA,0XE3,0X78,
0X08,0XB2,0X82,0X70,0X04,0X81,0XE3,0X70,0XA6,0X91,0X89,0XC2,0XA2,0X70,0XE3,0X78,
0XE4,0X78,0X65,0X89,0X8A,0XC2,0X69,0XC2,0X69,0XC2,0X49,0XC2,0XEA,0XBA,0XFF,0XFF,
0XFF,0XFF,0X1C,0XE7,0X3C,0XE7,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,
0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X1C,0XE7,0X7D,0XE7,0XB2,0XBC,0XE8,0XA1,
0X8A,0XC2,0X8A,0XC2,0XC3,0X70,0X69,0XB2,0XAA,0XCA,0XCB,0XD2,0X08,0XA2,0XE3,0X78,
0X28,0XB2,0X03,0X81,0XCB,0XD2,0XAA,0XD2,0XAB,0XCA,0X69,0XBA,0XE3,0X78,0XAA,0XCA,
0XCB,0XD2,0XAA,0XCA,0X8A,0XC2,0X8A,0XC2,0X8A,0XC2,0X69,0XC2,0X4C,0XBB,0XFF,0XFF,
0XFF,0XFF,0XFB,0XE6,0X1B,0XDF,0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,
0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,0X3C,0XE7,0XFB,0XDE,0X3C,0XE7,0X6E,0XA3,0X28,0XAA,
0XAA,0XBA,0XEB,0XCA,0XC7,0XA1,0XE3,0X70,0X28,0XAA,0X07,0XA2,0XA3,0X68,0X28,0XB2,
0X48,0XB2,0XC3,0X70,0XCB,0XC2,0XAA,0XC2,0XAA,0XC2,0X8A,0XBA,0XA2,0X70,0X8A,0XBA,
0XAA,0XC2,0XAA,0XC2,0XAA,0XC2,0XAA,0XC2,0XAA,0XC2,0X49,0XC2,0X8F,0XC4,0XFF,0XFF,
0XFF,0XFF,0XBA,0XD6,0XDB,0XDE,0X3C,0XE7,0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,
0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,0XDB,0XDE,0XFC,0XDE,0XF7,0XC5,0X49,0X92,0X8A,0XB2,
0XAA,0XC2,0XCB,0XC2,0XEC,0XD2,0X29,0XB2,0X45,0X89,0X65,0X89,0X69,0XBA,0X0C,0XD3,
0X8A,0XBA,0X08,0XAA,0XCB,0XC2,0XCB,0XC2,0XCB,0XC2,0XAB,0XC2,0XE8,0XA1,0XAB,0XC2,
0XCB,0XC2,0XCB,0XC2,0XCB,0XC2,0XCB,0XC2,0XAA,0XC2,0XA9,0XBA,0X98,0XDE,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XBA,0XDE,0XBA,0XD6,0X1C,0XE7,0X7D,0XEF,0X9E,0XEF,0X9E,0XF7,
0X7D,0XEF,0X5D,0XEF,0XDB,0XDE,0XBA,0XDE,0XDB,0XD6,0X4D,0X93,0X28,0X9A,0XAA,0XBA,
0XCB,0XC2,0XCB,0XC2,0XCB,0XC2,0X0C,0XD3,0X0C,0XDB,0X2D,0XD3,0X0C,0XCB,0XCB,0XC2,
0XCB,0XCA,0X0C,0XD3,0XCB,0XC2,0XCB,0XC2,0XCB,0XC2,0XCB,0XC2,0X0C,0XD3,0XCB,0XCA,
0XCB,0XC2,0XCB,0XC2,0XCB,0XC2,0X8B,0XC2,0X69,0XBA,0X73,0XCD,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X9A,0XD6,0X9A,0XD6,0XBA,0XD6,0XDB,0XDE,0XDB,0XDE,
0XDB,0XDE,0X9A,0XD6,0XBA,0XD6,0X79,0XCE,0X8E,0X93,0XA6,0X89,0X48,0XAA,0X89,0XBA,
0X89,0XC2,0X8A,0XC2,0X8A,0XC2,0X8A,0XC2,0X8A,0XC2,0X8A,0XC2,0X8A,0XC2,0X8A,0XC2,
0X8A,0XC2,0X89,0XC2,0X89,0XC2,0X89,0XC2,0X89,0XC2,0X89,0XC2,0X89,0XBA,0X8A,0XC2,
0X8A,0XC2,0X8A,0XC2,0X89,0XC2,0X2B,0XC3,0XB4,0XD5,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0XBD,0X79,0XCE,0X79,0XD6,0X99,0XD6,
0X99,0XD6,0X59,0XCE,0XB7,0XB5,0X71,0X8C,0XEE,0X8B,0XF1,0XB4,0X74,0XC5,0XB4,0XD5,
0XB4,0XD5,0XB4,0XD5,0XB4,0XD5,0XB4,0XD5,0XB4,0XD5,0XB4,0XD5,0XB4,0XD5,0XB4,0XD5,
0XB4,0XD5,0XB4,0XD5,0XB4,0XD5,0XD4,0XD5,0XD4,0XD5,0XD4,0XD5,0XB4,0XD5,0XB4,0XD5,
0XB4,0XD5,0XD4,0XD5,0X36,0XDE,0X7C,0XE7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
};const unsigned char switch_on_3[1200] PROGMEM = 
{ /* 0X00,0X10,0X28,0X00,0X0F,0X00,0X01,0X1B, */
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3F,0XD7,
0X3F,0XD7,0X3F,0XDF,0X3F,0XDF,0X3F,0XDF,0X3F,0XDF,0X3F,0XDF,0X3F,0XDF,0X3F,0XDF,
0X3F,0XDF,0X3F,0XDF,0X3F,0XDF,0X3F,0XD7,0X3F,0XD7,0X1F,0XD7,0X1F,0XD7,0X1F,0XD7,
0X1F,0XD7,0X1F,0XD7,0X1F,0XD7,0X1F,0XD7,0XDD,0XCE,0XBC,0XC6,0XFE,0XD6,0X5E,0XDF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XB5,0X92,0XA5,0X70,0XA5,0X70,0XA5,
0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,
0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,0X70,0XA5,
0X70,0XA5,0X70,0XA5,0X70,0X9D,0X0D,0X95,0XB4,0XAD,0X3D,0XE7,0XDF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X70,0X9D,0X68,0X95,0X86,0X9D,0X86,0X9D,0X86,0X9D,
0X86,0X9D,0X86,0X9D,0X86,0X9D,0X86,0X9D,0X86,0X9D,0X86,0X9D,0X86,0X9D,0X86,0X9D,
0X86,0X9D,0X86,0X9D,0X86,0X9D,0X86,0X9D,0X86,0X9D,0XA6,0X9D,0XA6,0X9D,0X86,0X9D,
0X86,0X9D,0X86,0X9D,0X25,0X8D,0X0E,0XB6,0XDE,0XFF,0XFF,0XFF,0XDF,0XFF,0XBE,0XF7,
0XBE,0XF7,0XBE,0XF7,0XDF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0X8F,0XA5,0X86,0X9D,0XC7,0XA5,0XC8,0XA5,0XC8,0XA5,0XC8,0XA5,
0XC8,0XA5,0XE8,0XAD,0XE8,0XAD,0XE9,0XAD,0XE8,0XA5,0XC8,0XA5,0XC8,0XA5,0XE8,0XAD,
0XC8,0XA5,0XC8,0XA5,0XC8,0XA5,0XE8,0XAD,0XA8,0XA5,0XC8,0XA5,0XC8,0XA5,0XC8,0XA5,
0XC8,0XA5,0X66,0X9D,0XCC,0XAD,0XDF,0XFF,0XFF,0XFF,0X9E,0XF7,0X5D,0XEF,0X1C,0XE7,
0X1C,0XE7,0X1C,0XE7,0X3C,0XE7,0X9E,0XF7,0XDF,0XFF,0XDE,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XF5,0XB5,0XA7,0X9D,0XC8,0XA5,0XC8,0XA5,0XC8,0XA5,0XC8,0XA5,0XC8,0XA5,
0XE9,0XAD,0X27,0X8D,0X65,0X7C,0X85,0X7C,0X68,0X9D,0X09,0XAE,0X68,0X9D,0XE6,0X84,
0XE9,0XA5,0XE8,0XA5,0X67,0X9D,0X06,0X8D,0XE8,0XA5,0XC8,0XA5,0XC8,0XA5,0XC8,0XA5,
0XA8,0XA5,0X47,0X95,0X1A,0XE7,0XDF,0XFF,0X7D,0XEF,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,
0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X7D,0XEF,0XBE,0XF7,0XBE,0XF7,0XFF,0XFF,
0XFF,0XFF,0XCE,0XA5,0XC7,0XA5,0XE9,0XAD,0XE9,0XAD,0XE9,0XAD,0XE9,0XAD,0X09,0XAE,
0X06,0X85,0X44,0X74,0XA7,0X9D,0X66,0X95,0X04,0X6C,0X88,0X9D,0X88,0X9D,0XA2,0X53,
0X47,0X95,0X29,0XB6,0X27,0X8D,0X45,0X74,0X09,0XAE,0XE9,0XAD,0XE9,0XAD,0XC8,0XA5,
0X67,0X9D,0XAD,0XAD,0X9E,0XF7,0X7E,0XEF,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,
0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X3C,0XE7,0X7D,0XEF,0X9E,0XF7,0XFF,0XFF,
0XFF,0XFF,0XCB,0XA5,0XE8,0XAD,0XE9,0XAD,0XE9,0XAD,0XE9,0XAD,0X09,0XAE,0XE9,0XA5,
0X44,0X6C,0X29,0XAE,0X4A,0XB6,0X6A,0XBE,0X87,0X95,0X85,0X74,0XA8,0XA5,0XE5,0X7C,
0X64,0X74,0XE9,0XAD,0X87,0X95,0XC5,0X7C,0X29,0XAE,0XE9,0XAD,0XE9,0XAD,0XE9,0XA5,
0X47,0X95,0X32,0XBE,0X9F,0XF7,0X5D,0XEF,0X3C,0XE7,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,
0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X3C,0XE7,0X5D,0XEF,0X7D,0XEF,0XFF,0XFF,
0XDB,0XCE,0XEA,0XAD,0X09,0XAE,0X09,0XAE,0X09,0XAE,0X09,0XAE,0X29,0XAE,0XA8,0XA5,
0X85,0X74,0X2A,0XAE,0XEA,0XAD,0X09,0XAE,0XC8,0XA5,0X85,0X74,0X67,0X9D,0X06,0X8D,
0X88,0X95,0X85,0X74,0X88,0X9D,0XA5,0X7C,0X4A,0XB6,0X09,0XAE,0X09,0XAE,0XE9,0XAD,
0X27,0X95,0X34,0XC6,0X7E,0XEF,0X3C,0XE7,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,
0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5C,0XEF,0XFF,0XFF,
0XFF,0XFF,0X0B,0XAE,0X09,0XB6,0X0A,0XB6,0X0A,0XB6,0X0A,0XB6,0X2A,0XB6,0X09,0XAE,
0X64,0X74,0X0A,0XAE,0X2A,0XB6,0X4A,0XBE,0X88,0X9D,0XA5,0X7C,0XA8,0X9D,0XA6,0X7C,
0XAB,0XC6,0XC5,0X7C,0XA5,0X7C,0XE6,0X84,0X4A,0XB6,0X0A,0XB6,0X0A,0XB6,0XE9,0XAD,
0X27,0X95,0XF3,0XBD,0X3D,0XEF,0X3C,0XE7,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,
0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X3C,0XE7,0X3C,0XE7,0XFF,0XFF,
0XFF,0XFF,0X2E,0XB6,0X09,0XAE,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,0X0A,0XB6,0X6B,0XBE,
0X26,0X8D,0X85,0X74,0XCA,0XAD,0XA9,0XA5,0X44,0X6C,0XC8,0XA5,0X88,0X9D,0X85,0X7C,
0X6B,0XBE,0X49,0XB6,0X43,0X6C,0XE5,0X7C,0X4B,0XBE,0X2A,0XB6,0X0A,0XB6,0X0A,0XAE,
0X48,0X9D,0X4F,0XA5,0X1D,0XE7,0XFB,0XDE,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,
0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X5D,0XEF,0X7D,0XEF,0XFB,0XDE,0X1B,0XE7,0XFF,0XFF,
0XFF,0XFF,0XD6,0XCE,0X08,0XAE,0X2B,0XB6,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,
0X8B,0XBE,0X68,0X95,0XA5,0X7C,0XC6,0X7C,0XE9,0XA5,0X8B,0XC6,0XC9,0XA5,0X67,0X95,
0X4B,0XB6,0X6B,0XBE,0XE9,0XA5,0X87,0X95,0X4B,0XBE,0X2A,0XB6,0X2A,0XB6,0X0A,0XB6,
0X89,0XA5,0XA9,0X8C,0X79,0XCE,0XDB,0XDE,0X1C,0XE7,0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,
0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,0X7D,0XEF,0X1C,0XE7,0XDA,0XDE,0XDA,0XDE,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0X6E,0XBE,0X08,0XAE,0X2B,0XB6,0X2B,0XB6,0X2B,0XB6,0X2A,0XB6,
0X2A,0XB6,0X8B,0XC6,0XAB,0XC6,0XAC,0XC6,0X8B,0XBE,0X2A,0XB6,0X4B,0XBE,0X8B,0XBE,
0X2B,0XB6,0X2B,0XB6,0X6B,0XBE,0X8B,0XBE,0X2A,0XB6,0X2B,0XB6,0X2B,0XB6,0X2A,0XB6,
0XCA,0XAD,0XA8,0X8C,0X10,0X9D,0XDC,0XDE,0XBA,0XD6,0X1C,0XE7,0X7D,0XEF,0X7D,0XEF,
0X7D,0XEF,0X9E,0XF7,0X7D,0XEF,0X1C,0XE7,0XBA,0XD6,0XDA,0XDE,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X6E,0XBE,0X09,0XAE,0X29,0XB6,0X2A,0XB6,0X2A,0XB6,
0X2A,0XB6,0X2A,0XB6,0X0A,0XB6,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,0X0A,0XB6,
0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,0X2A,0XB6,
0XEA,0XAD,0X49,0X9D,0X27,0X7C,0X53,0XA5,0XBB,0XDE,0X9A,0XD6,0XBA,0XD6,0XFB,0XDE,
0X1C,0XE7,0XFB,0XDE,0XBB,0XD6,0X9A,0XD6,0XBA,0XD6,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X37,0XDF,0XB1,0XC6,0X8F,0XBE,0X6F,0XC6,
0X6F,0XC6,0X6F,0XC6,0X6F,0XC6,0X8F,0XC6,0X8F,0XC6,0X8F,0XC6,0X8F,0XC6,0X8F,0XC6,
0X6F,0XC6,0X6F,0XC6,0X6F,0XC6,0X6F,0XC6,0X6F,0XC6,0X6F,0XC6,0X6F,0XC6,0X8F,0XBE,
0X6F,0XBE,0X0E,0XB6,0X4C,0X9D,0X2A,0X7C,0XF2,0X9C,0X59,0XC6,0X9A,0XD6,0X9A,0XD6,
0X9A,0XD6,0X9A,0XD6,0X9A,0XD6,0X59,0XCE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
};
2.程序代码
#include <LCDWIKI_GUI.h>    //Core graphics library
#include <LCDWIKI_SPI.h>    //Hardware-specific library
#include <LCDWIKI_TOUCH.h>  //touch screen library
#include "switch_font.c"//定义TFT屏幕引脚
#define MODEL ILI9341
#define CS A5
#define RST A4
#define CD A3#define MOSI 11
#define SCK 13
#define LED A0
#define MISO 12// 定义TFT屏幕触控引脚
#define TCLK 3
#define TCS 2
#define TDIN 5
#define TDOUT 4
#define TIRQ 6// 定义触控x和y轴后返回值的变量
uint16_t px, py;// 定义颜色
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF// 定义开关变量初始值
boolean switch_flag_1 = true;// 创造LCD对象
LCDWIKI_SPI my_lcd(MODEL, CS, CD, MISO, MOSI, RST, SCK, LED);  //model,cs,dc,miso,mosi,reset,sck,led// 创建触控对象
LCDWIKI_TOUCH my_touch(TCS, TCLK, TDOUT, TDIN, TIRQ);  //tcs,tclk,tdout,tdin,tirq/****************************************************************  @brief    判断px和py触控的x轴和y轴坐标位置是否在矩形范围内*  @param    x1:x轴坐标起点位置;x2:x轴终点位置;y1:y轴起点位置;y2:y轴终点位置;*  @param    px:触控的x轴坐标;py:触控的y轴坐标 *  @note     备注**************************************************************/boolean is_pressed(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t px, int16_t py) {if ((px > x1 && px < x2) && (py > y1 && py < y2)) {return true;} else {return false;}
}/****************************************************************  @brief    显示文本*  @param    *str:文本内容;x,y:文本显示的x和y轴坐标位置;csize:字号;fc:文本颜色;bc:文本背景颜色;mode:文本模式*  @param    *  @note     **************************************************************/
void show_string(uint8_t *str, int16_t x, int16_t y, uint8_t csize, uint16_t fc, uint16_t bc, boolean mode) {my_lcd.Set_Text_Mode(mode);my_lcd.Set_Text_Size(csize);my_lcd.Set_Text_colour(fc);my_lcd.Set_Text_Back_colour(bc);my_lcd.Print_String(str, x, y);
}/****************************************************************  @brief    显示开关图标*  @param    x1, y1, x2, y2设置图标可显示区域的窗口大小*  @param    *color_buf:图标, int16_t buf_size:图标尺寸,*  @note     **************************************************************/
void show_picture(const uint8_t *color_buf, int16_t buf_size, int16_t x1, int16_t y1, int16_t x2, int16_t y2) {my_lcd.Set_Addr_Window(x1, y1, x2, y2);my_lcd.Push_Any_Color(color_buf, buf_size, 1, 1);
}void setup() {// 打开串口Serial.begin(9600);// 创建LCDWIKI_SPI对象my_lcd.Init_LCD();// 设置屏幕显示方向my_lcd.Set_Rotation(0);//创建LCDWIKI_TOUCH对象my_touch.TP_Init(my_lcd.Get_Rotation(), my_lcd.Get_Display_Width(), my_lcd.Get_Display_Height());// 设置触控方向my_touch.TP_Set_Rotation(3);//设置背景颜色my_lcd.Fill_Screen(WHITE);my_lcd.Set_Draw_color(192, 192, 192);my_lcd.Draw_Fast_HLine(0, 3, my_lcd.Get_Display_Width());// 绘制开关背景图形show_picture(switch_on_2, sizeof(switch_on_2) / 2, 5, 5, 34, 34);// 绘制开关文本内容和属性show_string("switch is on ", 60, 11, 2, GREEN, BLACK, 1);
}void loop() {px = 0;py = 0;my_touch.TP_Scan(0);/*my_touch.TP_Get_State() & TP_PRES_DOWN 是一个位运算表达式,它使用了按位与(bitwise AND)操作符 &。这个表达式通常用于检查TP_Get_State()返回的触摸状态值中是否设置了特定的位(bit),这个位由TP_PRES_DOWN定义。TP_PRES_DOWN通常被定义为类似0x01、0x02、0x04、0x08、0x10等的值,这些值分别对应二进制中的0001、0010、0100、1000等。这些值只有一个位是1,其余位都是0。这样,当使用按位与操作符时,只有TP_Get_State()返回的值的对应位也是1时,结果才不会是0。如果没有这个判断,px = my_touch.x;会不断的获取坐标值,也就是说没有按压屏幕也会一直输出坐标值*/if (my_touch.TP_Get_State() & TP_PRES_DOWN) {// 获取触控后x、y轴坐标px = my_touch.x;py = my_touch.y;Serial.print("触屏X轴坐标=");Serial.println(px);Serial.print("触屏Y轴坐标=");Serial.println(py);}// 判断点击的位置如果在该按钮的范围内,则进入。if (is_pressed(5, 5, 34, 34, px, py)) {// 判断当前开关状态为true则进入if,否则进入elseif (switch_flag_1) {// 显示关闭按钮图标show_picture(switch_off_2, sizeof(switch_off_2) / 2, 5, 5, 34, 34);// 设置颜色my_lcd.Set_Draw_color(WHITE);/****************************************************************  @brief    绘制一个矩形框,该函数内部调用了Fill_Rect函数,该函数才是执行绘制矩形框函数。它从Set_Draw_color函数获取矩形框背景色*  @param    x1,y1,x2,y2绘制矩形框x轴和y轴启动和终点*  @param    *  @note     **************************************************************/my_lcd.Fill_Rectangle(60, 11, 216, 27);// 显示关闭文本show_string("switch is off ", 60, 11, 2, RED, WHITE, 1);// 修改开关全局状态为关闭switch_flag_1 = false;} else {show_picture(switch_on_2, sizeof(switch_on_2) / 2, 5, 5, 34, 34);my_lcd.Set_Draw_color(WHITE);my_lcd.Fill_Rectangle(60, 11, 216, 27);show_string("switch is on ", 60, 11, 2, GREEN, BLACK, 1);switch_flag_1 = true;}delay(100);}
}

3.2.实现思路

触控屏幕实现开关状态变化在思路上分成了两个支线,一条线是点亮屏幕后显示的初始化内容,另一个条线是点击屏幕后显示的内容。

1.初始化状态
在初始化状态需要显示两个类型的内容分别是文本开关图标

2.点击后状态
当点击屏幕后执行流程如下

  1. 首先判断屏幕是否被点击
  2. 判断点击屏幕x和y轴坐标值是否在开关按钮范围内
  3. 展示关闭按钮文本和关闭按钮图标

3.3.实现代码

1.初始化状态

封装显示文本函数

/****************************************************************  @brief    显示文本*  @param    *str:文本内容;x,y:文本显示的x和y轴坐标位置;csize:字号;fc:文本颜色;bc:文本背景颜色;mode:文本模式*  @param    *  @note     **************************************************************/
void show_string(uint8_t *str, int16_t x, int16_t y, uint8_t csize, uint16_t fc, uint16_t bc, boolean mode) {my_lcd.Set_Text_Mode(mode);my_lcd.Set_Text_Size(csize);my_lcd.Set_Text_colour(fc);my_lcd.Set_Text_Back_colour(bc);my_lcd.Print_String(str, x, y);
}

封装显示图标函数

/****************************************************************  @brief    显示开关图标*  @param    x1, y1, x2, y2设置图标可显示区域的窗口大小*  @param    *color_buf:图标, int16_t buf_size:图标尺寸,*  @note     **************************************************************/
void show_picture(const uint8_t *color_buf, int16_t buf_size, int16_t x1, int16_t y1, int16_t x2, int16_t y2) {my_lcd.Set_Addr_Window(x1, y1, x2, y2);my_lcd.Push_Any_Color(color_buf, buf_size, 1, 1);
}
2.点击后状态

1.获取屏幕点击的坐标

  /*my_touch.TP_Get_State() & TP_PRES_DOWN 是一个位运算表达式,它使用了按位与(bitwise AND)操作符 &。这个表达式通常用于检查TP_Get_State()返回的触摸状态值中是否设置了特定的位(bit),这个位由TP_PRES_DOWN定义。TP_PRES_DOWN通常被定义为类似0x01、0x02、0x04、0x08、0x10等的值,这些值分别对应二进制中的0001、0010、0100、1000等。这些值只有一个位是1,其余位都是0。这样,当使用按位与操作符时,只有TP_Get_State()返回的值的对应位也是1时,结果才不会是0。如果没有这个判断,px = my_touch.x;会不断的获取坐标值,也就是说没有按压屏幕也会一直输出坐标值*/if (my_touch.TP_Get_State() & TP_PRES_DOWN) {// 获取触控后x、y轴坐标px = my_touch.x;py = my_touch.y;Serial.print("触屏X轴坐标=");Serial.println(px);Serial.print("触屏Y轴坐标=");Serial.println(py);}

2.封装判断点击屏幕x和y轴坐标值是否在开关按钮范围内函数

/****************************************************************  @brief    判断px和py触控的x轴和y轴坐标位置是否在矩形范围内*  @param    x1:x轴坐标起点位置;x2:x轴终点位置;y1:y轴起点位置;y2:y轴终点位置;*  @param    px:触控的x轴坐标;py:触控的y轴坐标 *  @note     备注**************************************************************/boolean is_pressed(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t px, int16_t py) {if ((px > x1 && px < x2) && (py > y1 && py < y2)) {return true;} else {return false;}
}

3.改变文本和图标状态

if (is_pressed(5, 5, 34, 34, px, py)) {// 判断当前开关状态为true则进入if,否则进入elseif (switch_flag_1) {// 显示关闭按钮图标show_picture(switch_off_2, sizeof(switch_off_2) / 2, 5, 5, 34, 34);// 设置颜色my_lcd.Set_Draw_color(WHITE);/****************************************************************  @brief    绘制一个矩形框,该函数内部调用了Fill_Rect函数,该函数才是执行绘制矩形框函数。它从Set_Draw_color函数获取矩形框背景色*  @param    x1,y1,x2,y2绘制矩形框x轴和y轴启动和终点*  @param    *  @note     **************************************************************/my_lcd.Fill_Rectangle(60, 11, 216, 27);// 显示关闭文本show_string("switch is off ", 60, 11, 2, RED, WHITE, 1);// 修改开关全局状态为关闭switch_flag_1 = false;} else {show_picture(switch_on_2, sizeof(switch_on_2) / 2, 5, 5, 34, 34);my_lcd.Set_Draw_color(WHITE);my_lcd.Fill_Rectangle(60, 11, 216, 27);show_string("switch is on ", 60, 11, 2, GREEN, BLACK, 1);switch_flag_1 = true;}

3.4.实验结果

初始状态屏幕显示打开状态
在这里插入图片描述

点击屏幕显示关闭状态
在这里插入图片描述

3.5.其他图案开关

学会了触控屏幕改变开关状态后,下面增加了几个开关图标的样式,完整代码如下。

#include <LCDWIKI_GUI.h>    //Core graphics library
#include <LCDWIKI_SPI.h>    //Hardware-specific library
#include <LCDWIKI_TOUCH.h>  //touch screen library
#include "switch_font.c"//定义TFT屏幕引脚
#define MODEL ILI9341
#define CS A5
#define RST A4
#define CD A3#define MOSI 11
#define SCK 13
#define LED A0
#define MISO 12// 定义TFT屏幕触控引脚
#define TCLK 3
#define TCS 2
#define TDIN 5
#define TDOUT 4
#define TIRQ 6// 定义触控x和y轴后返回值的变量
uint16_t px, py;// 定义颜色
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF// 定义开关变量初始值
boolean switch_flag_1 = true, switch_flag_2 = true, switch_flag_3 = true, switch_flag_4 = true, switch_flag_5 = true, switch_flag_6 = true;// 创造LCD对象
LCDWIKI_SPI my_lcd(MODEL, CS, CD, MISO, MOSI, RST, SCK, LED);  //model,cs,dc,miso,mosi,reset,sck,led// 创建触控对象
LCDWIKI_TOUCH my_touch(TCS, TCLK, TDOUT, TDIN, TIRQ);  //tcs,tclk,tdout,tdin,tirq/****************************************************************  @brief    判断px和py触控的x轴和y轴坐标位置是否在矩形范围内*  @param    x1:x轴坐标起点位置;x2:x轴终点位置;y1:y轴起点位置;y2:y轴终点位置;*  @param    px:触控的x轴坐标;py:触控的y轴坐标 *  @note     备注**************************************************************/boolean is_pressed(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t px, int16_t py) {if ((px > x1 && px < x2) && (py > y1 && py < y2)) {return true;} else {return false;}
}/****************************************************************  @brief    显示文本*  @param    *str:文本内容;x,y:文本显示的x和y轴坐标位置;csize:字号;fc:文本颜色;bc:文本背景颜色;mode:文本模式*  @param    *  @note     **************************************************************/
void show_string(uint8_t *str, int16_t x, int16_t y, uint8_t csize, uint16_t fc, uint16_t bc, boolean mode) {my_lcd.Set_Text_Mode(mode);my_lcd.Set_Text_Size(csize);my_lcd.Set_Text_colour(fc);my_lcd.Set_Text_Back_colour(bc);my_lcd.Print_String(str, x, y);
}/****************************************************************  @brief    显示开关图标*  @param    x1, y1, x2, y2设置图标可显示区域的窗口大小*  @param    *color_buf:图标, int16_t buf_size:图标尺寸,*  @note     **************************************************************/
void show_picture(const uint8_t *color_buf, int16_t buf_size, int16_t x1, int16_t y1, int16_t x2, int16_t y2) {my_lcd.Set_Addr_Window(x1, y1, x2, y2);my_lcd.Push_Any_Color(color_buf, buf_size, 1, 1);
}void setup() {// 打开串口Serial.begin(9600);// 创建LCDWIKI_SPI对象my_lcd.Init_LCD();// 设置屏幕显示方向my_lcd.Set_Rotation(0);//创建LCDWIKI_TOUCH对象my_touch.TP_Init(my_lcd.Get_Rotation(), my_lcd.Get_Display_Width(), my_lcd.Get_Display_Height());// 设置触控方向my_touch.TP_Set_Rotation(3);//设置背景颜色my_lcd.Fill_Screen(WHITE);my_lcd.Set_Draw_color(192, 192, 192);my_lcd.Draw_Fast_HLine(0, 3, my_lcd.Get_Display_Width());// 绘制开关背景图形show_picture(switch_on_2, sizeof(switch_on_2) / 2, 5, 5, 34, 34);// 绘制开关文本内容和属性show_string("switch is on ", 60, 11, 2, GREEN, BLACK, 1);my_lcd.Draw_Fast_HLine(0, 57, my_lcd.Get_Display_Width());show_string("wifi setting", 5, 40, 2, BLACK, BLACK, 1);show_picture(switch_on_3, sizeof(switch_on_3) / 2, 195, 40, 234, 54);my_lcd.Draw_Fast_HLine(0, 57, my_lcd.Get_Display_Width());show_string("bt setting", 5, 60, 2, BLACK, BLACK, 1);show_picture(switch_on_3, sizeof(switch_on_3) / 2, 195, 60, 234, 74);my_lcd.Draw_Fast_HLine(0, 77, my_lcd.Get_Display_Width());show_string("auto time", 5, 80, 2, BLACK, BLACK, 1);show_picture(switch_on_1, sizeof(switch_on_1) / 2, 204, 80, 218, 94);my_lcd.Draw_Fast_HLine(0, 97, my_lcd.Get_Display_Width());show_string("enable lock", 5, 100, 2, BLACK, BLACK, 1);show_picture(switch_on_1, sizeof(switch_on_1) / 2, 204, 100, 218, 114);
}void loop() {px = 0;py = 0;my_touch.TP_Scan(0);/*my_touch.TP_Get_State() & TP_PRES_DOWN 是一个位运算表达式,它使用了按位与(bitwise AND)操作符 &。这个表达式通常用于检查TP_Get_State()返回的触摸状态值中是否设置了特定的位(bit),这个位由TP_PRES_DOWN定义。TP_PRES_DOWN通常被定义为类似0x01、0x02、0x04、0x08、0x10等的值,这些值分别对应二进制中的0001、0010、0100、1000等。这些值只有一个位是1,其余位都是0。这样,当使用按位与操作符时,只有TP_Get_State()返回的值的对应位也是1时,结果才不会是0。如果没有这个判断,px = my_touch.x;会不断的获取坐标值,也就是说没有按压屏幕也会一直输出坐标值*/if (my_touch.TP_Get_State() & TP_PRES_DOWN) {// 获取触控后x、y轴坐标px = my_touch.x;py = my_touch.y;Serial.print("触屏X轴坐标=");Serial.println(px);Serial.print("触屏Y轴坐标=");Serial.println(py);}// 判断点击的位置如果在该按钮的范围内,则进入。if (is_pressed(5, 5, 34, 34, px, py)) {// 判断当前开关状态为true则进入if,否则进入elseif (switch_flag_1) {// 显示关闭按钮图标show_picture(switch_off_2, sizeof(switch_off_2) / 2, 5, 5, 34, 34);// 设置颜色my_lcd.Set_Draw_color(WHITE);/****************************************************************  @brief    绘制一个矩形框,该函数内部调用了Fill_Rect函数,该函数才是执行绘制矩形框函数。它从Set_Draw_color函数获取矩形框背景色*  @param    x1,y1,x2,y2绘制矩形框x轴和y轴启动和终点*  @param    *  @note     **************************************************************/my_lcd.Fill_Rectangle(60, 11, 216, 27);// 显示关闭文本show_string("switch is off ", 60, 11, 2, RED, WHITE, 1);// 修改开关全局状态为关闭switch_flag_1 = false;} else {show_picture(switch_on_2, sizeof(switch_on_2) / 2, 5, 5, 34, 34);my_lcd.Set_Draw_color(WHITE);my_lcd.Fill_Rectangle(60, 11, 216, 27);show_string("switch is on ", 60, 11, 2, GREEN, BLACK, 1);switch_flag_1 = true;}delay(100);}if (is_pressed(195, 40, 234, 54, px, py)) {if (switch_flag_2) {show_picture(switch_off_3, sizeof(switch_off_3) / 2, 195, 40, 234, 54);switch_flag_2 = false;} else {show_picture(switch_on_3, sizeof(switch_on_3) / 2, 195, 40, 234, 54);switch_flag_2 = true;}delay(100);}if (is_pressed(195, 60, 234, 74, px, py)) {if (switch_flag_3) {show_picture(switch_off_3, sizeof(switch_off_3) / 2, 195, 60, 234, 74);switch_flag_3 = false;} else {show_picture(switch_on_3, sizeof(switch_on_3) / 2, 195, 60, 234, 74);switch_flag_3 = true;}delay(100);}if (is_pressed(205, 81, 217, 93, px, py)) {if (switch_flag_4) {show_picture(switch_off_1, sizeof(switch_off_1) / 2, 204, 80, 218, 94);switch_flag_4 = false;} else {show_picture(switch_on_1, sizeof(switch_on_1) / 2, 204, 80, 218, 94);switch_flag_4 = true;}delay(100);}if (is_pressed(205, 101, 217, 113, px, py)) {if (switch_flag_5) {show_picture(switch_off_1, sizeof(switch_off_1) / 2, 204, 100, 218, 114);switch_flag_5 = false;} else {show_picture(switch_on_1, sizeof(switch_on_1) / 2, 204, 100, 218, 114);switch_flag_5 = true;}delay(100);}
}

显示效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/700857.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能EDM邮件群发工具哪个好?

企业之间的竞争日益激烈&#xff0c;如何高效、精准地触达目标客户&#xff0c;成为每个市场战略家必须面对的挑战。在此背景下&#xff0c;云衔科技凭借其前沿的AI技术和深厚的行业洞察&#xff0c;匠心推出了全方位一站式智能EDM邮件营销服务平台&#xff0c;重新定义了邮件营…

Git使用(3):版本管理

一、查看历史 编写一个java类进行测试 选择Git -> Show Git Log查看日志。 第一次修改推送到远程仓库了&#xff0c;所以有origin&#xff08;远程仓库地址&#xff09;&#xff0c;第二次修改只提交到本地仓库所以没有。 二、版本回退 1、本地回退 在要回退的版本上右键&a…

Nginx的正向代理与反向代理

你好呀&#xff0c;我是赵兴晨&#xff0c;文科程序员。 今天&#xff0c;我们将一起了解什么是Nginx的正向代理&#xff1f;什么是Nginx的反向代理&#xff1f;并实际动手实践。 以下内容都是满满的干货&#xff0c;绝对不容错过。我建议先收藏这篇文章&#xff0c;然后找一…

吴恩达深度学习笔记:优化算法 (Optimization algorithms)2.1-2.2

目录 第二门课: 改善深层神经网络&#xff1a;超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第二周&#xff1a;优化算法 (Optimization algorithms)2.1 Mini-batch 梯度下降&#xff08;Mini-b…

【科研】常用的实验结果评价指标(2) —— MAE 是什么? !

了解MAE 提示&#xff1a;先说概念&#xff0c;后续再陆续上代码 文章目录 了解MAE前言一、MAE 基本概念1. MAE 是什么&#xff1f;2. MAE 的起源3. MAE 的计算公式 二、MAE的适用场景是什么&#xff1f;三、MAE 的劣势&#xff0c;或 不适用于那些场景或者数据&#xff1f;四、…

一个小调整,竟然让交换机、路由器的CPU占用率降低了50%

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 下午好&#xff0c;我的网工朋友。 在信息时代下&#xff0c;不仅仅在网络工程领域&#xff0c;高CPU占用率都是一个非常常见的问题&#xff0c;…

JavaScript中带日期的操作

当我们把日期转换为Number类型的时候&#xff0c;就会变成时间戳&#xff08;毫秒&#xff09; const future new Date(2037, 10, 19, 15, 23); console.log(Number(future)); // console.log(future); //与上行代码等效● 所以我们就可以利用时间戳去做点东西&#xff0c;例…

Spring整合其他技术

文章目录 Spring整合mybatis思路分析Mybatis程序核心对象分析整合Mybatis 代码实现 Spring整合Junit修改成警告 Spring整合mybatis 思路分析 Mybatis程序核心对象分析 上面图片是mybatis的代码&#xff0c;上述有三个对象&#xff0c;分别是sqlSessionFactory&#xff0c;sqlS…

7nm项目之模块实现——02 Placeopt分析

一、Log需要看什么 1.log最后的error 注意&#xff1a;warnning暂时可以不用过于关注&#xff0c;如果特别的warning出现问题&#xff0c;在其他方面也会体现 2.run time 在大型项目实际开发中&#xff0c;周期一般较长&#xff0c;可能几天过这几周&#xff0c;所以这就需要…

Linux - make与makefile

文章目录 什么是make和makefile如何使用依赖关系 和 依赖方法伪目标 写个程序-进度条换行和回车的区别 什么是make和makefile make是一个命令 makefile是一个文件 这就是make和makefile的本质 make和 ll , pwd ,su 一样都是命令 makefile和 test &#xff0c; test.c 一样都是…

【408精华知识】计算机系统结构

感觉教材和网络上对于计算机系统的结构描述都比较模糊&#xff0c;我自己对其进行了总结&#xff0c;并且画出图&#xff0c;不过因为学习的还是不够深入和全面&#xff0c;有的地方肯定是有问题的&#xff0c;烦请大家批评指正&#xff0c;我会进行修改~ 文章目录 零、结构图总…

比大小(打擂台)(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明比较大小函数max; int max(int a, int b);int main() {//初始化变量值&#xff1b;int i, n, m, a[10];//填充数组&#xff1b;printf("请输入10个数…