驴友花雕 发表于 2021-9-26 13:32:14

【Arduino】168种传感器系列实验(181)---1.3寸OLED液晶屏模块

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百八十一:1.3寸OLED液晶屏I2C IIC通信 4针模块 1106/1306驱动 128*64像素





驴友花雕 发表于 2021-9-27 11:41:08

本帖最后由 驴友花雕 于 2021-9-27 11:48 编辑

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之六:动画:一匹走路的狼

实验开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之六:动画:一匹走路的狼
实验接线:
oled模块    Ardunio Uno
GND---------GND接地线
VCC---------5V 接电源
SDA---------D8
SCL ------- D9
*/

#include <ss_oled.h>

// Define these pins to be -1,-1 if you're using the default hardware I2C interface
// For bit bang I2C, define them to the port number and bit of the pins you choose (on AVR)
// or just the pin numbers on other MCUs
// My demo was run on an Arduino Pro Mini (ATmega328) with SDA connected to D8 and SCL to D9
// These translate to PORT B, bit 0 (0xB0) and PORT B, bit 1 (0xB1)
//#define SDA_PIN 0xb0
//#define SCL_PIN 0xb1

// These pin numbers are for the M5Stack Atom
#define SDA_PIN 8
#define SCL_PIN 9
// Set this to -1 to disable or the GPIO pin number connected to the reset
// line of your display if it requires an external reset
#define RESET_PIN -1
// let ss_oled figure out the display address
#define OLED_ADDR -1
// don't rotate the display
#define FLIP180 0
// don't invert the display
#define INVERT 0
// Bit-Bang the I2C bus
// Set this to 1 to use the wire library
#define USE_HW_I2C 0

// Most people have the 0.96" 128x64 SSD1306 OLED display
// Leave this line alone if you do.
// For the Pimoroni 128x128, comment out this line (or delete it)
#define OLED128x64 1

// 128x64 animation sequence
#ifdef OLED128x64
#define OLED_TYPE OLED_128x64
const byte bAnimation[] PROGMEM = {
0xe5,0x00,0x48,0x80,0xff,0x00,0xf9,0x00,0x40,0x0f,0xc0,0xe0,0xf0,0xfe,0xfe,0xff,
0xfe,0xfc,0xf8,0xf0,0xf0,0xe0,0xe0,0xc0,0x80,0x80,0xff,0x00,0xea,0x00,0x58,0x04,
0x0e,0x1e,0xc4,0x1f,0x50,0x3f,0x7f,0xcb,0xff,0x70,0xfe,0xf8,0xf0,0xc0,0x80,0x80,
0xff,0x00,0xed,0x00,0x48,0x01,0xdf,0xff,0xc4,0xfe,0xc2,0xff,0xc3,0x7f,0xce,0xff,
0x40,0x07,0x7f,0x7f,0x3f,0x3f,0x1f,0x0f,0x07,0x03,0xfd,0x00,0x50,0x03,0x07,0xcd,
0xff,0xc6,0x7f,0xcf,0xff,0x50,0xfc,0xe0,0xc5,0x00,0xc7,0x01,0xff,0x00,0xc8,0x00,
0x48,0xe0,0xc2,0xff,0x40,0x08,0x7f,0x1f,0x0f,0x03,0x00,0x00,0x01,0x0f,0x7f,0xc2,
0xff,0xc6,0x00,0x50,0x07,0x3f,0xc3,0xff,0x40,0x10,0x1f,0x07,0x03,0x03,0x07,0x0f,
0x0f,0x1f,0x1f,0x3f,0x3f,0x7f,0x7f,0xfc,0xf8,0xf0,0xe0,0xff,0x00,0xcc,0x00,0x40,
0x08,0x80,0x80,0xc0,0xf8,0xfe,0x7f,0x1f,0x07,0x01,0xc6,0x00,0xc1,0x80,0xc2,0xff,
0xc4,0x00,0x40,0x07,0x80,0x80,0xc0,0xf0,0xff,0xff,0x3f,0x0f,0xcc,0x00,0x68,0x01,
0x8f,0xff,0xff,0xf0,0xff,0x00,0xca,0x00,0x68,0x01,0x01,0x03,0x03,0x01,0xcb,0x00,
0xc3,0x01,0xc5,0x00,0xc4,0x01,0xcf,0x00,0xc3,0x03,0x48,0x01,0xe8,0x00,0x00,0x25,
0x48,0x00,0x00,0x79,0x4a,0x80,0x51,0xf8,0xff,0x4f,0xff,0x48,0xc0,0x00,0x6b,0x48,
0x00,0x00,0x14,0x49,0xfc,0x48,0xe0,0x00,0x70,0x48,0x00,0x00,0x1e,0x4d,0xfe,0x5a,
0xfe,0xfe,0xbe,0x95,0xff,0xc1,0xfe,0x00,0x07,0x40,0x08,0xff,0xff,0x7f,0x7f,0x3f,
0x1f,0x0f,0x06,0x02,0x00,0x3c,0x49,0x01,0x48,0xcf,0x00,0x0b,0x48,0x7f,0x00,0x1c,
0xc1,0x01,0x00,0x07,0x48,0x01,0x00,0x47,0x52,0x00,0xf0,0x54,0xff,0x3f,0x59,0x7f,
0xff,0xff,0x57,0x03,0x00,0x5b,0x00,0x0f,0x7f,0x5b,0xff,0x0f,0x07,0x49,0x1f,0x4b,
0x3f,0x68,0xfe,0xf8,0xe0,0xe0,0x00,0x00,0x4c,0x49,0x00,0x61,0x80,0xe0,0xf8,0xff,
0x57,0x0f,0x03,0x51,0x1f,0xff,0x55,0xf8,0x00,0x40,0x09,0x00,0x00,0x80,0x80,0xe0,
0xfd,0x7f,0x3f,0x0f,0x02,0x00,0x0a,0x52,0x03,0xff,0x48,0x00,0x00,0x4a,0x51,0x00,
0x03,0x49,0x01,0x48,0x01,0x00,0x0d,0x4e,0x00,0x4c,0x00,0x48,0x01,0x00,0x0e,0x68,
0x00,0x01,0x01,0x00,0x00,0x00,0x28,0x00,0xa1,0x4d,0xf0,0x49,0xfe,0x49,0xf8,0x49,
0xf0,0x48,0xe0,0x00,0x6d,0x5c,0x06,0x0e,0x0f,0x58,0x1f,0x1f,0x3f,0x00,0x09,0x4a,
0xfe,0x4a,0xf0,0x48,0x00,0x00,0x6e,0x48,0x1f,0x00,0x1c,0x4c,0xfe,0x4b,0xfc,0xc2,
0x7e,0xc6,0xfe,0x10,0xc2,0xfe,0x20,0xc2,0xfe,0x70,0x7e,0x7e,0x3e,0x3e,0x1e,0x0e,
0x00,0x3e,0x50,0x03,0x87,0x00,0x12,0x50,0x3f,0x7f,0x00,0x0e,0x53,0xf8,0x00,0x48,
0x01,0x00,0x0a,0xc1,0x01,0x00,0x46,0x4b,0xe0,0x49,0x7f,0x49,0x01,0x91,0xff,0x58,
0x3f,0x07,0x00,0x00,0x08,0x5b,0x03,0x1f,0x7f,0x79,0xff,0x0f,0x0f,0x1f,0x1f,0x3f,
0x3f,0x78,0x7f,0x7f,0xfc,0xf0,0xe0,0x00,0x00,0x00,0x4e,0x49,0x00,0x7c,0x80,0xe0,
0xfc,0xff,0x3f,0x0f,0x01,0x70,0x0f,0x3f,0xff,0xf0,0xe0,0x00,0x00,0x07,0x40,0x07,
0x00,0x00,0x80,0xe0,0xff,0x7f,0x1f,0x07,0x00,0x09,0x68,0xff,0xff,0x7f,0x00,0x00,
0x00,0x4c,0x53,0x00,0x01,0x48,0x01,0x00,0x09,0x48,0x00,0x00,0x09,0x70,0x00,0x03,
0x03,0x03,0x03,0x01,0x00,0x0d,0x58,0x01,0x00,0x00,0x00,0x2a,0x00,0x26,0x48,0x80,
0x00,0x79,0x4a,0xe0,0x4b,0xfc,0x49,0xfc,0x49,0xf8,0x49,0xf0,0x50,0xe0,0xc0,0x00,
0x6b,0x4a,0x02,0x78,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x1f,0x00,0x09,0x70,0xff,0xfe,
0xfc,0xf8,0xe0,0xc0,0x00,0x6f,0x48,0x0f,0x00,0x13,0xac,0xfe,0x4c,0xff,0x4b,0xfe,
0x48,0x3e,0x00,0x0d,0xa3,0xfe,0x49,0xfe,0x4a,0x7e,0x50,0x1e,0x0c,0x00,0x3c,0x49,
0x00,0x48,0x07,0x00,0x0a,0x4f,0x7f,0x48,0x7f,0x00,0x0e,0x93,0x00,0x4a,0x01,0xca,
0x03,0x09,0x01,0x00,0x45,0x52,0x00,0xf8,0x62,0xff,0x1f,0x03,0xe1,0x58,0x7f,0x1f,
0x03,0x00,0x0b,0x48,0x3f,0x00,0x07,0x4a,0x1f,0x68,0x7e,0xf8,0xf0,0xe0,0x00,0x00,
0x53,0x73,0x80,0xe0,0xfe,0x7f,0x1f,0x07,0x70,0x1f,0xff,0xff,0xf0,0x00,0x00,0x00,
0x0a,0x7f,0x00,0x80,0xc0,0xff,0xff,0x3f,0x06,0x51,0x7f,0xff,0xc1,0x00,0x00,0x4f,
0x4c,0x00,0x48,0x01,0x00,0x07,0x60,0x01,0x01,0x00,0x00,0x00,0x08,0x52,0x00,0x01,
0x58,0x03,0x03,0x01,0x00,0x0b,0x48,0x00,0x00,0x2c,0x00,0x25,0x50,0x80,0xc0,0x00,
0x79,0x4d,0xf0,0x55,0xff,0xfe,0x49,0xc0,0x48,0x80,0x00,0x6b,0x4f,0x06,0x48,0x3f,
0x00,0x0e,0x48,0x80,0x00,0x6f,0x48,0x01,0x00,0x12,0x4a,0xfe,0xc2,0xff,0x00,0x08,
0x4b,0xfc,0x49,0x7e,0x4a,0xfe,0xd3,0xfc,0x58,0x7c,0x3c,0x1c,0x00,0x53,0x50,0x3f,
0xff,0x00,0x11,0x49,0x01,0x91,0x03,0xc8,0x07,0x0c,0x03,0x03,0x01,0x01,0x00,0x44,
0x4b,0xf0,0xc2,0xff,0x68,0x7f,0x1f,0x07,0x01,0x00,0x00,0x09,0x4e,0x07,0x40,0x0a,
0xff,0x3f,0x3f,0x7f,0x7f,0xff,0xff,0xf0,0x60,0x00,0x00,0x00,0x52,0x4a,0x00,0x70,
0xc0,0xf8,0xff,0xff,0x1f,0x1f,0xc2,0xff,0x58,0xc0,0x00,0x00,0x00,0x0d,0x59,0x00,
0x80,0xc3,0x5b,0xff,0x7f,0x06,0x70,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x52,0x74,
0x00,0x03,0x03,0x03,0x03,0x01,0x68,0x01,0x01,0x01,0x00,0x00,0x00,0x0b,0x53,0x00,
0x02,0x96,0x03,0xc1,0x01,0x00,0x30,0x00,0x27,0x48,0x80,0x00,0x76,0x53,0x80,0xc0,
0x4c,0xff,0x49,0xfc,0x4a,0xf8,0x48,0xe0,0x00,0x6c,0x5c,0x00,0x07,0x07,0x49,0x07,
0x50,0x1f,0x3f,0x00,0x09,0x68,0xff,0xfe,0xfc,0xf0,0xc0,0x00,0x6f,0x50,0x00,0x7f,
0x00,0x10,0x4b,0xfe,0x4f,0xfe,0x92,0xff,0x54,0xfe,0xfc,0x4a,0x7e,0xc3,0xfe,0x00,
0x51,0x5f,0x01,0x03,0x07,0x9f,0x7f,0x49,0x3f,0x48,0x3f,0x00,0x0b,0x54,0x3f,0x07,
0x49,0x00,0x91,0x01,0x9c,0x03,0xc1,0x03,0x00,0x48,0x49,0x80,0x4a,0xfe,0x78,0x7f,
0x0f,0x07,0x03,0x01,0x00,0x00,0x00,0x0a,0x64,0x01,0x07,0x1f,0x7f,0xc3,0xff,0x48,
0xe0,0xc2,0x00,0x00,0x55,0x49,0x00,0x52,0x80,0xe7,0x70,0xff,0xc7,0x00,0x00,0x00,
0x00,0x00,0x10,0x59,0x00,0x81,0xc7,0xc2,0xff,0x68,0x1f,0x07,0x01,0x00,0x00,0x00,
0x56,0x4a,0x01,0x4d,0x01,0xc2,0x00,0x00,0x0e,0x76,0x00,0x00,0x01,0x01,0x01,0x01,
0xc1,0x00,0x00,0x30,0x00,0x27,0x48,0x00,0x00,0x79,0x4e,0xf8,0x4c,0xf8,0x48,0xc0,
0x00,0x6c,0x4a,0x02,0x49,0x07,0x91,0x07,0x50,0x07,0x0f,0x00,0x0c,0x4a,0xf8,0x48,
0x80,0x00,0x86,0xc1,0xfe,0x00,0x0b,0x57,0x7e,0x3e,0x48,0xfc,0x00,0x12,0x48,0x00,
0x00,0x3f,0x4e,0xef,0x97,0x3f,0x93,0x3f,0x48,0x3f,0x00,0x0a,0x55,0x1f,0x00,0x4a,
0x00,0x4b,0x01,0xa3,0x03,0xc1,0x01,0x00,0x44,0x62,0xf0,0xfc,0xff,0xff,0x68,0xff,
0xff,0x1f,0x01,0x00,0x00,0x0c,0x7c,0x00,0x00,0x03,0x07,0x0f,0x1f,0x7f,0x50,0x80,
0x00,0x00,0x59,0x5a,0x00,0x87,0xbf,0x58,0x7f,0x1f,0x07,0x00,0x14,0x5c,0x00,0xf0,
0xfc,0xc1,0x00,0x00,0x58,0x5a,0x00,0x01,0x01,0x48,0x01,0x00,0x16,0x92,0x00,0xc1,
0x01,0x00,0x36,0x00,0x24,0x49,0x80,0x48,0x80,0x00,0x7f,0x59,0xfe,0xfc,0xfc,0x49,
0xf0,0x68,0xf0,0xe0,0xe0,0xc0,0x80,0x00,0x6c,0x49,0x0f,0x70,0x0f,0x0f,0x0f,0x0f,
0x1f,0x7f,0x00,0x0a,0x50,0xff,0xfe,0x00,0x84,0xbe,0xff,0x4a,0xfe,0x49,0xfc,0x53,
0xfc,0x3c,0x93,0x7e,0xce,0xfe,0x5a,0x7e,0x7e,0x3c,0x48,0x08,0x00,0x3d,0x58,0x81,
0xc7,0xf7,0x00,0x0e,0x48,0x7f,0x00,0x0f,0x4f,0x7f,0xc2,0x00,0xc9,0x01,0x10,0xc1,
0x00,0x00,0x40,0x7b,0xe0,0xf8,0x7e,0x3f,0x1f,0x07,0x87,0x50,0x7f,0x03,0x00,0x12,
0x54,0x9f,0xff,0x48,0xff,0x00,0x59,0x40,0x09,0x3f,0x7f,0x00,0x00,0x80,0xe0,0xff,
0xff,0x3f,0x0f,0x00,0x11,0x40,0x09,0x78,0x3c,0x1e,0x0f,0x87,0x81,0xc0,0xf9,0xff,
0x0f,0x00,0x5a,0x93,0x00,0x48,0x01,0x00,0x17,0x4b,0x00,0x48,0x01,0x00,0x35,0x00,
0x24,0x49,0x00,0x48,0x00,0x00,0x81,0x49,0xf8,0x49,0xf8,0x49,0xe0,0x58,0xc0,0x80,
0x00,0x00,0x6b,0x4d,0x0f,0x58,0x1f,0x3f,0xff,0x00,0x0a,0x50,0xfc,0xf8,0x00,0x71,
0x50,0x07,0xff,0x00,0x0f,0xc3,0xfe,0x00,0x07,0xc1,0xfe,0x00,0x0a,0x48,0xfe,0x00,
0x10,0x49,0x7e,0x49,0x3e,0x58,0x1c,0x0c,0x00,0x00,0x3c,0x66,0x80,0xc3,0xf3,0xff,
0x50,0xff,0x7f,0x00,0x17,0x50,0xff,0x08,0x00,0x08,0x4e,0x00,0xc4,0x00,0x00,0x40,
0x79,0xc0,0xf0,0xfc,0x3f,0x3f,0x1f,0x0f,0x4b,0x07,0x58,0xff,0x3f,0x01,0x00,0x0e,
0x61,0x07,0x8f,0xff,0xff,0x61,0x7f,0x3f,0x7f,0x7f,0x58,0xff,0xf0,0xc0,0x00,0x52,
0x73,0x70,0x7e,0x7f,0x1f,0x01,0x00,0x51,0x80,0xc0,0x58,0xff,0x3f,0x07,0x00,0x0d,
0x78,0x70,0x7c,0x3e,0x1f,0x0f,0x07,0x03,0xc2,0x00,0x70,0x80,0x80,0xff,0xff,0x7f,
0x0f,0x00,0x59,0x52,0x00,0x03,0x48,0x01,0x00,0x17,0x78,0x00,0x00,0x00,0x03,0x01,
0x01,0x01,0x00,0x32,0x00,0xa0,0x5d,0x80,0xe0,0xf0,0x4a,0xf8,0x4a,0xf0,0x58,0xc0,
0x80,0x00,0x00,0x6a,0x55,0x06,0x0e,0x58,0x1f,0x3f,0x7f,0x00,0x0a,0x4a,0xfe,0x48,
0xe0,0x00,0x70,0x48,0x1f,0x00,0x10,0xa7,0xff,0x4e,0xfe,0xc2,0xfe,0x00,0x18,0x58,
0x1e,0x0e,0x04,0x00,0x3d,0x58,0x00,0x03,0xc7,0x00,0x07,0x48,0xff,0x00,0x07,0x4b,
0x7f,0x48,0xff,0x00,0x0b,0x5d,0xff,0xfe,0xe0,0x9e,0x01,0xc1,0x01,0x00,0x43,0x40,
0x0b,0x00,0x80,0xf0,0xf8,0xfe,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x7f,0x08,0xc2,0xff,
0x00,0x0c,0x5b,0x07,0x1f,0xff,0x40,0x0b,0x07,0x0f,0x1f,0x3f,0x3f,0x7f,0x7f,0xff,
0xff,0xf0,0xc0,0xc0,0x00,0x4e,0x72,0x80,0xe0,0xfc,0xff,0x3f,0x07,0xc2,0x00,0x78,
0x80,0x80,0xe0,0xff,0xff,0x3f,0x0f,0x00,0x09,0x79,0xc0,0xe0,0xf0,0x7c,0x3f,0x1f,
0x0f,0x4a,0x01,0xc3,0x00,0x70,0x80,0x80,0xc1,0xff,0xff,0x1f,0x00,0x56,0x99,0x00,
0xc3,0x01,0x00,0x16,0xc3,0x00,0xc4,0x01,0x00,0x2d,0x00,0x9f,0x57,0x00,0xc0,0x68,
0xfc,0xf0,0xf0,0xe0,0xe0,0x00,0x6d,0x58,0x04,0x0e,0x1e,0xc4,0x1f,0x11,0xff,0x00,
0x0c,0x48,0xf0,0x00,0x70,0x50,0x01,0x7f,0x00,0x1b,0x94,0xff,0x4a,0xfe,0x60,0xff,
0xff,0x7f,0x7f,0xc7,0xff,0x18,0xc7,0xff,0x60,0x7f,0x7f,0x3f,0x1f,0x0a,0x06,0x02,
0x00,0x3c,0x60,0x01,0x07,0x87,0xef,0x00,0x07,0xb3,0xff,0x58,0x7f,0x7f,0xff,0x00,
0x0d,0x5b,0xff,0xfc,0x80,0x48,0x01,0x00,0x0a,0x48,0x01,0x00,0x43,0x40,0x0d,0x00,
0x00,0xe0,0xf8,0xfe,0xff,0x7f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x0f,0x08,0xc2,0xff,
0x00,0x07,0x62,0x07,0x3f,0x7f,0xff,0x52,0x9f,0x07,0x40,0x0b,0x0f,0x1f,0x1f,0x3f,
0x3f,0x7f,0x7f,0xff,0xfc,0xf0,0xe0,0xe0,0x00,0x4d,0x7b,0xc0,0xe0,0xf8,0xff,0x7f,
0x1f,0x07,0xc4,0x00,0xc1,0x80,0xc2,0xff,0x4d,0x0e,0x6c,0xc0,0xe0,0xf0,0xf8,0x7e,
0x4e,0x00,0xc3,0x00,0x48,0x83,0xc2,0xff,0x00,0x4c,0xa7,0x01,0xa1,0x00,0x60,0x01,
0x03,0x03,0x01,0x00,0x16,0x99,0x00,0x60,0x03,0x03,0x03,0x01,0x00,0x2a
};
#endif

