Raspberry Pi Pico: OLED-дисплей SSD1306 (Arduino IDE)

В этом руководстве показано, как использовать OLED-дисплей SSD1306 с Raspberry Pi Pico в Arduino IDE. Мы покажем вам, как выводить текст, устанавливать различные шрифты, рисовать фигуры и отображать растровые изображения.

Raspberry Pi Pico с OLED-дисплеем SSD1306 Arduino IDE

У нас есть аналогичное руководство с использованием Raspberry Pi Pico и MicroPython: Raspberry Pi Pico: OLED-дисплей SSD1306 (MicroPython).

Предварительные требования

Вам необходимо установить платы Raspberry Pi Pico в Arduino IDE, и вы должны знать, как загружать код на плату. Ознакомьтесь со следующим руководством, если вы ещё этого не сделали:

Знакомство с OLED-дисплеем 0.96 дюйма

OLED-дисплей, который мы будем использовать в этом руководстве – это модель SSD1306: монохромный дисплей размером 0.96 дюйма с разрешением 128x64 пикселей, как показано на следующем рисунке.

OLED-дисплей 0.96 дюйма SSD1306

OLED-дисплей не требует подсветки, что обеспечивает очень хороший контраст в тёмных условиях. Кроме того, его пиксели потребляют энергию только когда они включены, поэтому OLED-дисплей потребляет меньше энергии по сравнению с другими дисплеями.

Модель, которую мы используем, имеет четыре контакта и взаимодействует с любым микроконтроллером по протоколу связи I2C. Существуют модели с дополнительным контактом RESET или использующие протокол связи SPI.

Необходимые компоненты

Вот список компонентов, которые вам понадобятся для этого проекта:

  • OLED-дисплей SSD1306 0.96 дюйма 128x64

  • Raspberry Pi Pico

  • Макетная плата

  • Соединительные провода

Распиновка OLED-дисплея SSD1306

OLED-дисплей использует протокол связи I2C, поэтому подключение достаточно простое. Вы можете использовать следующую таблицу в качестве справки. Стандартные контакты I2C, используемые Raspberry Pi Pico при работе с Arduino IDE – это GPIO 4 (SDA) и GPIO 5 (SCL).

Контакт

Raspberry Pi Pico

Vin

3.3V (OUT)

GND

GND

SCL

GPIO 5

SDA

GPIO 4

Вы также можете использовать следующую схему подключения в качестве справки.

Схема подключения Raspberry Pi Pico с OLED-дисплеем

Установка библиотеки SSD1306 OLED

Существует несколько библиотек для управления OLED-дисплеем, совместимых с Raspberry Pi Pico. В этом руководстве мы будем использовать две библиотеки Adafruit: Adafruit_SSD1306 и Adafruit_GFX.

Выполните следующие шаги для установки этих библиотек.

  1. Откройте Arduino IDE и перейдите в Sketch > Include Library > Manage Libraries. Откроется менеджер библиотек.

  2. Введите «SSD1306» в поле поиска и установите библиотеку SSD1306 от Adafruit.

Установка библиотеки SSD1306 OLED

Появится сообщение с предложением также установить библиотеку GFX. Установите эту библиотеку.

Установка библиотек SSD1306 OLED и Adafruit GFX
  1. Если это сообщение не появилось, установите библиотеку GFX вручную. Введите «GFX» в поле поиска и установите библиотеку.

Установка библиотеки Adafruit GFX
  1. После установки библиотек вы готовы начать управление OLED-дисплеем.

Вывод текста – OLED-дисплей

Библиотека Adafruit для OLED-дисплея поставляется с несколькими функциями для вывода текста. В этом разделе вы узнаете, как выводить текст, используя функции библиотеки.

«Hello, world!» на OLED-дисплее

Следующий скетч выводит сообщение Hello, world! на OLED-дисплее.

/*********
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-ssd1306-oled-arduino/

  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*********/

//Default I2C pins for Raspberry Pi Pico
// SDA --> GPIO 4
// SCL --> GPIO 5

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

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

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  delay(2000);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 10);
  // Display static text
  display.println("Hello, world!!!");
  display.display();
}

void loop() {

}

Давайте быстро разберём, как работает код.

Подключение библиотек

Сначала вам нужно подключить необходимые библиотеки. Библиотеку Wire для использования I2C и библиотеки Adafruit для работы с дисплеем: Adafruit_GFX и Adafruit_SSD1306.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Инициализация OLED-дисплея

