Введение в работу с графическими экранами на Arduino

lcd vison Новости

Веселый человечек

В этом шаблоне мы отображаем простые изображения один за другим очень быстро с помощью функции растрового изображения. Таким образом, вы можете сделать свою анимацию этим трюком. Загрузите файл .h и добавьте его в папку эскиза Arduino.

#include "Adafruit_GFX.h"
#include "MCUFRIEND_kbv.h"
MCUFRIEND_kbv tft;
 
#include "image.h"
 
#include "Fonts/FreeSans9pt7b.h"
#include "Fonts/FreeSans12pt7b.h"
#include "Fonts/FreeSerif12pt7b.h"
#include "FreeDefaultFonts.h"
 
#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF
#define GREY    0x8410
#define ORANGE  0xE880
 
void showmsgXY(int x, int y, int sz, const GFXfont *f, const char *msg)
{
    int16_t x1, y1;
    uint16_t wid, ht;
    tft.setFont(f);
    tft.setCursor(x, y);
    tft.setTextColor(WHITE);
    tft.setTextSize(sz);
    tft.print(msg);
}
 
void setup()
{
    Serial.begin(9600);
    uint16_t ID = tft.readID();
    tft.begin(ID);
    tft.setRotation(1);
    tft.invertDisplay(true);
    tft.fillScreen(tft.color565(0,20,0));
    showmsgXY(20, 40, 2, &FreeSans9pt7b, "La Linea");
    tft.setRotation(0);
}
 
void loop(){
 
while(1){
   tft.drawBitmap(20, 180, Line1, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line2, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line3, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line4, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line5, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line6, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line7, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line8, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line9, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line10, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line11, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line12, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line13, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line14, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line15, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line16, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line17, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128,tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line18, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line19, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line20, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line21, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line22, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line23, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line24, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line25, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128,tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line26, 258, 128, WHITE);delay(40);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
      tft.drawBitmap(20, 180, Line27, 258, 128, WHITE);delay(60);
   tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0));
 }
}

Как вывести изображение или видео с телефона на телевизор lg

Современные гаджеты и домашняя техника уже давно стали взаимодополняемыми устройствами благодаря возможности подключения их к интернету и синхронизации. И это очень удобно, так как позволяет расширить функционал и сделать использование проще и удобнее. Например, можно управлять телевизором LG с функцией Smart TV при помощи смартфона (превратив его в пульт дистанционного управления) или выводить изображение и видео со смартфона на экран телевизора. 

Для чего это нужно? Плюсы подключения смартфона к телевизору LG:

Синхронизация смартфона несет в себе множество преимуществ. И вот главные из них:

  • Вы сможете смотреть фото и видео из «Галереи» смартфона на большом экране телевизора в высоком качестве. 
  • Можно играть в любимые мобильные игры, выведя изображение на телевизор, а также пользоваться различными приложениями (например, спортивными приложениями, приложениями для изучения иностранного языка и т.д.). 
  • Очень удобно просматривать различные сайты, а также читать документы и просматривать презентации.

Как подключить смартфон к телевизору LG: пошаговая инструкция

Выведение изображений и видео со смартфона на телевизор LG возможно несколькими способами, как при помощи кабеля, так и используя беспроводные сети.  

  1. При помощи Screen Share

Screen Share – программа, специально созданная для синхронизации телефона и телевизора LG Smart TV и просмотра контента на большом экране. Перенос изображений и видео осуществляется при помощи 

Стандарта Miracast (технология Wi-Fi Direct). Соединение со 100% вероятностью можно осуществить, если у вас телевизор и смартфон марки LG. Со смартфонами других производителей опция может не поддерживаться. 

Для того, чтобы начать процесс синхронизации, нужно:

Важно: производители рекомендуют пользоваться телефоном в горизонтальном режиме и заблокировать смену положений экрана, чтобы картинка на экране телевизора не отображалась развернутой на 90°.

  1. При помощи Wi-Fi Direct

Обладатели смартфонов марок, отличных от LG, могут попробовать вывести изображение и видео с телефона на телевизор при помощи функции Wi-Fi Direct. Это возможно в том случае, если ваш телевизор LG современной модели и поддерживает Wi-Fi. 