// 128x128 animation sequence
// for Pimoroni 128x128
#ifndef OLED128x64
#define OLED_TYPE OLED_128x128
const byte bAnimation[] PROGMEM = {
0xff,0xff,0xff,0xff,0xfe,0xff,0xc2,0x7f,0xff,0xff,0xde,0xff,0x48,0xbf,0xc8,0x3f,
0xc7,0x7f,0x40,0x0a,0x3f,0x3f,0x1f,0x4f,0x67,0x67,0x73,0x71,0x79,0x7c,0x7c,0xc3,
0x7e,0x40,0x07,0x7c,0x78,0x79,0x33,0x23,0x07,0x0f,0x1f,0xc3,0x0f,0xc1,0x27,0xc9,
0x67,0x70,0xe7,0xe7,0x4f,0x4f,0x1f,0x9f,0xff,0xff,0xc2,0xff,0x40,0x10,0xfe,0xfc,
0xf9,0xf3,0xe7,0xe7,0xc7,0xd7,0x97,0xb7,0x37,0x27,0x27,0x87,0xc7,0xcf,0xef,0xc2,
0xcf,0x48,0xdf,0xc3,0x9f,0xc2,0x3f,0xc2,0x7f,0xcd,0xff,0x40,0x0d,0xfe,0xfe,0xfc,
0xf1,0xc3,0x04,0x31,0xf0,0xf1,0xf9,0xf9,0xfc,0xfc,0xfe,0xff,0xff,0xc6,0xff,0x40,
0x11,0x3f,0x1f,0x8f,0xe7,0xf3,0xf9,0xf8,0xf8,0xf2,0x67,0x07,0x0f,0x1f,0x1f,0x3f,
0x7f,0xff,0xff,0xc4,0x7f,0xc3,0x3f,0xc1,0x3e,0xc2,0x3c,0x40,0x0c,0x39,0x79,0x7b,
0xf3,0xf7,0xe7,0xe7,0x8f,0x1f,0x1f,0x3f,0x7f,0x7f,0xc2,0xff,0x58,0xfe,0xf0,0x01,
0xff,0xff,0xc8,0xff,0x70,0x3f,0x07,0x41,0x78,0x7c,0x7f,0xc4,0xff,0xc1,0x1f,0xc3,
0x00,0x48,0xf0,0xc2,0xff,0x58,0xfe,0xfc,0x06,0xc4,0x00,0x50,0x01,0x03,0xcd,0xff,
0x40,0x09,0xfc,0xf0,0x81,0x06,0x64,0xe1,0xe3,0xe7,0xf1,0xf8,0xff,0xff,0xc7,0xff,
0x40,0x10,0x03,0x00,0xfc,0xf0,0xe2,0xce,0x9e,0x1c,0x3c,0x79,0x79,0x73,0xe6,0xc0,
0xc8,0x98,0xbc,0xc5,0xff,0x50,0xf9,0xe0,0xc2,0xc0,0x60,0xe0,0xe0,0xf8,0xfe,0xc8,
0xff,0x40,0x0a,0x0f,0x07,0xf3,0x73,0x33,0x33,0x47,0x0f,0x38,0x00,0x9f,0xf2,0xff,
0x40,0x0f,0x7f,0x1f,0x8f,0xc7,0xe3,0xe3,0xe1,0xc9,0x99,0x31,0x73,0xe3,0xc7,0x8f,
0x1f,0x7f,0xc8,0xff,0x60,0xfc,0xe0,0x03,0x3f,0xc4,0xff,0xc1,0xfe,0xc2,0xfc,0x40,
0x0f,0x3c,0x1d,0x8f,0xc7,0xe7,0xf3,0xf3,0xb3,0xb3,0x93,0x93,0xe7,0xe7,0xcf,0x8f,
0x9f,0xc6,0x3f,0x40,0x12,0x9f,0x9f,0x1f,0x3f,0x7c,0xf8,0x7b,0x13,0x00,0x01,0x00,
0x04,0x80,0xf0,0xff,0xff,0x3f,0x3f,0x8f,0xc2,0x87,0xc2,0x93,0x40,0x08,0x27,0x27,
0x67,0x4f,0x8f,0x9f,0x3f,0x3f,0x7f,0xdd,0xff,0x60,0x1f,0x01,0xe0,0xfe,0xc7,0xff,
0x40,0x07,0xf8,0x81,0x07,0x7f,0xfe,0xc0,0x01,0x0f,0xc2,0xcf,0x58,0xdf,0x9f,0x9f,
0xc3,0x3f,0x40,0x14,0xbc,0x98,0x91,0x87,0x8f,0x1f,0x1f,0x3f,0x7f,0x7f,0x40,0x00,
0x0e,0xc7,0xf1,0xf8,0x7c,0x3e,0x3f,0x9f,0xdf,0xc6,0xff,0x58,0xfe,0xfc,0xf9,0xc5,
0xff,0x40,0x10,0xf8,0x00,0x00,0x02,0x01,0x00,0x20,0x24,0x26,0x67,0xcf,0xc7,0xc0,
0xc0,0xa7,0xe7,0xcf,0xc7,0xff,0x40,0x08,0xfe,0xf7,0xef,0xef,0xce,0x84,0x00,0x03,
0x47,0xda,0xff,0x40,0x09,0xf8,0x80,0x03,0x13,0xdb,0xcb,0x4b,0x6b,0x6b,0x6f,0xc2,
0x3f,0x78,0xff,0x00,0x80,0xff,0x03,0x00,0x1e,0xc6,0xff,0x78,0xfe,0xfc,0xf8,0xf1,
0xc1,0x0c,0x3c,0xc6,0xfe,0xc2,0xfc,0x40,0x09,0xf8,0xf0,0xe6,0xc7,0x97,0x93,0x93,
0x99,0x99,0x9d,0xc2,0xcf,0x50,0x87,0x97,0xc6,0x9f,0x40,0x1d,0x87,0x80,0x20,0x26,
0x00,0x43,0x4e,0x4f,0x4f,0x4e,0x26,0x24,0x21,0x83,0x87,0x1f,0x7f,0xff,0xff,0x07,
0x0f,0x01,0x07,0x7f,0xff,0xff,0x9f,0x83,0x03,0x87,0xc2,0xff,0x40,0x07,0xfe,0xfc,
0xf8,0xf1,0xe3,0x87,0x1f,0x3f,0xd6,0xff,0x40,0x19,0xfe,0xf8,0xe0,0xc2,0x06,0x12,
0x03,0x0b,0x0b,0x03,0x81,0x85,0x84,0x47,0x1f,0x3f,0x7f,0xfe,0xff,0xff,0x0b,0x03,
0x07,0x9f,0x3f,0x3f,0xc2,0x9f,0x58,0xc7,0xe0,0xf0,0xe4,0xff,0x40,0x19,0xfe,0xfe,
0xfc,0xf8,0xf0,0xe3,0xc7,0xcf,0x8f,0x9f,0x80,0xc8,0xc3,0xf0,0xf8,0xfe,0xff,0xfe,
0xfc,0xfc,0xf9,0xf1,0xe3,0xc0,0x93,0x3f,0xc7,0xff,0x58,0x3e,0x00,0x81,0xda,0xff,
0x40,0x11,0xfc,0xf9,0xf3,0xe7,0xcf,0x8f,0x9f,0x3f,0x3f,0x3e,0x7c,0x78,0x70,0x20,
0x05,0xc0,0xe0,0xfe,0xff,0xff,0xc6,0xff,0x58,0xfc,0xf8,0xf9,0xc3,0xf3,0x60,0xf9,
0xf8,0xfc,0xfe,0xe5,0xff,0xc1,0xfe,0xff,0xff,0xd8,0xff,0x50,0x7f,0x3f,0xff,0xff,
0xf1,0xff,0x68,0xfb,0xfd,0x4c,0x24,0x00,0xc2,0x01,0x40,0x0a,0x47,0x73,0x1b,0x01,
0x00,0x20,0x18,0xcf,0x07,0x87,0x5f,0xff,0xff,0xec,0xff,0x60,0xfd,0xfc,0xf0,0xf9,
0xc2,0xfc,0x40,0x0c,0xf8,0xf8,0xfc,0xfa,0xf0,0xf8,0xfe,0xfd,0xfc,0xfe,0xf8,0xf8,
0xfc,0xff,0xff,0xff,0xff,0xc6,0xff,0x00,0xbe,0x48,0xff,0x00,0x60,0x68,0xff,0xdf,
0x1f,0x5f,0xdf,0xc4,0x9f,0xc1,0xbf,0xc5,0x3f,0x08,0x40,0x08,0x1f,0x0f,0x0f,0x27,
0x23,0x33,0x39,0x39,0x7d,0x09,0x7c,0x21,0x7c,0x09,0x73,0x18,0x40,0x13,0x4f,0x47,
0x67,0x63,0x73,0x33,0x31,0x19,0x99,0xc9,0xcc,0xc4,0x04,0x44,0x10,0x38,0x1c,0x8c,
0xc0,0xf1,0xc2,0xff,0x00,0x42,0x40,0x0e,0xff,0xfe,0xfc,0xf9,0xf1,0xf3,0xe3,0xeb,
0xcb,0x9b,0x93,0xb3,0x33,0x33,0x77,0xc2,0x27,0xc3,0x8f,0x19,0xbf,0x00,0x0e,0xa1,
0xfe,0x40,0x07,0xfc,0xf8,0xe1,0x81,0x08,0x7c,0xfe,0xfe,0xc4,0xff,0x00,0x46,0x40,
0x0f,0xff,0x3f,0x1f,0x8f,0xc7,0xe3,0xf3,0xf9,0xec,0xcc,0x1e,0x1e,0x3e,0x7f,0x7f,
0xff,0x10,0xc7,0xff,0xc2,0x7e,0x40,0x0a,0x7c,0xfc,0xfd,0xf9,0xf3,0xf3,0xf7,0xe7,
0xef,0xcf,0x1f,0x0c,0x3f,0x7f,0xff,0xff,0x1b,0xfc,0x00,0x0f,0x00,0x48,0x75,0x7f,
0x1f,0x87,0xe1,0xf8,0xfe,0x54,0x7f,0x37,0x59,0xc0,0xfe,0xfe,0x64,0xf9,0xf9,0x09,
0x04,0x50,0x00,0x06,0xc7,0xfe,0x28,0x40,0x07,0xfe,0xf8,0xe0,0x06,0x0d,0xe9,0xcf,
0xcf,0x0a,0xf0,0xfc,0x00,0x47,0x49,0x07,0x40,0x0f,0xf8,0xe1,0x84,0x1c,0x38,0x79,
0x71,0xf3,0xe3,0xe7,0xcc,0x90,0x10,0x30,0x70,0xfc,0x28,0x50,0xe3,0xc1,0xc3,0x80,
0x58,0xc0,0xe0,0xfc,0x00,0x08,0x40,0x08,0x3f,0x0f,0xcf,0x67,0x27,0x67,0x0f,0x1f,
0xe0,0x09,0x3f,0x00,0x32,0xcf,0xff,0x00,0x08,0x63,0xf8,0x80,0x0f,0x7f,0x60,0xfe,
0xfc,0xfc,0xf8,0xc2,0xf9,0x58,0xfb,0xfb,0xfe,0xc6,0xff,0x68,0x7f,0x7f,0x3f,0x3f,
0x7f,0xcb,0xff,0x40,0x09,0xf8,0xf0,0xe7,0xec,0xe0,0xc0,0x04,0x70,0x00,0x00,0x10,
0xd1,0xff,0x00,0x18,0xe1,0xff,0x40,0x08,0xfc,0xf8,0xf1,0xc7,0x8f,0x1f,0x3f,0x7f,
0x7f,0xc7,0xff,0x40,0x0b,0xcf,0xc3,0xf1,0xf8,0xfc,0xfe,0xfe,0xff,0xff,0xfe,0xff,
0xff,0xc2,0x7f,0xc4,0x3f,0x60,0x1f,0x0f,0x4f,0xcf,0xc2,0xe7,0x60,0xc3,0xc0,0x98,
0x1f,0x08,0x48,0xf0,0xff,0xff,0xd4,0xff,0x40,0x18,0xfe,0xfc,0xfc,0x7c,0x39,0x19,
0x83,0x43,0x23,0x03,0x87,0xc7,0xc7,0xe7,0xe7,0x27,0x07,0x87,0xc7,0xe1,0xe0,0xf0,
0xf2,0xfa,0xfe,0xc5,0xff,0x60,0xfe,0xfe,0xfc,0xfd,0xc5,0xff,0x50,0xfc,0x70,0x08,
0x40,0x09,0x04,0xec,0xcc,0xfc,0xf9,0xf1,0xe3,0xc7,0x0f,0x3f,0xf6,0xff,0x70,0x1f,
0x0f,0xc7,0xe7,0xf3,0xf3,0xc2,0xe7,0x60,0xcf,0x8f,0x1f,0x31,0x08,0x48,0x0e,0xc5,
0xfc,0x40,0x08,0xf9,0xf8,0xf2,0xf3,0xe0,0xc4,0x8e,0x1f,0x3f,0xc3,0xff,0x40,0x09,
0xf0,0xe0,0xc7,0x07,0x27,0x67,0x77,0x7f,0x73,0xf3,0xc9,0xff,0x40,0x16,0x7f,0x1f,
0x8f,0x9f,0x4f,0x07,0x23,0x38,0x0c,0xff,0xff,0x7f,0x3f,0x3f,0x5f,0xff,0xfc,0xf8,
0xf0,0xe3,0xc7,0x1f,0x3f,0xf1,0xff,0x40,0x11,0xf3,0xc0,0x02,0x3a,0x72,0xf2,0xe4,
0xcd,0x89,0x93,0x37,0x3f,0x7f,0xfe,0xfc,0xf0,0xc0,0x8d,0xc6,0xff,0x78,0xdf,0x1f,
0x1f,0x0f,0xc7,0xe0,0xf0,0xc7,0xff,0x40,0x07,0xfe,0xfc,0xf8,0xf0,0xf3,0xe3,0xe3,
0xe1,0xc2,0xe7,0x58,0xf3,0xf3,0xf9,0xc3,0xf8,0xc1,0xfc,0xc2,0xfe,0x70,0xf8,0xe0,
0x83,0x02,0x30,0x7c,0xc5,0xff,0x70,0xfe,0xf1,0x02,0x10,0x03,0x1f,0xf1,0xff,0x40,
0x13,0xfe,0xfc,0xf8,0xf9,0xf3,0xf3,0xe3,0xe3,0xc2,0xc4,0x84,0x81,0x03,0x03,0x27,
0x0f,0x1f,0x3f,0x3f,0xff,0xc3,0xbf,0x58,0x3c,0x00,0xc1,0xe4,0xff,0x78,0xfe,0xfc,
0xf8,0xf9,0xf9,0xf1,0xf3,0xc2,0xf9,0x58,0xfc,0xfc,0xfe,0xcb,0xff,0x50,0x7f,0x3f,
0xd7,0xff,0x08,0xc2,0xff,0x08,0xc2,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,
0x20,0x58,0xfe,0xfc,0xfc,0xc2,0xf8,0x48,0xf2,0xc4,0xf3,0xc1,0xf8,0xf2,0xff,0x68,
0xfb,0xfd,0x4c,0x24,0x00,0xc2,0x01,0x60,0x47,0x73,0x1b,0x01,0x08,0x70,0x20,0x18,
0xcf,0x07,0x87,0x5f,0xc9,0xff,0x08,0xc7,0xff,0x08,0xc6,0xff,0x10,0xc3,0xff,0x19,
0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,0xf4,0xff,0x60,0xfd,0xfc,0xf0,0xf9,0xc2,
0xfc,0x40,0x0c,0xf8,0xf8,0xfc,0xfa,0xf0,0xf8,0xfe,0xfd,0xfc,0xfe,0xf8,0xf8,0xfc,
0xd1,0xff,0x08,0xc6,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,
0xff,0xd3,0xff,0x08,0xd2,0xff,0x09,0xff,0x09,0xff,0x09,0xff,0x00,0x09,0x4f,0xff,
0xcf,0xff,0x00,0xbf,0xc1,0xff,0x00,0x5f,0xd4,0xff,0x40,0x10,0x7f,0x3f,0x3f,0x9f,
0x9f,0xcf,0xcf,0xe7,0xe7,0xf7,0xe7,0xe7,0xcf,0x9f,0x1f,0x3f,0x7f,0xc3,0xff,0xc4,
0x7f,0xc7,0x3f,0xc3,0x7f,0x00,0x44,0x78,0xf3,0xe3,0xcb,0x9b,0x9b,0x33,0x73,0xc4,
0x33,0xc5,0x73,0x60,0xf1,0xf0,0xf0,0xf2,0xce,0xf3,0xc5,0xf0,0xc3,0xf2,0x40,0x0e,
0xe3,0xc3,0x83,0x13,0x63,0x13,0x23,0x93,0x96,0x8e,0xce,0xe6,0xe2,0xf0,0xf9,0x00,
0x45,0x40,0x0b,0xff,0xff,0x7e,0x3e,0x9c,0xc9,0xa1,0x23,0x33,0x79,0x79,0xfc,0xc3,
0xfe,0xc2,0xfc,0x48,0xfd,0xc2,0xf9,0x40,0x0e,0xfb,0xf3,0xf3,0xf7,0xe7,0xe7,0xef,
0xcf,0xcf,0x9f,0x9f,0xbf,0x3f,0x3f,0x7f,0xc3,0xff,0x23,0xfc,0xf0,0x01,0x00,0x49,
0x40,0x07,0xff,0x7f,0x1f,0x87,0xe3,0xf1,0xfc,0xfe,0x1c,0xff,0xdf,0x07,0x02,0x13,
0x01,0xf3,0xfb,0x08,0x60,0xe7,0xe7,0x27,0x07,0xc4,0x03,0x50,0x33,0xf3,0xc5,0xfb,
0x48,0xf7,0x18,0x40,0x0c,0xfe,0xfc,0xf0,0xe1,0x81,0x13,0x27,0x6f,0x1f,0x3f,0x7f,
0x1f,0x80,0x00,0x47,0x40,0x11,0x3f,0x01,0xc0,0x06,0x03,0x73,0xe7,0xe7,0xcf,0xcf,
0x9f,0x1f,0x31,0x40,0x80,0x80,0xc0,0xf0,0x28,0x48,0x8f,0xc5,0x00,0x50,0x80,0xf0,
0x00,0x08,0x40,0x0a,0xff,0x7f,0x3f,0xbf,0x9f,0x3f,0x3f,0x7c,0x80,0x03,0xff,0x00,
0x4b,0x40,0x09,0xe0,0x00,0x3f,0xff,0xfe,0xfc,0xf8,0xf9,0xf3,0xf3,0xc2,0xe7,0x60,
0xce,0xcc,0xed,0xf9,0x3d,0xff,0xfe,0xfe,0xfe,0xfe,0x00,0x0b,0x40,0x0f,0xe0,0xc0,
0x9f,0xbf,0xa1,0xa1,0x84,0xc4,0x04,0x04,0x64,0x49,0x11,0x23,0x07,0x0f,0x00,0x26,
0xe0,0xff,0x78,0xfe,0xf0,0xc1,0x87,0x1f,0x3f,0x7f,0xcb,0xff,0x40,0x09,0xbf,0x8f,
0xc7,0xe3,0xf1,0xf9,0xf8,0xfc,0xfc,0xfd,0xc8,0xff,0x40,0x0b,0x7f,0x1f,0x0f,0x07,
0xe7,0xe3,0xf3,0xf1,0xf0,0xe4,0xe4,0xce,0xc3,0xfe,0x70,0xfc,0xfc,0xf9,0xe3,0x07,
0x0f,0xff,0xff,0xc8,0xff,0x40,0x08,0xfe,0xfc,0x18,0x01,0xe1,0xf3,0xe7,0x67,0x07,
0xc2,0x0f,0x68,0x1f,0x1f,0x9f,0x1f,0x9f,0xc5,0x3f,0xc4,0x1f,0x78,0x9f,0xcf,0x07,
0x01,0xf0,0xfc,0xfe,0xc2,0xff,0x58,0x7f,0x7f,0x3f,0xc6,0xff,0x78,0xfe,0x71,0x03,
0x8f,0xe3,0xf0,0xf8,0xff,0xff,0xca,0xff,0x40,0x11,0xfc,0xfc,0xf9,0xf9,0xf1,0xc0,
0x8e,0x1f,0x37,0x73,0x08,0x40,0x61,0x04,0x08,0x21,0x47,0x80,0x10,0x40,0x1c,0x7e,
0xc0,0x80,0x06,0x3e,0x3e,0x3c,0x19,0x82,0x04,0x10,0xc1,0xc9,0x99,0x9c,0x9c,0x1e,
0x1e,0x4e,0x7f,0x3f,0x1f,0x7f,0x3f,0x1f,0x8f,0xc3,0xf0,0xfc,0xff,0xff,0xd7,0xff,
0x40,0x08,0xfe,0xf0,0xc0,0x82,0x12,0x33,0x73,0xf8,0xf8,0xc3,0xfc,0xc2,0xf9,0x40,
0x10,0xf1,0xe0,0xe0,0xe1,0xc4,0x06,0x07,0x03,0xf3,0xf9,0xf0,0xf0,0xe0,0xe2,0xef,
0xff,0xfe,0x10,0xff,0xff,0xda,0xff,0x58,0x83,0x01,0x78,0xc6,0xfc,0xc2,0xf9,0x60,
0xf1,0xf0,0xf4,0xe5,0xc2,0xff,0x40,0x07,0x7f,0x3f,0xbf,0xfe,0xf0,0x60,0x07,0x1f,
0xc4,0x9f,0x60,0xcf,0xe3,0xf0,0xfc,0xdc,0xff,0x50,0x7f,0x3f,0xd7,0xff,0x08,0xc2,
0xff,0x08,0xc2,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,
0x58,0xfe,0xf0,0xf0,0xc5,0xe1,0x40,0x0c,0xe5,0xe5,0xf1,0xf0,0xf2,0xf0,0xf9,0xf9,
0xf8,0xfc,0xfc,0xf9,0xf9,0xc2,0xfc,0x48,0xfe,0xda,0xff,0x68,0xfb,0xfd,0x4c,0x24,
0x00,0xc2,0x01,0x61,0x47,0x73,0x1b,0x01,0x70,0x20,0x18,0xcf,0x07,0x87,0x5f,0xc9,
0xff,0x08,0xc7,0xff,0x08,0xc6,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,
0x07,0x4f,0xff,0xf4,0xff,0x60,0xfd,0xfc,0xf0,0xf9,0xc2,0xfc,0x40,0x0c,0xf8,0xf8,
0xfc,0xfa,0xf0,0xf8,0xfe,0xfd,0xfc,0xfe,0xf8,0xf8,0xfc,0xd1,0xff,0x08,0xc6,0xff,
0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,0xd3,0xff,0x08,0xd2,
0xff,0x09,0xff,0x09,0xff,0x09,0xff,0x00,0x09,0x4f,0xff,0xcf,0xff,0x00,0xff,0x00,
0x34,0x40,0x09,0x7f,0x3f,0x9f,0x9f,0xcf,0xc7,0xe7,0xf3,0xf3,0xfb,0xc2,0xf9,0x40,
0x07,0xf3,0xf3,0xe7,0xcf,0x8f,0x1f,0x3f,0x7f,0xc3,0x3f,0xcd,0x9f,0x60,0xbf,0x3f,
0x7f,0x7f,0x00,0x40,0x40,0x0a,0xfe,0xfc,0xf8,0xf2,0xe4,0xcc,0x9c,0x9c,0x0c,0x5c,
0x5c,0xc2,0xdc,0x48,0x9c,0xc2,0x1c,0x48,0xbc,0xc3,0x3c,0xc3,0x7d,0xc7,0xfd,0xcb,
0xfc,0x40,0x0f,0xf9,0xf9,0xf1,0xc1,0x0d,0x11,0xc5,0xc1,0xc5,0xe5,0xe7,0xf3,0xf1,
0xf8,0xfc,0xfe,0x00,0x45,0x40,0x0c,0x7f,0x3f,0x9f,0xcf,0xe7,0xe2,0xe2,0xc8,0x9c,
0x9e,0x3e,0x3f,0x7f,0xc5,0xff,0xc2,0xfe,0xc2,0xfc,0x40,0x0f,0xfd,0xf9,0xf9,0xfb,
0xf3,0xf3,0xe7,0xe7,0xef,0xcf,0xcf,0x9f,0x9f,0x3f,0x7f,0x7f,0x2c,0xff,0xf8,0xc0,
0x07,0x00,0x49,0x7b,0x1f,0x07,0xe3,0xf8,0xfc,0xfe,0xff,0x62,0x7f,0x7f,0x01,0x00,
0x59,0xc0,0xfc,0xfd,0x58,0xfb,0xf9,0x19,0xc2,0x01,0xc2,0x00,0x48,0x0c,0xc5,0xfc,
0x93,0xfd,0x40,0x0c,0xff,0xff,0xfc,0xf0,0xc0,0x04,0x19,0xd3,0xc7,0x8f,0x9f,0xc7,
0xe0,0x00,0x47,0x40,0x11,0x0f,0x00,0xf0,0xc1,0x89,0x39,0x79,0x71,0xf3,0xe3,0xe7,
0xcf,0x88,0x00,0x20,0x60,0xf0,0xfc,0x2a,0xe3,0x80,0x1c,0x80,0xc0,0xe0,0xf8,0x00,
0x08,0x40,0x09,0x3f,0x1f,0xcf,0xcf,0x4f,0x0f,0x9f,0x1e,0x00,0x01,0xc6,0x0f,0x40,
0x0f,0x4f,0x07,0x87,0x03,0x03,0x43,0xe3,0x63,0x03,0x03,0x93,0xf3,0xf3,0xc7,0x0f,
0x3f,0x00,0x35,0x59,0xf0,0x80,0x0f,0x68,0xff,0xff,0xfe,0xfc,0xfc,0xc2,0xf9,0xc2,
0xf3,0x50,0xf2,0xfe,0x00,0x07,0xc3,0xff,0x00,0x0b,0x40,0x0a,0xf0,0xe0,0xef,0xcc,
0xc8,0xc8,0xe4,0x30,0x00,0xc0,0xfe,0xc2,0xff,0x70,0xe0,0x02,0x13,0xb2,0xb2,0xf0,
0xc2,0xf8,0x5b,0xfc,0xfc,0xfe,0x60,0x7f,0x0f,0x80,0xf0,0x00,0x15,0xd3,0xff,0x40,
0x08,0x3f,0x1f,0x87,0xe3,0xf3,0x79,0x79,0x39,0x38,0xc2,0x39,0x40,0x09,0x33,0x23,
0x00,0x10,0xe3,0x87,0x1f,0x3f,0x7f,0x7f,0xc9,0xff,0x60,0xcf,0xe3,0xf1,0xf9,0xc4,
0xfc,0xcc,0xff,0x40,0x0a,0x7f,0x7f,0x3f,0x8f,0xc7,0xe1,0xf8,0xfe,0xff,0xff,0x03,
0x08,0x58,0xf8,0x7c,0x3e,0xcc,0xff,0x50,0xfe,0xf8,0x08,0x48,0x0f,0xe9,0xff,0x40,
0x2f,0xe0,0xc0,0x0f,0x33,0xf8,0xfc,0x3e,0x8e,0xc7,0xe7,0xf3,0x73,0x39,0x19,0x90,
0xc0,0x01,0x19,0xf8,0xfc,0xe0,0xfc,0xfc,0xf8,0xf9,0x61,0x03,0x13,0x87,0xc7,0x67,
0x27,0x37,0x93,0x93,0x43,0x03,0x07,0x87,0x87,0xc7,0xcf,0xcf,0x87,0x07,0x27,0x67,
0xe7,0xc2,0xf3,0x68,0xf9,0xf9,0xfc,0xfc,0xfe,0xc8,0xff,0x48,0xc0,0x08,0x50,0x38,
0x78,0xc5,0xff,0x40,0x0a,0x7f,0x3f,0xff,0xff,0x7f,0x3f,0x1f,0x8f,0xc7,0xe0,0xf8,
0xec,0xff,0x40,0x26,0xfc,0xf8,0xf1,0xf3,0xe7,0xe7,0xcf,0xcd,0xcc,0xce,0xc7,0xc3,
0xc1,0xe0,0xe0,0xf1,0xe3,0xe1,0xe4,0xe7,0xe7,0xf3,0xf0,0xc0,0x86,0x1f,0x3f,0x60,
0x40,0xc3,0x91,0x9c,0x3e,0x39,0x3d,0x8c,0xc4,0xe0,0xf9,0xc2,0xff,0x13,0xe0,0xc0,
0xc0,0x08,0x40,0x08,0x30,0x3c,0xf8,0xf1,0xe3,0x07,0x1f,0x9f,0x3f,0xc3,0x7f,0xc2,
0xff,0x48,0xfe,0xca,0xfc,0xc1,0xfe,0xff,0xff,0xc8,0xff,0x40,0x0f,0x7f,0x3f,0x1f,
0x98,0x90,0x82,0xc4,0xcc,0xcc,0xce,0xce,0xcf,0x9f,0x1f,0x3f,0x7f,0xc2,0xff,0x78,
0xfe,0xff,0x3f,0x37,0x30,0x18,0x07,0x08,0x68,0x80,0x87,0x41,0x68,0x7e,0xc2,0x7f,
0x78,0x7c,0xf0,0x80,0xf8,0xe1,0x03,0x0f,0xff,0xff,0xd4,0xff,0x68,0xf8,0xe0,0xe2,
0xcf,0x0f,0xc3,0x1f,0x40,0x11,0x5f,0x7f,0x7f,0x3f,0x3f,0xbf,0x9f,0x9f,0xcf,0xe7,
0xf3,0xf9,0x8c,0x06,0x62,0xf0,0xf8,0xf8,0xc2,0xfc,0xc4,0xfe,0xc2,0xff,0x68,0x7f,
0x08,0x80,0xe4,0xfc,0xd8,0xff,0x50,0x7f,0x3f,0xd7,0xff,0x08,0xc2,0xff,0x08,0xc2,
0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,0xc3,0xff,0xc2,
0xfe,0xcb,0xff,0x68,0xfe,0xfc,0xf0,0xf1,0xf1,0xc3,0xe1,0x40,0x08,0xf1,0xf1,0xf3,
0xf3,0xf9,0xf8,0xfc,0xfc,0xfe,0xcf,0xff,0x68,0xfb,0xfd,0x4c,0x24,0x00,0xc2,0x01,
0x61,0x47,0x73,0x1b,0x01,0x70,0x20,0x18,0xcf,0x07,0x87,0x5f,0xc9,0xff,0x08,0xc7,
0xff,0x08,0xc6,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,
0xf4,0xff,0x60,0xfd,0xfc,0xf0,0xf9,0xc2,0xfc,0x40,0x0c,0xf8,0xf8,0xfc,0xfa,0xf0,
0xf8,0xfe,0xfd,0xfc,0xfe,0xf8,0xf8,0xfc,0xd1,0xff,0x08,0xc6,0xff,0x10,0xc3,0xff,
0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,0xd3,0xff,0x08,0xd2,0xff,0x09,0xff,
0x09,0xff,0x09,0xff,0x00,0x09,0x4f,0xff,0xcf,0xff,0x00,0xbc,0xc5,0x7f,0x00,0x5e,
0x60,0x9f,0x1f,0x9f,0x9f,0xc2,0xbf,0xca,0x3f,0x40,0x14,0x1f,0x0f,0x07,0x27,0x33,
0x31,0x39,0x3c,0x3c,0x3e,0x3e,0x3f,0x3f,0x3e,0x3e,0x3c,0x38,0x39,0xb3,0x87,0x87,
0xc2,0x8f,0x60,0x87,0x87,0xa7,0x27,0xc7,0x33,0x40,0x07,0xb3,0x33,0xe7,0xe7,0x67,
0x2f,0x0f,0xcf,0x00,0x40,0x40,0x10,0xff,0xff,0xfe,0xfc,0xfd,0xf9,0xf3,0xe3,0xe3,
0xcb,0xd3,0x13,0x33,0x33,0x97,0xd7,0xc7,0xc2,0xe7,0xc1,0xef,0xc2,0xcf,0x48,0xdf,
0xc2,0x9f,0xc2,0x3f,0xc2,0x7f,0xcc,0xff,0x40,0x0b,0xfe,0xfc,0xf8,0xe1,0x02,0x10,
0xf2,0xf8,0xf9,0xfc,0xfc,0xfe,0xc2,0xff,0x00,0x2a,0x58,0x3f,0x1f,0x8f,0xc2,0xcf,
0x60,0x8f,0x9f,0x1f,0x3f,0xc2,0x7f,0x00,0x0b,0x40,0x10,0x7f,0x3f,0x8f,0xc7,0xe3,
0xf1,0xf9,0xfc,0xfa,0xfb,0x33,0x27,0x07,0x0f,0x1f,0x9f,0xbf,0x08,0xc2,0x7f,0xc5,
0x3f,0x40,0x12,0xbf,0x9f,0x9e,0xbe,0xbe,0xbc,0xbc,0xbd,0xb9,0xf9,0xf3,0xf3,0xe7,
0xc7,0x8f,0x1f,0x1f,0x3f,0x7f,0x1b,0xff,0xf0,0x00,0x18,0xc2,0x7f,0xc2,0x3f,0xc3,
0x7f,0x00,0x22,0x40,0x0a,0x3f,0x0f,0xc7,0xe0,0xe0,0x73,0x73,0xc3,0x03,0x00,0x7c,
0xc2,0x7e,0x70,0x3e,0x1c,0xc0,0xc1,0x0f,0x1f,0x28,0x68,0x1f,0x07,0x61,0x38,0x3e,
0xc2,0x7f,0x1b,0x1f,0x0d,0x00,0x1b,0xf0,0xff,0xff,0x0e,0xfe,0xfe,0x02,0x00,0x00,
0x00,0x18,0x48,0x03,0xc7,0xff,0x28,0x40,0x1f,0xff,0xfe,0xf8,0xc1,0x03,0x32,0xf0,
0x73,0x73,0x71,0x3c,0x0f,0x01,0x90,0x80,0x00,0x18,0x18,0x59,0x58,0x50,0x52,0x06,
0x06,0x1c,0xfc,0xf9,0xf1,0xf1,0xe1,0xcc,0xdc,0xc2,0xfc,0x40,0x07,0xf9,0xf9,0xf1,
0xf3,0xe3,0x87,0x1f,0x3f,0x00,0x0f,0x40,0x0f,0x02,0x00,0x3d,0xbc,0x9e,0x9e,0x1e,
0x3c,0x3c,0x30,0x80,0x80,0x38,0x7e,0x7f,0x7f,0x17,0x80,0xc0,0xf8,0xfc,0xfc,0xfc,
0x00,0x08,0x40,0x0f,0xfe,0xf0,0xe1,0xc7,0x8e,0x9e,0x3c,0x3c,0x79,0x71,0x73,0xe4,
0xcc,0xcc,0x9c,0xff,0x28,0x50,0xf8,0xf0,0xc3,0xe0,0x58,0xf0,0xf8,0xff,0x00,0x08,
0x40,0x1f,0x0f,0x03,0xf3,0x19,0x09,0x23,0x93,0x01,0x08,0x04,0xc0,0xf2,0xf2,0xf8,
0xf9,0xf8,0xfc,0xf8,0xf0,0xc2,0x8e,0x1e,0x3e,0x3b,0x67,0xe7,0xe7,0xe3,0xe0,0x78,
0x3f,0x3f,0x0a,0x1f,0x8f,0x00,0x09,0x60,0xef,0xc8,0x00,0x07,0x00,0x0d,0x40,0x15,
0xfc,0xf8,0xe3,0xc3,0xc3,0x93,0x93,0xb2,0x30,0x3c,0x3f,0x1f,0x1f,0x0e,0x46,0x4e,
0xcf,0x8f,0x9f,0x1f,0x3f,0x7f,0x0e,0x7f,0x1e,0x00,0x03,0x1f,0x7f,0x08,0xc3,0xff,
0xc5,0xfe,0x48,0xff,0x30,0xc1,0x7f,0xc3,0x3f,0xc1,0x7f,0x00,0x09,0x40,0x31,0xfe,
0xfc,0xf9,0xfb,0xfb,0xf9,0x39,0x0c,0xc0,0xf0,0xff,0x7f,0x3f,0x0f,0x07,0x87,0xa7,
0xb3,0x33,0x27,0x67,0xe7,0xc7,0xce,0x9e,0x1c,0x7c,0xfc,0xfc,0xfe,0xfe,0xfc,0xf8,
0xf1,0xe7,0xe7,0xc7,0xcf,0xcf,0xc7,0xe7,0xe0,0xe0,0xc7,0xcf,0xcf,0xc7,0xe7,0xf0,
0xfe,0x28,0xce,0xff,0x08,0x48,0x00,0xc7,0xfc,0x40,0x15,0xf8,0xf3,0xc7,0x0e,0x78,
0xe0,0x02,0x1e,0xff,0xff,0xfe,0xf8,0xf1,0xe3,0xc7,0x8f,0x9f,0x1f,0x3f,0x3f,0x7f,
0x7f,0xc4,0xff,0x40,0x0a,0x43,0x61,0x60,0x72,0x72,0x79,0x78,0x78,0x7c,0xfc,0xfc,
0xc5,0xff,0xc2,0x7f,0x40,0x08,0x3f,0x3f,0x9f,0x8f,0xc7,0xe3,0xf0,0xfc,0xfe,0xc2,
0xff,0x70,0x20,0x00,0x1f,0x1f,0x9f,0xbf,0xc6,0xff,0x40,0x09,0xf9,0xf0,0xf0,0xe3,
0xe7,0xcf,0x8f,0x1f,0x3f,0x7f,0xe3,0xff,0x48,0xc0,0x08,0x40,0x0a,0x1f,0x9f,0x5f,
0x0f,0x2f,0x87,0x17,0x57,0x3f,0xbf,0xbf,0x11,0xff,0x10,0x70,0x07,0x63,0xf3,0xf1,
0xf9,0xf8,0xc3,0xfc,0x40,0x07,0xf8,0xf9,0xf0,0xe0,0xc4,0x8c,0x04,0x64,0xc3,0xf2,
0xc5,0xf8,0x40,0x0a,0xe0,0xc0,0x89,0x11,0x21,0x4c,0x4c,0x9c,0x9c,0x9e,0x9e,0xc4,
0x3f,0x40,0x09,0x07,0x01,0x99,0x8c,0x84,0xc4,0xc4,0x0e,0x1e,0x7e,0xc2,0xfe,0xc3,
0xff,0x70,0x3f,0x07,0x0f,0x1f,0x0f,0x87,0xc4,0xff,0x40,0x07,0xfe,0xfc,0xf8,0xf1,
0x83,0x0f,0x1f,0x7f,0xde,0xff,0x40,0x16,0xfe,0xf8,0xe0,0xc2,0x89,0x0d,0x04,0x12,
0x82,0xc9,0xc5,0xe7,0xe0,0xcc,0x19,0x18,0x3f,0x7f,0xfe,0xff,0x7f,0x3f,0x3f,0xc9,
0x7f,0x58,0x7e,0x30,0x01,0xcd,0xff,0xc1,0xfe,0xc2,0xfc,0xc8,0xf9,0x50,0xe1,0x80,
0x0b,0x06,0x0e,0xf8,0x08,0x48,0x07,0xc3,0xff,0x40,0x0a,0x3f,0x07,0x80,0xf8,0xfc,
0xf0,0xe2,0xc7,0xcf,0x9f,0x9f,0xc5,0x3f,0x60,0x9f,0x80,0xe6,0xe0,0xe2,0xff,0x78,
0xfc,0xf0,0xc6,0xcf,0x9f,0x3f,0x3f,0xc2,0x7f,0x48,0x3f,0x10,0x40,0x07,0x80,0xc3,
0xe0,0xf0,0xfc,0xfc,0xff,0xff,0xc8,0xfe,0xdf,0xff,0x40,0x0b,0xfe,0xf8,0xf0,0xe3,
0xc4,0xce,0xcf,0xe7,0xe3,0xf0,0xfc,0xfe,0xfc,0xff,0x08,0x48,0xfe,0xff,0xff,0xd3,
0xff,0x50,0x7f,0x3f,0xd7,0xff,0x08,0xc2,0xff,0x08,0xc2,0xff,0x10,0xc3,0xff,0x19,
0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,0xf4,0xff,0x68,0xfb,0xfd,0x4c,0x24,0x00,
0xc2,0x01,0x61,0x47,0x73,0x1b,0x01,0x70,0x20,0x18,0xcf,0x07,0x87,0x5f,0xc9,0xff,
0x08,0xc7,0xff,0x08,0xc6,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,
0x4f,0xff,0xf4,0xff,0x60,0xfd,0xfc,0xf0,0xf9,0xc2,0xfc,0x40,0x0c,0xf8,0xf8,0xfc,
0xfa,0xf0,0xf8,0xfe,0xfd,0xfc,0xfe,0xf8,0xf8,0xfc,0xd1,0xff,0x08,0xc6,0xff,0x10,
0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,0xd3,0xff,0x08,0xd2,0xff,
0x09,0xff,0x09,0xff,0x09,0xff,0x00,0x09,0x4f,0xff,0xcf,0xff,0x00,0xbc,0x9a,0xff,
0x48,0xff,0x00,0x5e,0x49,0xdf,0x50,0x5f,0xdf,0xc4,0x9f,0xc1,0xbf,0x00,0x08,0x49,
0x0f,0x51,0x23,0x33,0x60,0x39,0x7d,0x7c,0x7c,0xc2,0x7e,0x40,0x1a,0x7c,0x7c,0x79,
0x73,0x23,0x07,0x0f,0x4f,0x47,0x67,0x63,0x73,0x33,0x31,0x19,0x99,0xc9,0xcc,0xc4,
0x04,0x44,0x10,0x38,0x1c,0x8c,0xc0,0xf1,0xc2,0xff,0x00,0x42,0x59,0xff,0xfe,0xfc,
0x51,0xf1,0xf3,0x40,0x07,0xeb,0xcb,0x9b,0x93,0xb3,0x33,0x33,0x77,0xc2,0x27,0xc3,
0x8f,0x91,0x9f,0x51,0xbf,0x3f,0x91,0x7f,0xc1,0xff,0x00,0x07,0xc4,0xfe,0x40,0x07,
0xfc,0xf8,0xe1,0x81,0x08,0x7c,0xfe,0xfe,0xc3,0xff,0x00,0x2d,0xcc,0xff,0x00,0x0b,
0x40,0x10,0xff,0xff,0x3f,0x1f,0x8f,0xc7,0xe3,0xf3,0xf9,0xec,0xcc,0x1e,0x1e,0x3e,
0x7f,0x7f,0xff,0x08,0xc8,0xff,0xc2,0x7e,0x40,0x0f,0x7c,0xfc,0xfd,0xf9,0xf3,0xf3,
0xf7,0xe7,0xef,0xcf,0x1f,0x1f,0x3f,0x7f,0xff,0xff,0x1b,0xfc,0x00,0x0f,0x18,0xc9,
0xff,0x00,0x22,0xd3,0xff,0x28,0x40,0x07,0x7f,0x1f,0x87,0xe1,0xf8,0xfe,0xff,0xff,
0x1a,0x7f,0x37,0x23,0xc0,0xfe,0xfe,0x0c,0xf9,0xf9,0x09,0x04,0x28,0x48,0x06,0xc7,
0xfe,0x28,0x40,0x0a,0xfe,0xf8,0xe0,0x06,0x0d,0xe9,0xcf,0xcf,0xe7,0xf0,0xfc,0xdf,
0xff,0x00,0x0f,0xcf,0xff,0x17,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x08,0x40,0x0f,
0xf8,0xe1,0x84,0x1c,0x38,0x79,0x71,0xf3,0xe3,0xe7,0xcc,0x90,0x10,0x30,0x70,0xfc,
0x28,0x50,0xe3,0xc1,0xc3,0x80,0x58,0xc0,0xe0,0xfc,0x00,0x08,0x58,0x3f,0x0f,0xcf,
0xc2,0x67,0x68,0x0f,0x1f,0x20,0x00,0x3f,0xc2,0x7f,0xd4,0xff,0x00,0x09,0xc3,0xff,
0x00,0x0d,0xd2,0xff,0x49,0x7f,0x91,0x3f,0x6a,0xf8,0x80,0x0f,0x7f,0xff,0x60,0xfe,
0xfc,0xfc,0xf8,0xc2,0xf9,0x5e,0xfb,0xfb,0xfe,0xc7,0xff,0x00,0x09,0x40,0x13,0xf8,
0xf0,0xe6,0xec,0xec,0xe4,0xe4,0x30,0x00,0xc0,0xf8,0xf8,0xf2,0xf2,0xe0,0xe4,0xc8,
0x89,0x11,0x33,0x08,0x40,0x07,0x07,0x0f,0x9f,0x8f,0xcf,0xe7,0xe7,0xe3,0xc4,0xf3,
0x48,0xe3,0x10,0x50,0x0f,0x3f,0xca,0xff,0x28,0xd1,0xff,0x40,0x18,0x3f,0x0f,0xcf,
0xe7,0xe3,0xf3,0x73,0x79,0x00,0x00,0x1e,0x3f,0x3e,0x3c,0x00,0xc1,0xf0,0xe0,0xc1,
0x07,0x0f,0x1f,0x3f,0x7f,0x7f,0xc8,0xff,0x60,0xe7,0xe3,0xf3,0xf1,0xc2,0xf8,0xc3,
0xfc,0xc9,0xff,0x40,0x07,0x7f,0x7f,0x3f,0x1f,0x8f,0xc3,0xf0,0xf8,0xc2,0xff,0xc5,
0x7f,0x78,0x0f,0x03,0x30,0x78,0x1e,0x1f,0x4f,0xca,0xff,0x70,0xfb,0xf3,0xe2,0xc0,
0x0f,0x1f,0xdf,0xff,0x40,0x3c,0xfc,0xf8,0xf1,0x83,0x01,0x78,0xbc,0x9e,0xce,0xc7,
0xe7,0xf3,0x73,0x33,0x10,0x84,0x3f,0x3f,0xff,0x7c,0x30,0x0f,0x8f,0x9e,0x9c,0x1c,
0x3c,0x01,0x01,0x43,0xc3,0xc3,0x63,0x27,0x07,0x87,0xc7,0x47,0x27,0x27,0x93,0x13,
0x43,0xc3,0x83,0x07,0x27,0x67,0x73,0x73,0xf3,0x81,0x01,0x01,0xe0,0x40,0x08,0x1c,
0x3d,0xfd,0xfd,0xc3,0xf9,0x50,0xf8,0xfc,0xc3,0xfe,0x68,0xfc,0xbc,0x38,0x70,0x40,
0x08,0x68,0x3c,0xff,0xff,0x0f,0x1f,0xc6,0xff,0x70,0x3f,0x3f,0xff,0xff,0x7f,0x1f,
0x08,0x48,0xe0,0xe3,0xff,0x40,0x07,0xfc,0x38,0x03,0xc3,0xe7,0xe7,0xe4,0xe6,0xc2,
0xe7,0x58,0xc0,0xc0,0x80,0x08,0x50,0x3e,0x7f,0xc4,0xff,0x40,0x16,0xfe,0xfe,0xfc,
0xf8,0xf0,0xe0,0xc6,0x03,0x01,0x78,0xfc,0xfe,0xff,0xff,0xfe,0xfc,0xf8,0xf1,0xf3,
0xe3,0xe6,0xe6,0xce,0xc3,0xcc,0x40,0x07,0xce,0x0e,0x0f,0xe7,0xf4,0xf0,0x01,0x0f,
0xc2,0xff,0x40,0x0f,0x0f,0x1f,0x07,0x07,0x3f,0x1f,0x9f,0x9f,0xdf,0xff,0xfe,0xfc,
0xf8,0xf0,0xc0,0x80,0x08,0x50,0x41,0xcf,0xc2,0x9f,0x40,0x07,0x8f,0xcf,0xc7,0xe2,
0xf1,0xf1,0xf8,0xfe,0xe5,0xff,0x68,0xf4,0x80,0x01,0x7b,0xfb,0xc2,0xf3,0x40,0x0b,
0xe7,0xe7,0xcf,0x8f,0x1f,0x3f,0x7f,0xfe,0xfc,0xf0,0xe3,0xcf,0xc6,0xff,0x58,0x5f,
0x1f,0x3f,0x08,0x48,0xc0,0xd2,0xff,0x40,0x10,0xfc,0xf8,0xf1,0xe3,0xe7,0xe4,0xe7,
0xe3,0xf0,0xf8,0xfe,0xfe,0xf0,0xc0,0x07,0x3f,0x7f,0xc7,0xff,0x60,0xfe,0x60,0x01,
0x1f,0xf1,0xff,0x08,0x40,0x12,0xfc,0xf8,0xf1,0xe3,0xc7,0xcf,0x9f,0x9f,0x1f,0x1f,
0x1e,0x1e,0x18,0x31,0x33,0x47,0x8f,0x9f,0x3f,0xc4,0xff,0x60,0xfe,0xf8,0x00,0x07,
0xe2,0xff,0x68,0xfe,0xfc,0xf9,0xf1,0xf3,0xc4,0xe7,0x58,0xf3,0xf0,0xf8,0xca,0xff,
0x50,0x7f,0x3f,0xd7,0xff,0x08,0xc2,0xff,0x08,0xc2,0xff,0x10,0xc3,0xff,0x19,0xff,
0x08,0xc1,0xff,0x20,0x60,0xfe,0xfe,0xf8,0xf0,0xc2,0xe0,0x40,0x0a,0xc0,0xc8,0xca,
0xc8,0xc9,0xcb,0x93,0x83,0xc4,0xc0,0xf3,0xee,0xff,0x68,0xfb,0xfd,0x4c,0x24,0x00,
0xc2,0x01,0x60,0x47,0x73,0x1b,0x01,0x08,0x70,0x20,0x18,0xcf,0x07,0x87,0x5f,0xc9,
0xff,0x08,0xc7,0xff,0x08,0xc6,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,
0x07,0x4f,0xff,0xf4,0xff,0x60,0xfd,0xfc,0xf0,0xf9,0xc2,0xfc,0x40,0x0c,0xf8,0xf8,
0xfc,0xfa,0xf0,0xf8,0xfe,0xfd,0xfc,0xfe,0xf8,0xf8,0xfc,0xd1,0xff,0x08,0xc6,0xff,
0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,0xd3,0xff,0x08,0xd2,
0xff,0x09,0xff,0x09,0xff,0x09,0xff,0x00,0x09,0x4f,0xff,0xcf,0xff,0x00,0xbf,0xc1,
0xff,0x00,0x5f,0xd4,0xff,0x40,0x10,0x7f,0x3f,0x3f,0x9f,0x9f,0xcf,0xcf,0xe7,0xe7,
0xf7,0xe7,0xe7,0xcf,0x9f,0x1f,0x3f,0x7f,0xc3,0xff,0xc4,0x7f,0xc7,0x3f,0xc3,0x7f,
0x00,0x44,0x78,0xf3,0xe3,0xcb,0x9b,0x9b,0x33,0x73,0xc4,0x33,0xc5,0x73,0x60,0xf1,
0xf0,0xf0,0xf2,0xce,0xf3,0xc5,0xf0,0xc3,0xf2,0x40,0x0e,0xe3,0xc3,0x83,0x13,0x63,
0x13,0x23,0x93,0x96,0x8e,0xce,0xe6,0xe2,0xf0,0xf9,0x00,0x45,0x40,0x0b,0xff,0xff,
0x7e,0x3e,0x9c,0xc9,0xa1,0x23,0x33,0x79,0x79,0xfc,0xc3,0xfe,0xc2,0xfc,0x48,0xfd,
0xc2,0xf9,0x40,0x0e,0xfb,0xf3,0xf3,0xf7,0xe7,0xe7,0xef,0xcf,0xcf,0x9f,0x9f,0xbf,
0x3f,0x3f,0x7f,0xc3,0xff,0x23,0xfc,0xf0,0x01,0x00,0x49,0x40,0x07,0xff,0x7f,0x1f,
0x87,0xe3,0xf1,0xfc,0xfe,0x1c,0xff,0xdf,0x07,0x02,0x13,0x01,0xf3,0xfb,0x08,0x60,
0xe7,0xe7,0x27,0x07,0xc4,0x03,0x50,0x33,0xf3,0xc5,0xfb,0x48,0xf7,0x18,0x40,0x0c,
0xfe,0xfc,0xf0,0xe1,0x81,0x13,0x27,0x6f,0x1f,0x3f,0x7f,0x1f,0x80,0x00,0x47,0x40,
0x11,0x3f,0x01,0xc0,0x06,0x03,0x73,0xe7,0xe7,0xcf,0xcf,0x9f,0x1f,0x31,0x40,0x80,
0x80,0xc0,0xf0,0x28,0x48,0x8f,0xc5,0x00,0x50,0x80,0xf0,0x00,0x08,0x40,0x09,0xff,
0x7f,0x3f,0xbf,0x9f,0x3f,0x3f,0x7c,0x80,0x03,0xc3,0xff,0x00,0x43,0xc4,0xff,0x40,
0x09,0xe0,0x00,0x3f,0xff,0xfe,0xfc,0xf8,0xf9,0xf3,0xf3,0xc2,0xe7,0x60,0xce,0xcc,
0xed,0xf9,0x00,0x07,0x68,0xfe,0x7e,0x7e,0x7e,0x7f,0x00,0x0a,0x40,0x0f,0xe0,0xc0,
0x9f,0xb1,0xb0,0xb8,0x92,0xc2,0x04,0x04,0xc8,0x89,0x33,0xc7,0x8f,0x3f,0xd6,0xff,
0x00,0x0f,0xe0,0xff,0x78,0xfe,0xf0,0xc1,0x87,0x1f,0x3f,0x7f,0xcb,0xff,0x70,0xe7,
0xe3,0xf1,0xf9,0xfc,0xfc,0xc3,0xfe,0xcd,0xff,0x40,0x14,0x7f,0x3f,0x0f,0x83,0xe0,
0x08,0x03,0xf3,0xf9,0xf8,0xf8,0xf9,0xf8,0xf8,0xf3,0xf3,0xe7,0xc7,0x8f,0x1f,0x7f,
0xff,0xff,0xc2,0xff,0x40,0x0e,0x7f,0x3f,0x1e,0x9c,0xd8,0x09,0x03,0x73,0xe7,0xe7,
0xc7,0xcf,0x0f,0x0f,0x9f,0xc3,0x1f,0xc5,0x3f,0xc3,0x1f,0x40,0x09,0x9f,0x9f,0x8f,
0xcf,0x4f,0x07,0x87,0xe3,0xf3,0xf1,0xc2,0xf8,0xc2,0xf9,0xc2,0xf8,0x58,0xfc,0xfc,
0xfd,0xc3,0xff,0x48,0x7f,0xc2,0xff,0x50,0xfe,0x78,0x08,0x48,0x83,0xff,0xff,0x40,
0x0c,0xe0,0xc0,0x8e,0x9f,0x1f,0x07,0x63,0xf0,0xf8,0x08,0xc1,0xe1,0xf1,0x0a,0xe4,
0x67,0x10,0x40,0x0b,0x0f,0x38,0x70,0x03,0x81,0xf8,0x0e,0x02,0x80,0x8c,0x9f,0x9c,
0x08,0x40,0x0d,0x03,0xff,0xff,0xf0,0xe0,0xcf,0x8f,0x0f,0x67,0xe7,0xf7,0x7b,0x7c,
0xfc,0xc8,0xff,0x48,0x3f,0x08,0x78,0xe0,0xe7,0xf3,0xf3,0xf9,0xfc,0xfe,0xff,0xff,
0xc5,0xff,0x48,0xfe,0xc2,0xfc,0x68,0xe0,0xc0,0x8c,0x3c,0x70,0xc7,0xf0,0xc1,0xf3,
0xc2,0xf0,0xc2,0xf8,0x40,0x18,0x20,0x02,0xe7,0x83,0x01,0x70,0xf8,0xff,0xfe,0xfc,
0xfc,0xf8,0xf0,0xf3,0xf3,0xe3,0xe1,0x85,0x07,0xe7,0xf3,0xf3,0xf9,0xfc,0xfe,0xff,
0xff,0xce,0xff,0x50,0x0f,0x07,0xc4,0xf3,0x68,0xf0,0xf0,0xf1,0xf3,0xf3,0xc2,0xe7,
0x60,0xcf,0xcf,0x9f,0xbf,0xc2,0xff,0x40,0x0b,0xf3,0xf9,0xf8,0xf4,0xf4,0xf1,0xe6,
0xe0,0x81,0x13,0x67,0xe7,0xc5,0xcf,0x58,0xe7,0xe1,0xf0,0xdc,0xff,0x50,0x7f,0x3f,
0xd7,0xff,0x08,0xc2,0xff,0x08,0xc2,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,
0x00,0x07,0x40,0x0a,0xff,0xfe,0xf8,0xe1,0xc3,0xc7,0x87,0x8f,0x8f,0x9f,0x1f,0xc6,
0x3f,0xc3,0x9f,0x58,0xcf,0xcf,0x8f,0xc2,0x9f,0x70,0x9b,0xcb,0xc9,0xc1,0xe0,0xf0,
0xda,0xff,0x68,0xfb,0xfd,0x4c,0x24,0x00,0xc2,0x01,0x60,0x47,0x73,0x1b,0x01,0x08,
0x70,0x20,0x18,0xcf,0x07,0x87,0x5f,0xc9,0xff,0x08,0xc7,0xff,0x08,0xc6,0xff,0x10,
0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,0xf4,0xff,0x60,0xfd,0xfc,
0xf0,0xf9,0xc2,0xfc,0x40,0x0c,0xf8,0xf8,0xfc,0xfa,0xf0,0xf8,0xfe,0xfd,0xfc,0xfe,
0xf8,0xf8,0xfc,0xd1,0xff,0x08,0xc6,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,
0x00,0x07,0x4f,0xff,0xd3,0xff,0x08,0xd2,0xff,0x09,0xff,0x09,0xff,0x09,0xff,0x00,
0x09,0x4f,0xff,0xcf,0xff,0x00,0xff,0x00,0x34,0x40,0x09,0x7f,0x3f,0x9f,0x9f,0xcf,
0xc7,0xe7,0xf3,0xf3,0xfb,0xc2,0xf9,0x40,0x07,0xf3,0xf3,0xe7,0xcf,0x8f,0x1f,0x3f,
0x7f,0xc3,0x3f,0xcd,0x9f,0x60,0xbf,0x3f,0x7f,0x7f,0x00,0x40,0x40,0x0a,0xfe,0xfc,
0xf8,0xf2,0xe4,0xcc,0x9c,0x9c,0x0c,0x5c,0x5c,0xc2,0xdc,0x48,0x9c,0xc2,0x1c,0x48,
0xbc,0xc3,0x3c,0xc3,0x7d,0xc7,0xfd,0xcb,0xfc,0x40,0x0f,0xf9,0xf9,0xf1,0xc1,0x0d,
0x11,0xc5,0xc1,0xc5,0xe5,0xe7,0xf3,0xf1,0xf8,0xfc,0xfe,0x00,0x45,0x40,0x0c,0x7f,
0x3f,0x9f,0xcf,0xe7,0xe2,0xe2,0xc8,0x9c,0x9e,0x3e,0x3f,0x7f,0xc5,0xff,0xc2,0xfe,
0xc2,0xfc,0x40,0x0f,0xfd,0xf9,0xf9,0xfb,0xf3,0xf3,0xe7,0xe7,0xef,0xcf,0xcf,0x9f,
0x9f,0x3f,0x7f,0x7f,0x2c,0xff,0xf8,0xc0,0x07,0x00,0x49,0x7b,0x1f,0x07,0xe3,0xf8,
0xfc,0xfe,0xff,0x62,0x7f,0x7f,0x01,0x00,0x59,0xc0,0xfc,0xfd,0x58,0xfb,0xf9,0x19,
0xc2,0x01,0xc2,0x00,0x48,0x0c,0xc5,0xfc,0x93,0xfd,0x40,0x0c,0xff,0xff,0xfc,0xf0,
0xc0,0x04,0x19,0xd3,0xc7,0x8f,0x9f,0xc7,0xe0,0x00,0x47,0x40,0x11,0x0f,0x00,0xf0,
0xc1,0x89,0x39,0x79,0x71,0xf3,0xe3,0xe7,0xcf,0x88,0x00,0x20,0x60,0xf0,0xfc,0x2a,
0xe3,0x80,0x1c,0x80,0xc0,0xe0,0xf8,0x00,0x08,0x50,0x3f,0x1f,0xc3,0xcf,0x68,0x1f,
0x3e,0xe0,0x01,0x7f,0x00,0x4b,0x59,0xf0,0x80,0x0f,0x68,0xff,0xff,0xfe,0xfc,0xfc,
0xc2,0xf9,0xc2,0xf3,0x50,0xf2,0xfe,0x00,0x07,0x60,0xff,0x7f,0x7f,0x7f,0x00,0x0b,
0x40,0x0b,0xf0,0xe0,0xef,0xc8,0xc0,0xc4,0x0c,0x38,0xf0,0xc0,0x0e,0x3f,0xc3,0xff,
0x00,0x26,0xe1,0xff,0x40,0x07,0xfc,0xf0,0xe3,0xc7,0x9f,0x3f,0x7f,0x7f,0xc9,0xff,
0x40,0x0c,0xf7,0xf3,0xf9,0x78,0x3c,0x1c,0x8e,0xce,0xe6,0xe6,0xe4,0x67,0x67,0xc3,
0xe7,0x60,0xcf,0xcf,0xc7,0x87,0xc4,0xf3,0x40,0x07,0xe3,0xe1,0xe0,0xcf,0x87,0x80,
0x38,0x7f,0xff,0xff,0xcf,0xff,0x40,0x10,0x3f,0x0f,0xce,0x64,0x24,0x90,0xc1,0xc1,
0x43,0x63,0x27,0x27,0x07,0x07,0x87,0x8f,0x01,0x08,0x40,0x08,0x1e,0x0f,0xe7,0xf3,
0xf9,0x7c,0x3e,0x9e,0xdf,0xd2,0xff,0x50,0xfe,0xf8,0x08,0x48,0x03,0xff,0xff,0xcd,
0xff,0x40,0x24,0xf8,0x30,0x03,0x0c,0x10,0x23,0x09,0x8c,0xcc,0xc6,0xe2,0xf0,0xf8,
0xfe,0xff,0x7f,0x7f,0xfe,0xe0,0xc0,0xe3,0xe3,0xc0,0x1c,0x9f,0x07,0x23,0x39,0x7c,
0x3f,0x3f,0xbf,0x1f,0x0f,0x87,0x83,0x01,0x08,0x68,0xc1,0xcf,0x0f,0x0f,0xcf,0xc2,
0xe7,0x60,0xf3,0xf1,0xf8,0xfc,0xff,0xff,0xcf,0xff,0x40,0x0b,0xfc,0x7c,0x18,0x89,
0xc1,0xe1,0xf1,0xf9,0xf9,0xfd,0xfc,0xfc,0xc2,0xfe,0xc2,0xff,0x40,0x11,0x7f,0x03,
0x82,0x02,0x21,0x58,0xd8,0xcc,0xce,0xec,0xe0,0xe1,0xf3,0xf2,0xf8,0xf8,0xfc,0xfe,
0xc2,0xff,0x40,0x08,0xe0,0xe1,0xe3,0xf3,0xe3,0xe7,0xcf,0x1f,0x7f,0xff,0xff,0xd0,
0xff,0x68,0xfc,0xf0,0xe1,0xe7,0xc7,0xc2,0xcf,0xc2,0x9f,0x40,0x0e,0x8f,0x8f,0xc7,
0xc3,0xe3,0xf1,0xf8,0xfe,0x0f,0x07,0xe6,0xf0,0xf0,0xf1,0xf1,0xc8,0xf9,0xc1,0xfb,
0xc2,0xff,0x40,0x07,0x7f,0x3f,0x0f,0x37,0x11,0x84,0xc0,0xf8,0xd7,0xff,0x50,0x7f,
0x3f,0xd7,0xff,0x08,0xc2,0xff,0x08,0xc2,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,
0xff,0x00,0x07,0x4f,0xff,0xcb,0xff,0x68,0xfe,0xf8,0xf1,0xe3,0xc7,0xc3,0x8f,0x40,
0x0c,0x87,0x87,0x97,0x97,0xcb,0xcf,0xcf,0xc7,0xe7,0xe3,0xf1,0xf9,0xfc,0xc2,0xfe,
0xcf,0xff,0x68,0xfb,0xfd,0x4c,0x24,0x00,0xc2,0x01,0x61,0x47,0x73,0x1b,0x01,0x70,
0x20,0x18,0xcf,0x07,0x87,0x5f,0xc9,0xff,0x08,0xc7,0xff,0x08,0xc6,0xff,0x10,0xc3,
0xff,0x19,0xff,0x08,0xc1,0xff,0x00,0x07,0x4f,0xff,0xf4,0xff,0x60,0xfd,0xfc,0xf0,
0xf9,0xc2,0xfc,0x40,0x0c,0xf8,0xf8,0xfc,0xfa,0xf0,0xf8,0xfe,0xfd,0xfc,0xfe,0xf8,
0xf8,0xfc,0xd1,0xff,0x08,0xc6,0xff,0x10,0xc3,0xff,0x19,0xff,0x08,0xc1,0xff,0x00,
0x07,0x4f,0xff,0xd3,0xff,0x08,0xd2,0xff,0x09,0xff,0x09,0xff,0x09,0xff,0x00,0x09,
0x4f,0xff,0xcf,0xff
};
#endif