Затем вы определяете ширину и высоту OLED-дисплея. В этом примере мы используем OLED-дисплей 128x64. Если вы используете дисплей другого размера, вы можете изменить это в переменных SCREEN_WIDTH и SCREEN_HEIGHT.

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

Затем инициализируйте объект дисплея с заданными ранее шириной и высотой, используя протокол связи I2C (&Wire).

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

Параметр (-1) означает, что ваш OLED-дисплей не имеет контакта RESET. Если ваш OLED-дисплей имеет контакт RESET, он должен быть подключён к GPIO. В этом случае вы должны передать номер GPIO в качестве параметра.

В функции setup() инициализируйте Serial Monitor с baud rate 115200 для целей отладки.

Serial.begin(115200);

Инициализируйте OLED-дисплей с помощью метода begin() следующим образом:

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
  Serial.println("SSD1306 allocation failed");
  for(;;); // Don't proceed, loop forever
}

Этот фрагмент также выводит сообщение в Serial Monitor, если не удалось подключиться к дисплею.

Serial.println("SSD1306 allocation failed");

Если вы используете другой OLED-дисплей, возможно, вам потребуется изменить адрес OLED. В нашем случае адрес – 0x3C.

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {

Если этот адрес не работает, вы можете запустить скетч I2C-сканера, чтобы найти адрес вашего OLED. Вы можете найти скетч I2C-сканера здесь.

После инициализации дисплея добавьте двухсекундную задержку, чтобы OLED-дисплей успел инициализироваться перед выводом текста:

delay(2000);

Очистка дисплея, настройка шрифта и вывод текста

После инициализации дисплея очистите буфер дисплея методом clearDisplay():

display.clearDisplay();

Перед выводом текста необходимо задать размер текста, цвет и место отображения текста на OLED-дисплее.

Задайте размер шрифта с помощью метода setTextSize():

display.setTextSize(1);

Задайте цвет шрифта с помощью метода setTextColor():

display.setTextColor(WHITE);

WHITE устанавливает белый шрифт на чёрном фоне.

Определите позицию, с которой начинается текст, с помощью метода setCursor(x,y). В данном случае мы устанавливаем начало текста в координатах (0,0) – в верхнем левом углу.

display.setCursor(0,0);

Наконец, вы можете отправить текст на дисплей с помощью метода println() следующим образом:

display.println("Hello, world!!!");

Затем необходимо вызвать метод display(), чтобы фактически отобразить текст на экране.

display.display();

Загрузка кода на Raspberry Pi Pico

Чтобы загрузить код на Raspberry Pi Pico, плата должна находиться в режиме загрузчика.

Если на Raspberry Pi Pico в данный момент установлена прошивка MicroPython, вам нужно вручную перевести его в режим загрузчика. Для этого подключите Raspberry Pi Pico к компьютеру, одновременно удерживая кнопку BOOTSEL.

Raspberry Pi Pico в режиме загрузчика

Для последующих загрузок с использованием Arduino IDE плата должна автоматически переходить в режим загрузчика без необходимости нажимать кнопку BOOTSEL.

Теперь выберите ваш COM-порт в Tools > Port. Может случиться так, что COM-порт будет недоступен (серый). Если это так, не беспокойтесь – порт будет автоматически найден, когда вы нажмёте кнопку загрузки.

Raspberry Pi Pico - COM-порт не найден в Arduino IDE

Загрузите код.

Кнопка загрузки Arduino 2.0

Вы должны получить сообщение об успешной загрузке.

Успешная загрузка кода на Raspberry Pi Pico

Демонстрация

После загрузки кода OLED-дисплей покажет сообщение «Hello, world!!!».

Raspberry Pi Pico OLED-дисплей базовый пример

Использование других шрифтов – OLED-дисплей

Библиотека Adafruit GFX позволяет нам использовать другие шрифты помимо встроенных. Она позволяет выбирать между Serif, Sans и Mono. Каждый шрифт доступен в жирном, курсивном начертании и в различных размерах.

Размеры устанавливаются самим шрифтом. Поэтому метод setTextSize() не работает с этими шрифтами. Шрифты доступны в размерах 9, 12, 18 и 24 пункта, а также содержат 7-битные символы (коды ASCII) (обозначаются как 7b в названии шрифта).

Вы можете выбрать из следующего списка шрифтов:

FreeMono12pt7b.h             FreeSansBoldOblique12pt7b.h
FreeMono18pt7b.h             FreeSansBoldOblique18pt7b.h
FreeMono24pt7b.h             FreeSansBoldOblique24pt7b.h
FreeMono9pt7b.h                      FreeSansBoldOblique9pt7b.h
FreeMonoBold12pt7b.h         FreeSansOblique12pt7b.h
FreeMonoBold18pt7b.h         FreeSansOblique18pt7b.h
FreeMonoBold24pt7b.h         FreeSansOblique24pt7b.h
FreeMonoBold9pt7b.h          FreeSansOblique9pt7b.h
FreeMonoBoldOblique12pt7b.h  FreeSerif12pt7b.h
FreeMonoBoldOblique18pt7b.h  FreeSerif18pt7b.h
FreeMonoBoldOblique24pt7b.h  FreeSerif24pt7b.h
FreeMonoBoldOblique9pt7b.h   FreeSerif9pt7b.h
FreeMonoOblique12pt7b.h              FreeSerifBold12pt7b.h
FreeMonoOblique18pt7b.h              FreeSerifBold18pt7b.h
FreeMonoOblique24pt7b.h              FreeSerifBold24pt7b.h
FreeMonoOblique9pt7b.h               FreeSerifBold9pt7b.h
FreeSans12pt7b.h             FreeSerifBoldItalic12pt7b.h
FreeSans18pt7b.h             FreeSerifBoldItalic18pt7b.h
FreeSans24pt7b.h             FreeSerifBoldItalic24pt7b.h
FreeSans9pt7b.h                      FreeSerifBoldItalic9pt7b.h
FreeSansBold12pt7b.h         FreeSerifItalic12pt7b.h
FreeSansBold18pt7b.h         FreeSerifItalic18pt7b.h
FreeSansBold24pt7b.h         FreeSerifItalic24pt7b.h
FreeSansBold9pt7b.h          FreeSerifItalic9pt7b.h

Лучше всего с OLED-дисплеем работают шрифты размером 9 и 12 пунктов.

Чтобы использовать один из этих шрифтов, сначала вам нужно включить его в свой скетч, например:

#include <Fonts/FreeSerifBoldItalic9pt7b.h>

Затем вам просто нужно использовать метод setFont() и передать в качестве аргумента указанный шрифт:

display.setFont(&FreeSerifBoldItalic9pt7b);

После указания шрифта все методы для вывода текста будут использовать этот шрифт. Чтобы вернуться к использованию исходного шрифта, просто вызовите метод setFont() без аргументов:

display.setFont();

Загрузите следующий скетч на вашу плату:

/*********
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-ssd1306-oled-arduino/

  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*********/

//Default I2C pins for Raspberry Pi Pico
// SDA --> GPIO 4
// SCL --> GPIO 5

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeSerifBoldItalic9pt7b.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

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

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println("SSD1306 allocation failed");
    for(;;);
  }
  delay(2000);

  display.setFont(&FreeSerifBoldItalic9pt7b);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,20);
  display.println("Hello, world!");
  display.display();
  delay(2000);
}
void loop() {

}