Для того, чтобы синхронизировать смартфон и телевизор LG через Wi-Fi Direct: 

  • Убедитесь, что на вашем смартфоне установлена операционная система Android в прошивке выше 4.0. 
  • В «Настройках» выберите пункт «Беспроводные сети», затем пункт Wi-Fi.
  • Нажмите на три вертикальные точки в правом верхнем углу. В открывшемся меню выберите пункт Wi-Fi Direct. 
  • Если вы не нашли эту опцию, нажмите на пункт «Дополнительные настройки». 
  • Включите телевизор при помощи пульта дистанционного управления и войдите в главное меню. 
  • Выберите пункт «Сеть», а в нем раздел Wi-Fi Direct. 
  • В открывшемся списке доступных для синхронизации устройств выберите имя вашего смартфона. 
  • На самом телефоне появится запрос на подключение, подтвердите его, следуя инструкциям.
  1. При помощи HDMI

Подключение смартфона к телевизору LG через HDMI возможно в том случае, если телефон оснащен интерфейсом mini HDMI, в остальных случаях понадобится дополнительно покупать специальный переходник. 

  • Вставьте один конец кабеля HDMI в разъем на задней панели вашего телевизора, а второй разъем подключите к порту телефона. 
  • Зайдите в “Главное меню” телевизора и выберите раздел “Источник сигнала” / Нажмите кнопку Input. 
  • Выберите в качестве источника сигнала тот разъем HDMI, к которому подключен смартфон. Номер разъема можно посмотреть на задней стенке телевизора, но в подавляющем большинстве случаев он единственный активен.

Этим способом можно вывести изображение и видео на телевизор LG  практически с любого смартфона: LG, Samsung, Huavei, Lenovо. Для того, чтобы синхронизировать iPhone, понадобится специальный переходник Lightning – HDMI. 

  1. При помощи других разъемов

Также разные модели смартфонов можно подключать к телевизору LG, используя различные разъемы. Например, ряд моделей телефонов LG (в том числе LG 2X) оснащены специальным портом Micro HDMI или более современным USB Type-C. Также ряд смартфонов демократичных моделей поддерживают стандарт MHL (Mobil High Definition Link), при помощи которого сигнал поступает непосредственно с порта передачи данных и зарядки Micro-USB. Аналог MHL – cтандарт SlimPort, реализованный во многих моделях смартфонов LG, позволяющий передавать видео в разрешении 1080р. 

Все эти способы подходят для старых моделей смартфонов. Для новых моделей рекомендуется предпочесть беспроводные способы передачи данных.

Читайте так же «Вопросы и ответы» 

Совместное использование экрана / дублирование экрана – с устройства на телевизор LG

Скетч 02_draw

#include <Adafruit_GFX.h>#include <Adafruit_SSD1306.h>#define SCREEN_WIDTH 128#define SCREEN_HEIGHT 64#define OLED_MOSI   9#define OLED_CLK   10#define OLED_DC    11#define OLED_CS    12#define OLED_RESET 13

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

voidsetup()
{
  display.begin(SSD1306_SWITCHCAPVCC);
  display.dim(true);
}

voidloop()
{
  display.clearDisplay();

  display.drawPixel(5, 5, SSD1306_WHITE);
  display.drawFastHLine(10, 5, 5, SSD1306_WHITE);
  display.drawFastVLine(5, 10, 10, SSD1306_WHITE);

  display.drawCircle(30, 10, 10, SSD1306_WHITE);
  display.fillCircle(55, 10, 10, SSD1306_WHITE);

  display.drawTriangle(70, 20, 80, 0, 80, 20, SSD1306_WHITE);
  display.fillTriangle(85, 0, 85, 20, 95, 20, SSD1306_WHITE);

  display.drawRect(100, 0, 10, 20, SSD1306_WHITE);
  display.fillRect(115, 0, 10, 20, SSD1306_WHITE);

  display.drawRoundRect(5, 30, 20, 30, 5, SSD1306_WHITE);
  display.drawRoundRect(10, 35, 10, 20, 5, SSD1306_WHITE);
  display.drawPixel(15, 40, SSD1306_WHITE);
  display.drawPixel(15, 45, SSD1306_WHITE);
  display.drawPixel(15, 50, SSD1306_WHITE);

  display.fillRoundRect(30, 30, 20, 30, 5, SSD1306_WHITE);

  display.fillRoundRect(55, 30, 50, 30, 20, SSD1306_WHITE);
  display.fillRoundRect(60, 35, 40, 20, 10, SSD1306_BLACK);

  display.drawLine(105, 35, 125, 65, SSD1306_WHITE);
  display.drawLine(105, 65, 125, 35, SSD1306_WHITE);

  display.display();

  delay(3000);
  
  while (true)
    for (int i =0; i <4; i  )
    {
      display.setRotation(i);
      display.drawLine(0, 0, 20, 20, SSD1306_INVERSE);
      display.drawLine(1, 0, 21, 20, SSD1306_INVERSE);
      display.drawLine(0, 1, 20, 21, SSD1306_INVERSE);
      display.display();
      delay(1000);
    }
}