SSOLED ssoled; // single display structure

void setup() {
int rc;
rc = oledInit(&ssoled, OLED_TYPE, OLED_ADDR, FLIP180, INVERT, USE_HW_I2C, SDA_PIN, SCL_PIN, RESET_PIN, 400000L);
} /* setup() */

void loop() {
uint8_t *pAnim = (uint8_t *)bAnimation; // point to first frame

while (1)
{ // play all frames (automatically starts over when it reaches the end)
    pAnim = oledPlayAnimFrame(&ssoled, (uint8_t *)bAnimation, pAnim, sizeof(bAnimation));
    delay(20); // simplistic rate control; should manage the variable time per frame
}
} /* loop() */

驴友花雕 发表于 2021-9-26 19:59:41

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之三:基于Adafruit_SH1106库的标准屏幕测试

实验开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之三:基于Adafruit_SH1106库的标准屏幕测试
实验接线:
oled模块    Ardunio Uno
GND---------GND接地线
VCC---------5V 接电源
SDA---------D6
SCL ------- D4
*/

//#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>

#define OLED_RESET 4
Adafruit_SH1106 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH16
static const unsigned char PROGMEM logo16_glcd_bmp[] =
{ B00000000, B11000000,
B00000001, B11000000,
B00000001, B11000000,
B00000011, B11100000,
B11110011, B11100000,
B11111110, B11111000,
B01111110, B11111111,
B00110011, B10011111,
B00011111, B11111100,
B00001101, B01110000,
B00011011, B10100000,
B00111111, B11100000,
B00111111, B11110000,
B01111100, B11110000,
B01110000, B01110000,
B00000000, B00110000
};