Теперь ваш дисплей выводит сообщение «Hello, world!» шрифтом FreeSerif жирным курсивом.

Raspberry Pi Pico OLED-дисплей - другой тип шрифта

Рисование фигур на OLED-дисплее

Библиотека Adafruit OLED предоставляет полезные методы для рисования пикселей, линий и фигур. Давайте быстро рассмотрим эти методы.

Рисование пикселя

Raspberry Pi Pico Arduino OLED-дисплей пиксель

Чтобы нарисовать пиксель на OLED-дисплее, вы можете использовать метод drawPixel(x, y, color), который принимает в качестве аргументов координаты x и y, где появится пиксель, и цвет. Например:

display.drawPixel(64, 32, WHITE);

Рисование линии

Raspberry Pi Pico Arduino OLED-дисплей линия

Используйте метод drawLine(x1, y1, x2, y2, color) для создания линии. Координаты (x1, y1) указывают начало линии, а координаты (x2, y2) указывают, где линия заканчивается. Например:

display.drawLine(0, 0, 127, 20, WHITE);

Рисование прямоугольника

Raspberry Pi Pico Arduino OLED-дисплей прямоугольник

Метод drawRect(x, y, width, height, color) предоставляет простой способ нарисовать прямоугольник. Координаты (x, y) указывают верхний левый угол прямоугольника. Затем вам нужно указать ширину, высоту и цвет:

display.drawRect(10, 10, 50, 30, WHITE);

Вы можете использовать метод fillRect(x, y, width, height, color) для рисования закрашенного прямоугольника. Этот метод принимает те же аргументы, что и drawRect().

Raspberry Pi Pico Arduino OLED-дисплей закрашенный прямоугольник

Библиотека также предоставляет методы для отображения прямоугольников с закруглёнными углами: drawRoundRect() и fillRoundRect(). Эти методы принимают те же аргументы, что и предыдущие методы, плюс радиус угла. Например:

display.drawRoundRect(10, 10, 30, 50, 2, WHITE);
Raspberry Pi Pico Arduino OLED-дисплей прямоугольник вертикальный

Или закрашенный прямоугольник с закруглёнными углами:

display.fillRoundRect(10, 10, 30, 50, 2, WHITE);
Raspberry Pi Pico Arduino OLED-дисплей прямоугольник вертикальный закрашенный

Рисование круга

Raspberry Pi Pico Arduino OLED-дисплей круг

Чтобы нарисовать круг, используйте метод drawCircle(x, y, radius, color). Координаты (x, y) указывают центр круга. Вы также должны передать радиус в качестве аргумента. Например:

display.drawCircle(64, 32, 10, WHITE);

Аналогично, чтобы построить закрашенный круг, используйте метод fillCircle() с теми же аргументами:

display.fillCircle(64, 32, 10, WHITE);
Raspberry Pi Pico Arduino OLED-дисплей закрашенный круг

Рисование треугольника

Raspberry Pi Pico Arduino OLED-дисплей треугольник

Используйте метод drawTriangle(x1, y1, x2, y2, x3, y3, color) для построения треугольника. Этот метод принимает в качестве аргументов координаты каждого угла и цвет.

display.drawTriangle(10, 10, 55, 20, 5, 40, WHITE);

Используйте метод fillTriangle() для рисования закрашенного треугольника.

display.fillTriangle(10, 10, 55, 20, 5, 40, WHITE);
Raspberry Pi Pico Arduino OLED-дисплей закрашенный треугольник

Инверсия

Библиотека предоставляет дополнительный метод, который можно использовать с фигурами или текстом: метод invertDisplay(). Передайте true в качестве аргумента для инверсии цветов экрана или false для возврата к исходным цветам.

Если вы вызовете следующую команду после определения треугольника:

display.invertDisplay(true);

Вы получите инвертированный треугольник, как показано ниже:

Raspberry Pi Pico Arduino OLED-дисплей треугольник с инвертированным фоном

Код – Рисование фигур

Загрузите следующий скетч, который реализует все фрагменты кода, рассмотренные ранее, и отображает все эти фигуры.

/*********
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-ssd1306-oled-arduino/

  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*********/

//Default I2C pins for Raspberry Pi Pico
// SDA --> GPIO 4
// SCL --> GPIO 5

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

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

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  delay(2000); // Pause for 2 seconds

  // Clear the buffer
  display.clearDisplay();

  // Draw a single pixel in white
  display.drawPixel(64, 32, WHITE);
  display.display();
  delay(3000);

  // Draw line
  display.clearDisplay();
  display.drawLine(0, 0, 127, 20, WHITE);
  display.display();
  delay(3000);

  // Draw rectangle
  display.clearDisplay();
  display.drawRect(30, 10, 50, 30, WHITE);
  display.display();
  delay(3000);
  // Fill rectangle
  display.fillRect(30, 10, 50, 30, WHITE);
  display.display();
  delay(3000);

  // Draw round rectangle
  display.clearDisplay();
  display.drawRoundRect(10, 10, 30, 50, 2, WHITE);
  display.display();
  delay(3000);
  // Fill round rectangle
  display.clearDisplay();
  display.fillRoundRect(10, 10, 30, 50, 2, WHITE);
  display.display();
  delay(3000);

  // Draw circle
  display.clearDisplay();
  display.drawCircle(64, 32, 10, WHITE);
  display.display();
  delay(3000);
  // Fill circle
  display.fillCircle(64, 32, 10, WHITE);
  display.display();
  delay(3000);

  // Draw triangle
  display.clearDisplay();
  display.drawTriangle(10, 10, 55, 20, 5, 40, WHITE);
  display.display();
  delay(3000);
  // Fill triangle
  display.fillTriangle(10, 10, 55, 20, 5, 40, WHITE);
  display.display();
  delay(3000);

  // Invert and restore display, pausing in-between
  display.invertDisplay(true);
  delay(3000);
  display.invertDisplay(false);
  delay(3000);
}