В первой части кода приведены примеры использования всех доступных в библиотеке функций рисования. Во второй части циклически поворачивается экран и инверсивным цветом рисуются линии. Как можете заметить, при повторном рисовании линии инверсивным цветом, исходное изображение восстанавливается.

Используя поворот экрана не забывайте, что при повороте меняется и его разрешение:

Имеющихся в библиотеки функций рисования примитивов может быть недостаточно, чтобы одним вызовом функции нарисовать необходимое. Может понадобиться задавать толщину, рисовать овалы, эллипсы, дуги, иметь возможность задавать угол поворота фигуры или какую её часть. Можно использовать другую библиотеку, в которой есть необходимый функционал или реализовать его самостоятельно.

Алгоритмы компьютерной графики и расширение функционала библиотек к данной теме не относятся, а в рамках этой, обращу внимание на некоторые моменты.

Функции вывода текста, отрисовки изображений и графических примитивов только меняют значения цвета в буфере, а уже при вызове функции display содержимое этого буфера и передаёт драйверу экрана. При выводе на экран не вызывайте display, когда в этом нет необходимости – «нарисовали» всё необходимое и только тогда вызывается display. Посмотрите на такой код:

Скетч 03_image_eyes1

#include <Adafruit_GFX.h>#include <Adafruit_SSD1306.h>#define SCREEN_WIDTH 128#define SCREEN_HEIGHT 64#define OLED_MOSI   9#define OLED_CLK   10#define OLED_DC    11#define OLED_CS    12#define OLED_RESET 13
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

//image size 48x24staticconstuint8_t PROGMEM eyes1[] =
{
  0x00, 0x3f, 0xc0, 0x01, 0xf8, 0x00,
  0x00, 0xff, 0xf0, 0x07, 0xff, 0x00,
  0x03, 0xff, 0xf8, 0x1f, 0xff, 0x80,
  0x07, 0xff, 0xfc, 0x1f, 0xff, 0xe0,
  0x0f, 0xff, 0xfc, 0x3f, 0xff, 0xf0,
  0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xf8,
  0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xf8,
  0x3f, 0xff, 0xfe, 0x7f, 0xff, 0xfc,
  0x3f, 0xff, 0xfe, 0x7f, 0xff, 0xfc,
  0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe,
  0x7f, 0xfe, 0x3e, 0x78, 0xff, 0xfe,
  0x7f, 0xfe, 0x3e, 0x78, 0xff, 0xfe,
  0xff, 0xfe, 0x3e, 0x78, 0xff, 0xff,
  0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff,
  0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff,
  0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfe,
  0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfe,
  0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xfe,
  0x7f, 0xff, 0xf0, 0x1f, 0xff, 0xfe,
  0x3f, 0xff, 0xf0, 0x0f, 0xff, 0xfc,
  0x1f, 0xff, 0xe0, 0x07, 0xff, 0xfc,
  0x0f, 0xff, 0x80, 0x03, 0xff, 0xf8,
  0x07, 0xff, 0x00, 0x00, 0xff, 0xf0,
  0x01, 0xf8, 0x00, 0x00, 0x3f, 0xc0
};