#if (SH1106_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SH1106.h!");
#endif

void setup()   {
Serial.begin(9600);

// by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
display.begin(SH1106_SWITCHCAPVCC, 0x3C);// initialize with the I2C addr 0x3D (for the 128x64)
// init done

// Show image buffer on the display hardware.
// Since the buffer is intialized with an Adafruit splashscreen
// internally, this will display the splashscreen.
display.display();
delay(2000);

// Clear the buffer.
display.clearDisplay();

// draw a single pixel
display.drawPixel(10, 10, WHITE);
// Show the display buffer on the hardware.
// NOTE: You _must_ call display after making any drawing commands
// to make them visible on the display hardware!
display.display();
delay(2000);
display.clearDisplay();

// draw many lines
testdrawline();
display.display();
delay(2000);
display.clearDisplay();

// draw rectangles
testdrawrect();
display.display();
delay(2000);
display.clearDisplay();

// draw multiple rectangles
testfillrect();
display.display();
delay(2000);
display.clearDisplay();

// draw mulitple circles
testdrawcircle();
display.display();
delay(2000);
display.clearDisplay();

// draw a white circle, 10 pixel radius
display.fillCircle(display.width() / 2, display.height() / 2, 10, WHITE);
display.display();
delay(2000);
display.clearDisplay();

testdrawroundrect();
delay(2000);
display.clearDisplay();

testfillroundrect();
delay(2000);
display.clearDisplay();

testdrawtriangle();
delay(2000);
display.clearDisplay();

testfilltriangle();
delay(2000);
display.clearDisplay();

// draw the first ~12 characters in the font
testdrawchar();
display.display();
delay(2000);
display.clearDisplay();

// draw scrolling text
/* testscrolltext();
    delay(2000);
    display.clearDisplay();*/

// text display tests
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Hello, world!");
display.setTextColor(BLACK, WHITE); // 'inverted' text
display.println(3.141592);
display.setTextSize(2);
display.setTextColor(WHITE);
display.print("0x"); display.println(0xDEADBEEF, HEX);
display.display();
delay(2000);

// miniature bitmap display
display.clearDisplay();
display.drawBitmap(30, 16,logo16_glcd_bmp, 16, 16, 1);
display.display();

// invert the display
display.invertDisplay(true);
delay(1000);
display.invertDisplay(false);
delay(1000);

// draw a bitmap icon and 'animate' movement
testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH);
}