void loop() {

}

Отображение растровых изображений на OLED

Вы можете отображать монохромные растровые изображения размером 128x64 на OLED-дисплее.

Сначала используйте графическую программу для изменения размера фотографии или изображения и сохраните его как монохромный bitmap. Если вы работаете на ПК с Windows, вы можете использовать Paint. Изображение должно быть размером 128x64 пикселей.

Отображение растровых изображений на OLED -- конвертация изображения

Не забудьте сохранить изображение в формате Monochrome Bitmap.

Сохранение изображения в формате монохромного bitmap

Затем используйте конвертер Image to C Array для преобразования изображения в массив. Мы использовали LCD Image Converter.

Запустите программу и начните с нового изображения. Перейдите в Image > Import и выберите растровое изображение, созданное ранее.

LCD Image Converter

Перейдите в Options > Conversion и на вкладке Prepare выберите пресет Monochrome:

Отображение растровых изображений на OLED -- экспорт конвертации

Затем нажмите OK. Наконец, в главном меню перейдите в File > Convert. Будет сохранён новый файл с расширением .c. Этот файл содержит массив C для изображения. Откройте этот файл в текстовом редакторе и скопируйте массив.

В нашем случае вот массив, который мы получили:

/*******************************************************************************
* generated by lcd-image-converter rev.030b30d from 2019-03-17 01:38:34 +0500
* image
* filename: unsaved
* name: Image
*
* preset name: Monochrome
* data block size: 8 bit(s), uint8_t
* RLE compression enabled: no
* conversion type: Monochrome, Diffuse Dither 128
* split to rows: yes
* bits per pixel: 1
*
* preprocess:
*  main scan direction: top_to_bottom
*  line scan direction: forward
*  inverse: no
*******************************************************************************/

/*
 typedef struct {
     const uint8_t *data;
     uint16_t width;
     uint16_t height;
     uint8_t dataSize;
     } tImage;
*/
#include <stdint.h>

static const uint8_t image_data_Image[1024] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7f, 0x3c, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7f, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7f, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xfc, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3f, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const tImage Image = { image_data_Image, 128, 64,
    8 };

Скопируйте ваш массив в скетч. Затем, чтобы отобразить массив, используйте метод drawBitmap(), который принимает следующие аргументы (x, y, массив изображения, ширина изображения, высота изображения, поворот). Координаты (x, y) определяют, откуда начинает отображаться изображение.

Скопируйте код ниже, чтобы отобразить ваше растровое изображение на OLED.

/*********
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-ssd1306-oled-arduino/

  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*********/

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

static const uint8_t image_data_Ruiarray[1024] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7f, 0x3c, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7f, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7f, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xfc, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3f, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

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

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  delay(2000); // Pause for 2 seconds

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

  // Draw bitmap on the screen
  display.drawBitmap(0, 0, image_data_Ruiarray, 128, 64, 1);
  display.display();
}

void loop() {

}

После загрузки кода вот что мы получили на дисплее.

Raspberry Pi Pico OLED-дисплей растровые изображения

Устранение неполадок

Если вы получаете ошибку «SSD1306 allocation failed» или OLED ничего не отображает на экране, это может быть одна из следующих проблем:

Неверный I2C-адрес

I2C-адрес OLED-дисплея, который мы используем – 0x3C. Однако ваш может отличаться. Поэтому обязательно проверьте I2C-адрес вашего дисплея с помощью скетча I2C-сканера.

SDA и SCL подключены неправильно

Убедитесь, что контакты SDA и SCL OLED-дисплея подключены правильно. В случае Raspberry Pi Pico стандартные контакты I2C в Arduino IDE – GPIO 4 (SDA) и GPIO 5 (SCL).

Заключение

В этом руководстве мы показали вам, как выводить текст, рисовать фигуры и отображать растровые изображения на OLED-дисплее с использованием Raspberry Pi Pico, запрограммированного в Arduino IDE.