staticconstuint8_t PROGMEM eyes2[] =
{
  0x00, 0x3f, 0xc0, 0x01, 0xf8, 0x00,
  0x00, 0xff, 0xf0, 0x07, 0xff, 0x00,
  0x03, 0xff, 0xf8, 0x1f, 0xff, 0x80,
  0x07, 0xff, 0xfc, 0x1f, 0xff, 0xe0,
  0x0f, 0xff, 0xfc, 0x3f, 0xff, 0xf0,
  0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xf8,
  0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xf8,
  0x3f, 0xff, 0xfe, 0x7f, 0xff, 0xfc,
  0x3f, 0xff, 0xfe, 0x7f, 0xff, 0xfc,
  0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe,
  0x7f, 0xff, 0xc6, 0x7f, 0x1f, 0xfe,
  0x7f, 0xff, 0xc6, 0x7f, 0x1f, 0xfe,
  0xff, 0xff, 0xc6, 0x7f, 0x1f, 0xff,
  0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff,
  0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff,
  0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfe,
  0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfe,
  0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xfe,
  0x7f, 0xff, 0xf0, 0x1f, 0xff, 0xfe,
  0x3f, 0xff, 0xf0, 0x0f, 0xff, 0xfc,
  0x1f, 0xff, 0xe0, 0x07, 0xff, 0xfc,
  0x0f, 0xff, 0x80, 0x03, 0xff, 0xf8,
  0x07, 0xff, 0x00, 0x00, 0xff, 0xf0,
  0x01, 0xf8, 0x00, 0x00, 0x3f, 0xc0
};

voidsetup()
{
  display.begin(SSD1306_SWITCHCAPVCC);
  display.dim(1);
}

voidloop()
{
  display.clearDisplay();
  display.drawBitmap(40, 24, eyes1, 48, 24, 1);
  display.display();
  delay(2000);

  display.clearDisplay();
  display.drawBitmap(40, 24, eyes2, 48, 24, 1);
  display.display();
  delay(2000);
}

Для вывода на экран, изображение должно храниться в оперативной или flash-памяти. В данном скетче данные хранятся и считываются из flash-памяти, вот эти объявления:

static
const uint8_t PROGMEM eyes1[] =

static
const uint8_t PROGMEM eyes2[] =

Что бы изображение выводилось из
оперативной памяти, объявление массивов нужно сделать так:

uint8_t
eyes1[] =

uint8_t eyes2[] =

Скетч 04_image_eyes2

Здесь изображений уже не два и каждое изображение для удобства уже храниться не в отдельной переменной, а в двумерном массиве. Так удобней, если в цикле нужно выводить последовательность анимации или
как в данном примере при вызове функции и т.д.

#include <Adafruit_GFX.h>#include <Adafruit_SSD1306.h>#define SCREEN_WIDTH 128#define SCREEN_HEIGHT 64#define OLED_MOSI   9#define OLED_CLK   10#define OLED_DC    11#define OLED_CS    12#define OLED_RESET 13
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

#define imageWidth  64#define imageHeight 64staticconstuint8_t PROGMEM imageArray[6][512] =
{
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x07, 0xff, 0x80, 0x01, 0xff, 0xe0, 0x00,
    0x00, 0x1f, 0xff, 0xf0, 0x07, 0xff, 0xf8, 0x00,
    0x00, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xfe, 0x00,
    0x00, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0x00,
    0x01, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0x80,
    0x01, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0x80,
    0x00, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0x00,
    0x00, 0x70, 0x00, 0x78, 0x1e, 0x00, 0x1e, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  },
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x00,
    0x0f, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xf0,
    0x3f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xfc,
    0x3f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfc,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfe,
    0x7f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfe,
    0x3f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xf8,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  }
  ,
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
    0x01, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
    0x01, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
    0x03, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
    0x07, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
    0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
    0x1f, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xfe, 0x00,
    0x1f, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xe0,
    0x1f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xf8,
    0x1f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf8,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x1f, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
    0x0f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xfc,
    0x0f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xfc,
    0x0f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xf8,
    0x03, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xf0,
    0x01, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
    0x01, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  }
  ,
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0x80,
    0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x80,
    0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xc0,
    0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xe0,
    0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0,
    0x00, 0x7f, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xf8,
    0x07, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xf8,
    0x1f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xf8,
    0x1f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf8,
    0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf0,
    0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf0,
    0x1f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xf0,
    0x0f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xc0,
    0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x80,
    0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x80,
    0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  }
  ,
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x0f, 0xfc, 0x70, 0x00, 0x00, 0x00, 0x00,
    0xff, 0xff, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00,
    0xff, 0xff, 0xfc, 0x7f, 0xc0, 0x00, 0x00, 0x00,
    0xff, 0xff, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00,
    0xff, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0x00, 0x00,
    0xff, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0x00, 0x00,
    0xff, 0xff, 0xf8, 0x7f, 0xff, 0xfe, 0x00, 0x00,
    0xff, 0xff, 0xf8, 0x3f, 0xff, 0xfe, 0x00, 0x00,
    0xff, 0xff, 0xf0, 0x3f, 0xff, 0xfc, 0x00, 0x00,
    0x7f, 0xff, 0xe0, 0x1f, 0xff, 0xf8, 0x00, 0x00,
    0x3f, 0xff, 0x80, 0x03, 0xff, 0xe0, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  },
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x0e, 0x3f, 0xf0, 0x00,
    0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0xff, 0xff,
    0x00, 0x00, 0x00, 0x03, 0xfe, 0x3f, 0xff, 0xff,
    0x00, 0x00, 0x00, 0x3f, 0xfe, 0x3f, 0xff, 0xff,
    0x00, 0x00, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff,
    0x00, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xff,
    0x00, 0x00, 0x7f, 0xff, 0xfe, 0x1f, 0xff, 0xff,
    0x00, 0x00, 0x7f, 0xff, 0xfc, 0x1f, 0xff, 0xff,
    0x00, 0x00, 0x3f, 0xff, 0xfc, 0x0f, 0xff, 0xff,
    0x00, 0x00, 0x1f, 0xff, 0xf8, 0x07, 0xff, 0xfe,
    0x00, 0x00, 0x07, 0xff, 0xc0, 0x01, 0xff, 0xfc,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  }
};