void loop() {
}

void testdrawbitmap(const uint8_t *bitmap, uint8_t w, uint8_t h) {
uint8_t icons;

// initialize
for (uint8_t f = 0; f < NUMFLAKES; f++) {
    icons = random(display.width());
    icons = 0;
    icons = random(5) + 1;

    Serial.print("x: ");
    Serial.print(icons, DEC);
    Serial.print(" y: ");
    Serial.print(icons, DEC);
    Serial.print(" dy: ");
    Serial.println(icons, DEC);
}

while (1) {
    // draw each icon
    for (uint8_t f = 0; f < NUMFLAKES; f++) {
      display.drawBitmap(icons, icons, logo16_glcd_bmp, w, h, WHITE);
    }
    display.display();
    delay(200);

    // then erase it + move it
    for (uint8_t f = 0; f < NUMFLAKES; f++) {
      display.drawBitmap(icons, icons,logo16_glcd_bmp, w, h, BLACK);
      // move it
      icons += icons;
      // if its gone, reinit
      if (icons > display.height()) {
      icons = random(display.width());
      icons = 0;
      icons = random(5) + 1;
      }
    }
}
}

void testdrawchar(void) {
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);

for (uint8_t i = 0; i < 168; i++) {
    if (i == '\n') continue;
    display.write(i);
    if ((i > 0) && (i % 21 == 0))
      display.println();
}
display.display();
}

void testdrawcircle(void) {
for (int16_t i = 0; i < display.height(); i += 2) {
    display.drawCircle(display.width() / 2, display.height() / 2, i, WHITE);
    display.display();
}
}

void testfillrect(void) {
uint8_t color = 1;
for (int16_t i = 0; i < display.height() / 2; i += 3) {
    // alternate colors
    display.fillRect(i, i, display.width() - i * 2, display.height() - i * 2, color % 2);
    display.display();
    color++;
}
}

void testdrawtriangle(void) {
for (int16_t i = 0; i < min(display.width(), display.height()) / 2; i += 5) {
    display.drawTriangle(display.width() / 2, display.height() / 2 - i,
                         display.width() / 2 - i, display.height() / 2 + i,
                         display.width() / 2 + i, display.height() / 2 + i, WHITE);
    display.display();
}
}

void testfilltriangle(void) {
uint8_t color = WHITE;
for (int16_t i = min(display.width(), display.height()) / 2; i > 0; i -= 5) {
    display.fillTriangle(display.width() / 2, display.height() / 2 - i,
                         display.width() / 2 - i, display.height() / 2 + i,
                         display.width() / 2 + i, display.height() / 2 + i, WHITE);
    if (color == WHITE) color = BLACK;
    else color = WHITE;
    display.display();
}
}