voidsetup()
{
  display.begin(SSD1306_SWITCHCAPVCC);
}

voidloop()
{
  display.clearDisplay();

  draw(0, 32, 0);
  draw(1, 32, 0);
  draw(2, 16, 0);
  draw(3, 48, 0);
  draw(4, 16, 16);
  draw(5, 48, 16);

  draw(1, 32, 0);
  delay(2000);

  crt_off();
}

voiddraw(int i, int x, int y)
{
  display.clearDisplay();
  display.drawBitmap(x, y,  imageArray[i], imageWidth, imageHeight, SSD1306_WHITE);
  display.display();
  delay(1000);
}

voidcrt_off()
{
  display.fillRect(0, 0, 128, 64, SSD1306_WHITE);
  display.display();
  delay(2000);

  uint8_t step =2;
  uint8_t x =0;
  uint8_t y =0;
  uint8_t w =128;
  uint8_t h =64;

  while (h >4)
  {
    display.clearDisplay();
    //void fillRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color);
    display.fillRect(0, y, w, h, SSD1306_WHITE);
    display.display();
    delay(15);
    h -= step *2;
    y  = step;
  }

  step =2;
  x =0;
  w =128;
  y =30;
  h =4;
  while (w >4)
  {
    display.clearDisplay();
    display.fillRect(x, y, w, h, SSD1306_WHITE);
    display.display();
    //delay(10);
    w -= step *2;
    x  = step;
  }

  display.clearDisplay();
  display.display();
  delay(3000);
}

Скетч 05_battery

Использовать отображение изображений ещё можно при выводе иконок для информирования, что в данный момент происходит приём или передача данных, отображение уровня заряда аккумулятора или анимация при его зарядке, состояние вентилятора (выключен или анимация, когда включен), выставлен ли будильник часов, активирован ли GPS-модуль и т.д.

#include <Adafruit_GFX.h>#include <Adafruit_SSD1306.h>#define SCREEN_WIDTH 128#define SCREEN_HEIGHT 64#define OLED_MOSI   9#define OLED_CLK   10#define OLED_DC    11#define OLED_CS    12#define OLED_RESET 13
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