void testdrawroundrect(void) {
for (int16_t i = 0; i < display.height() / 2 - 2; i += 2) {
    display.drawRoundRect(i, i, display.width() - 2 * i, display.height() - 2 * i, display.height() / 4, WHITE);
    display.display();
}
}

void testfillroundrect(void) {
uint8_t color = WHITE;
for (int16_t i = 0; i < display.height() / 2 - 2; i += 2) {
    display.fillRoundRect(i, i, display.width() - 2 * i, display.height() - 2 * i, display.height() / 4, color);
    if (color == WHITE) color = BLACK;
    else color = WHITE;
    display.display();
}
}

void testdrawrect(void) {
for (int16_t i = 0; i < display.height() / 2; i += 2) {
    display.drawRect(i, i, display.width() - 2 * i, display.height() - 2 * i, WHITE);
    display.display();
}
}

void testdrawline() {
for (int16_t i = 0; i < display.width(); i += 4) {
    display.drawLine(0, 0, i, display.height() - 1, WHITE);
    display.display();
}
for (int16_t i = 0; i < display.height(); i += 4) {
    display.drawLine(0, 0, display.width() - 1, i, WHITE);
    display.display();
}
delay(250);

display.clearDisplay();
for (int16_t i = 0; i < display.width(); i += 4) {
    display.drawLine(0, display.height() - 1, i, 0, WHITE);
    display.display();
}
for (int16_t i = display.height() - 1; i >= 0; i -= 4) {
    display.drawLine(0, display.height() - 1, display.width() - 1, i, WHITE);
    display.display();
}
delay(250);

display.clearDisplay();
for (int16_t i = display.width() - 1; i >= 0; i -= 4) {
    display.drawLine(display.width() - 1, display.height() - 1, i, 0, WHITE);
    display.display();
}
for (int16_t i = display.height() - 1; i >= 0; i -= 4) {
    display.drawLine(display.width() - 1, display.height() - 1, 0, i, WHITE);
    display.display();
}
delay(250);

display.clearDisplay();
for (int16_t i = 0; i < display.height(); i += 4) {
    display.drawLine(display.width() - 1, 0, 0, i, WHITE);
    display.display();
}
for (int16_t i = 0; i < display.width(); i += 4) {
    display.drawLine(display.width() - 1, 0, i, display.height() - 1, WHITE);
    display.display();
}
delay(250);
}

/*void testscrolltext(void) {
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(10,0);
display.clearDisplay();
display.println("scroll");
display.display();

display.startscrollright(0x00, 0x0F);
delay(2000);
display.stopscroll();
delay(1000);
display.startscrollleft(0x00, 0x0F);
delay(2000);
display.stopscroll();
delay(1000);
display.startscrolldiagright(0x00, 0x07);
delay(2000);
display.startscrolldiagleft(0x00, 0x07);
delay(2000);
display.stopscroll();
}*/

驴友花雕 发表于 2021-9-27 11:08:52

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之五:I2C 检测器 - 使用 BitBang_I2C 库扫描和识别 I2C 总线上的设备

实验开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之五:I2C 检测器 - 使用 BitBang_I2C 库扫描和识别 I2C 总线上的设备
实验接线:
oled模块    Ardunio Uno
GND---------GND接地线
VCC---------5V 接电源
SDA---------D6
SCL ------- D4
*/

// I2C Detector - scan and identify devices on an I2C bus using the BitBang_I2C library
//
// The purpose of this code is to provide a sample sketch which can serve
// to detect not only the addresses of I2C devices, but what type of device each one is.
// So far, I've added the 25 devices I've personally used or found to be reliably detected
// based on their register contents. I encourage people to do pull requests to add support
// for more devices to make this code have wider appeal.

// There are plenty of I2C devices which appear at fixed addresses, yet don't have unique
// "Who_Am_I" registers or other data to reliably identify them. It's certainly possible to
// write code which initializes these devices and tries to verify their identity. This can
// potentially damage them and would necessarily increase the code size. I would like to keep
// the size of this code small enough so that it can be included in many microcontroller
// projects where code space is scarce.

// Copyright (c) 2019 BitBank Software, Inc.
// Written by Larry Bank
// email: bitbank@pobox.com
// Project started 25/02/2019
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.If not, see <http://www.gnu.org/licenses/>.
//
// Uses my Bit Bang I2C library. You can find it here:
// https://github.com/bitbank2/BitBang_I2C
#include <BitBang_I2C.h>

// Arbitrary pins I used for testing with an ATmega328p
// Define as -1, -1 to use the Wire library over the default I2C interface
#define SDA_PIN A4
#define SCL_PIN A5
// M5Stack Atom Grove connector pin assignments
//#define SDA_PIN 32
//#define SCL_PIN 26
// M5Stack Atom internal I2C connected to the IMU
//#define SDA_PIN 25
//#define SCL_PIN 21
// M5Stack Core2 internal I2C
#define SDA_PIN 8
#define SCL_PIN 9
//
// If you don't need the explicit device names displayed, disable this code by
// commenting out the next line
//
#define SHOW_NAME
#ifdef SHOW_NAME
const char *szNames[]= {"Unknown","SSD1306","SH1106","VL53L0X","BMP180", "BMP280","BME280",
                "MPU-60x0", "MPU-9250", "MCP9808","LSM6DS3", "ADXL345", "ADS1115","MAX44009",
                "MAG3110", "CCS811", "HTS221", "LPS25H", "LSM9DS1","LM8330", "DS3231", "LIS3DH",
                "LIS3DSH","INA219","SHT3X","HDC1080","MPU6886","BME680", "AXP202", "AXP192", "24AA02XEXX",
                "DS1307", "MPU688X", "FT6236G", "FT6336G", "FT6336U", "FT6436", "BM8563","BNO055"};
#endif

BBI2C bbi2c;

void setup() {
Serial.begin(115200);
memset(&bbi2c, 0, sizeof(bbi2c));
bbi2c.bWire = 0; // use bit bang, not wire library
bbi2c.iSDA = SDA_PIN;
bbi2c.iSCL = SCL_PIN;
I2CInit(&bbi2c, 100000L);
delay(100); // allow devices to power up
}

void loop() {
uint8_t map;
uint8_t i;
int iDevice, iCount;

Serial.println("Starting I2C Scan");
I2CScan(&bbi2c, map); // get bitmap of connected I2C devices
if (map == 0xfe) // something is wrong with the I2C bus
{
    Serial.println("I2C pins are not correct or the bus is being pulled low by a bad device; unable to run scan");
}
else
{
    iCount = 0;
    for (i=1; i<128; i++) // skip address 0 (general call address) since more than 1 device can respond
    {
      if (map & (1 << (i & 7))) // device found
      {
      iCount++;
      Serial.print("Device found at 0x");
      Serial.print(i, HEX);
      iDevice = I2CDiscoverDevice(&bbi2c, i);
      Serial.print(", type = ");
#ifdef SHOW_NAME
      Serial.println(szNames); // show the device name as a string
#else
      Serial.println(iDevice); // show the device name as the enum index
#endif
      }
    } // for i
    Serial.print(iCount, DEC);
    Serial.println(" device(s) found");
}
delay(5000);
}

驴友花雕 发表于 2021-9-26 13:37:32

SH1106 是一款带有控制器的单芯片 CMOS OLED/PLED 驱动器,用于有机/聚合物发光二极管点阵图形显示系统。 SH1106由132段、64个公共端组成,可支持最大132 X 64的显示分辨率。专为共阴极型 OLED 面板设计。SH1106 内嵌对比度控制、显示 RAM 振荡器和高效的 DC-DC 转换器,减少了外部元件和功耗。 SH1106 适用于各种紧凑型便携式应用,例如手机、计算器、MP3播放器等副显示。

SH1106功能框图



驴友花雕 发表于 2021-9-26 13:43:18



SH1106的主要特征
„ 支持最大 132 X 64 点阵面板
„ 嵌入式 132 X 64 位 SRAM
„ 工作电压:
- 逻辑电压供应:VDD1 = 1.65V - 3.5V
- DC-DC 电压供应:VDD2 = 3.0V – 4.2V
- OLED 工作电压供应:
外部 VPP 电源 = 6.4V - 13.0V
内部 VPP 发生器 = 6.4V - 9.0V
„ 最大段输出电流:200μA
„ 最大公共吸收电流:27mA
„ 8 位 6800 系列并行接口,8 位 8080 系列
并行接口,3 线和 4 线串行外设
接口,400KHz快速I2
C总线接口
„ 可编程帧频和复用率
„ 行重映射和列重映射 (ADC)
„ 垂直滚动
„ 片上振荡器
„ 可编程内部电荷泵电路输出
„ 单色无源 OLED 上的 256 级对比度控制
控制板
„ 低功耗
- 睡眠模式:<5μA
- VDD1=0V,VDD2=3.0V – 4.2V: <5μA
- VDD1,2=0V,VPP=3.0V – 4.2V: <5μA
„ 工作温度范围广:-40 至 +85°C
„ 可提供 COG 形式,厚度:300μm

驴友花雕 发表于 2021-9-26 14:10:11


驴友花雕 发表于 2021-9-26 14:12:05


驴友花雕 发表于 2021-9-26 14:12:48


驴友花雕 发表于 2021-9-26 14:19:27

I2C接口电路



驴友花雕 发表于 2021-9-26 15:05:38




驴友花雕 发表于 2021-9-26 15:11:51

1.3寸OLED液晶屏I2C IIC通信 4针模块 1106/1306驱动 132*64像素




驴友花雕 发表于 2021-9-26 15:24:35




驴友花雕 发表于 2021-9-26 15:26:21


驴友花雕 发表于 2021-9-26 15:28:56

电原理图


驴友花雕 发表于 2021-9-26 15:30:06


驴友花雕 发表于 2021-9-26 19:08:49

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之一:点亮SH1106屏幕
实验接线:
oled模块    Ardunio Uno
GND---------GND接地线
VCC---------5V 接电源
SDA---------D6
SCL ------- D4

实验开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之一:点亮SH1106屏幕
实验接线:
oled模块    Ardunio Uno
GND---------GND接地线
VCC---------5V 接电源
SDA---------D6
SCL ------- D4
*/

#include <Wire.h>
#include <sh1106.h>

volatile boolean g_writeValue = false;
volatile int g_displayValue = 0;

sh1106_lcd *g_pLCD = NULL;

void setup() {
Serial.begin(9600);
g_pLCD = sh1106_lcd::getInstance();
if (g_pLCD != NULL)
{
    g_pLCD->ClearScreen();
}
g_writeValue = true;
}

// Quick sketch showing functionality of library
void loop() {
if (g_writeValue == true) {
    g_pLCD->DrawRectangle(2, 2, 128, 62, 2);// draw a box from 0, 0 to 100, 48
    g_pLCD->DrawRectangle(20, 20, 108, 42, 2);
    g_pLCD->FillRectangle(25, 25, 30, 30);
    g_pLCD->FillRectangle(80, 45, 100, 60);
    g_pLCD->Show();
    delay(1000);

    g_pLCD->PrintLine("0123456789");
    g_pLCD->PrintLine("aBcDEF GHIJK");
    g_pLCD->PrintLine("LMNOP QRSTUV");
    g_pLCD->PrintLine("WXYZ");
    g_pLCD->PrintLine("AAAA");
    g_pLCD->PrintLine("EEEE");
    g_pLCD->PrintLine("FFFF");
    g_pLCD->PrintLine("GGGG");
    delay(1000);
    g_pLCD->PrintLine("HHHH");

    g_pLCD->DrawPixel(10, 2, true);
    g_pLCD->DrawPixel(127, 0, true);
    g_pLCD->DrawPixel(127, 63, true);
    g_pLCD->DrawPixel(10, 63, true);
    g_pLCD->DrawPixel(0, 63, true);
    g_pLCD->DrawPixel(63, 3, true);
    g_pLCD->Show();
    delay(1000);
    g_writeValue = false;
}
else {
    g_pLCD->ClearScreen();
    g_pLCD->DrawLine(20, 31, 127, 31);
    g_pLCD->DrawLine(0, 0, 115, 50);
    g_pLCD->DrawLine(50, 50, 20, 20);
    g_pLCD->DrawLine(0, 50, 0, 120);
    g_pLCD->DrawLine(64, 0, 64, 64);
    g_pLCD->DrawLine(0, 80, 6, 110);
    g_pLCD->Show();
    while (1);
}
}

驴友花雕 发表于 2021-9-26 19:13:30

实验场景图


驴友花雕 发表于 2021-9-26 19:15:14




驴友花雕 发表于 2021-9-26 19:42:28

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之二:显示二行字符
实验接线:
oled模块    Ardunio Uno
GND---------GND接地线
VCC---------5V 接电源
SDA---------D6
SCL ------- D4

实验开源仿真编程(Linkboy V4.62)



驴友花雕 发表于 2021-9-26 19:44:04

实验场景图


驴友花雕 发表于 2021-9-26 20:18:52

实验场景图




驴友花雕 发表于 2021-9-26 20:23:59

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百八十一:1.3寸OLED液晶屏 I2C IIC通信 4针模块 1106/1306驱动 132*64像素
项目之三:基于Adafruit_SH1106库的标准屏幕测试显示

实验视频剪辑

https://v.youku.com/v_show/id_XNTgwOTMyMTk3Ng==.html?firsttime=0

https://v.youku.com/v_show/id_XNTgwOTMyMTk3Ng==.html?firsttime=0

页: [1] 2 3
查看完整版本: 【Arduino】168种传感器系列实验(181)---1.3寸OLED液晶屏模块