staticconstuint8_t PROGMEM battery_icons[4][48] =
{
  {
    0x00, 0x00, 0x00,
    0x0f, 0xff, 0xff,
    0x0f, 0xff, 0xff,
    0x0c, 0x00, 0x03,
    0xfc, 0x00, 0x03,
    0xfc, 0x00, 0x03,
    0xcc, 0x00, 0x03,
    0xcc, 0x00, 0x03,
    0xcc, 0x00, 0x03,
    0xcc, 0x00, 0x03,
    0xfc, 0x00, 0x03,
    0xfc, 0x00, 0x03,
    0x0c, 0x00, 0x03,
    0x0f, 0xff, 0xff,
    0x0f, 0xff, 0xff,
    0x00, 0x00, 0x00
  },
  {
    0x00, 0x00, 0x00,
    0x0f, 0xff, 0xff,
    0x0f, 0xff, 0xff,
    0x0c, 0x00, 0x03,
    0xfc, 0x00, 0x7b,
    0xfc, 0x00, 0x7b,
    0xcc, 0x00, 0x7b,
    0xcc, 0x00, 0x7b,
    0xcc, 0x00, 0x7b,
    0xcc, 0x00, 0x7b,
    0xfc, 0x00, 0x7b,
    0xfc, 0x00, 0x7b,
    0x0c, 0x00, 0x03,
    0x0f, 0xff, 0xff,
    0x0f, 0xff, 0xff,
    0x00, 0x00, 0x00
  },
  {
    0x00, 0x00, 0x00,
    0x0f, 0xff, 0xff,
    0x0f, 0xff, 0xff,
    0x0c, 0x00, 0x03,
    0xfc, 0x0f, 0x7b,
    0xfc, 0x0f, 0x7b,
    0xcc, 0x0f, 0x7b,
    0xcc, 0x0f, 0x7b,
    0xcc, 0x0f, 0x7b,
    0xcc, 0x0f, 0x7b,
    0xfc, 0x0f, 0x7b,
    0xfc, 0x0f, 0x7b,
    0x0c, 0x00, 0x03,
    0x0f, 0xff, 0xff,
    0x0f, 0xff, 0xff,
    0x00, 0x00, 0x00
  },
  {
    0x00, 0x00, 0x00,
    0x0f, 0xff, 0xff,
    0x0f, 0xff, 0xff,
    0x0c, 0x00, 0x03,
    0xfd, 0xef, 0x7b,
    0xfd, 0xef, 0x7b,
    0xcd, 0xef, 0x7b,
    0xcd, 0xef, 0x7b,
    0xcd, 0xef, 0x7b,
    0xcd, 0xef, 0x7b,
    0xfd, 0xef, 0x7b,
    0xfd, 0xef, 0x7b,
    0x0c, 0x00, 0x03,
    0x0f, 0xff, 0xff,
    0x0f, 0xff, 0xff,
    0x00, 0x00, 0x00
  }
};

voidsetup()
{
  display.begin(SSD1306_SWITCHCAPVCC);
}

voidloop()
{
  while (true)
    for (uint8_t i =0; i <4; i  )
    {
      display.clearDisplay();
      display.drawBitmap(104, 0,  battery_icons[i], 24, 16, 1);
      display.display();
      delay(750);
    }
}

Скетч 06_image_scroll

Аппаратные возможности прокрутки изображений на экране в SSD1306 не очень большие, но даже в таком виде они могут оказаться полезными.

#include <Adafruit_GFX.h>#include <Adafruit_SSD1306.h>#define SCREEN_WIDTH 128#define SCREEN_HEIGHT 64#define OLED_MOSI   9#define OLED_CLK   10#define OLED_DC    11#define OLED_CS    12#define OLED_RESET 13
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

//image size 128x64staticconstunsignedchar PROGMEM arrowLeft[] =
{
  0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff
};

voidsetup()
{
  display.begin(SSD1306_SWITCHCAPVCC);
  display.dim(1);
}

voidloop()
{
  display.clearDisplay();
  display.drawLine(0, 0, 127, 63, SSD1306_WHITE);
  display.display();

  for (uint8_t i =0; i <8; i  )
  {
    display.startscrollright(i, i);
    delay(2000);
    display.stopscroll();
  }
  delay(300);

  display.clearDisplay();
  display.drawCircle(10, 50, 10, SSD1306_WHITE);
  display.display();
  delay(1500);

  display.startscrolldiagright(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  display.startscrolldiagleft(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  display.startscrolldiagright(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  display.startscrolldiagleft(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1500);

  display.clearDisplay();
  display.drawBitmap(0, 0,  arrowLeft, 128, 64, 1);
  display.display();
  delay(3000);
  display.startscrolldiagright(0x04, 0x05);
  delay(6000);
  display.stopscroll();
  delay(2000);

  display.clearDisplay();
  display.drawBitmap(0, 0,  arrowLeft, 128, 64, 1);
  display.display();
  display.startscrollleft(0x00, 0x0F);

  delay(10000);
  display.stopscroll();

  delay(5000);
}

Оцените статью
Huawei Devices
Добавить комментарий