Дисплей OLED 0.96 I2C 128x64 (Blue)

  • Рейтинг:
    0 отзывов
  • Модель:
    0.96 i2c 128x64 blue
  • Артикул:
    17-9083971
  • Доступно:
    11 шт.
  • Вес:
    5.00 г
190.00 р.
Есть в наличии

Дисплей OLED 0.96 I2C 128x64 (синий с полоской желтой)

Данный OLED-дисплей обеспечивает высококонтрастное изображение с идеальным черным цветом и широкими углами обзора благодаря технологии органических светодиодов. Его ключевым преимуществом является крайне низкое энергопотребление, так как каждый пиксель подсвечивается независимо, что критически важно для автономных устройств на микроконтроллерах. Интерфейс I2C минимизирует количество задействованных пинов контроллера до двух (SDA и SCL), упрощая интеграцию в проекты.

Модуль оснащен встроенным драйвером SSD1306, который полностью управляет формированием изображения, освобождая ресурсы MCU. Желтая полоска в нижней части экрана — это отдельная аппаратная область, состоящая из монохромных (желтых) OLED-пикселей, что позволяет выводить на нее статическую информацию (например, уровень заряда или статус системы) независимо от основного синего поля.

  • Тип дисплея: OLED (Organic Light-Emitting Diode)
  • Разрешение: 128 x 64 пикселей
  • Цвета: Основная область — синий, верхняя полоса — желтый
  • Интерфейс связи: I2C (протокол шины IIC)
  • Адрес I2C по умолчанию: 0x3C (может быть 0x3D)
  • Напряжение питания: 3.3В - 5В
  • Контроллер: SSD1306
  • Габариты экрана: 0.96 дюйма по диагонали
  • Габариты модуля: ~27мм x 28мм
  • Угол обзора: > 160°

Особенности и применение OLED-технологии

OLED-дисплеи, в отличие от жидкокристаллических (LCD), не требуют внешней подсветки. Каждый субпиксель является самостоятельным источником света, который включается или выключается по команде контроллера. Это обеспечивает бесконечную контрастность (соотношение между самым ярким и самым темным цветом), так как черный цвет достигается полным отключением пикселей. Данная особенность делает OLED идеальным для отображения интерфейсов с темными темами, что дополнительно экономит энергию.

Модуль с раздельной цветовой областью (синий/желтый) технически представляет собой дисплей с двумя независимыми аппаратными сегментами, управляемыми одним драйвером. Желтые пиксели часто имеют другой химический состав органических эмиттеров, что и определяет их цвет. В проектах это позволяет визуально разделять информацию: на основном синем поле выводить динамически меняющиеся данные (графики, текст), а на желтой полосе — постоянные элементы.

Важно учитывать, что OLED-дисплеи подвержены выгоранию (деградации органических материалов) при длительном отображении статичной картинки. Для увеличения срока службы в прошивке рекомендуется реализовывать меры защиты: смещение выводимого контента на несколько пикселей, периодическое отключение дисплея или снижение яркости. Несмотря на это, для большинства любительских и прототипных проектов срок службы такого модуля является более чем достаточным.


  Каждый дисплей проверен по скетчу ниже

VCC 3.3V Питание дисплея

GND GND Общий провод

SDA GPIO 21 Линия данных

SCL GPIO 22 Линия синхронизации

Настройка Arduino IDE (перед загрузкой)

Установите платформу ESP32:

Файл → Настройки → в поле Дополнительные ссылки для менеджера плат вставьте: https://dl.espressif.com/dl/package_esp32_index.json .

Инструменты → Плата → Менеджер плат... → найдите и установите ESP32 by Espressif Systems.

Установите библиотеки (через менеджер библиотек: Скетч → Подключить библиотеку → Управлять библиотеками...):

Adafruit GFX Library (основная графическая библиотека)

Adafruit SSD1306 (драйвер для вашего дисплея) .


#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Настройки дисплея
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET    -1 // Сброс по программно (пин не используется)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
  Serial.begin(115200);
  
  // Инициализация дисплея (адрес 0x3C самый распространенный)
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { 
    Serial.println(F("SSD1306 не найден! Проверьте адрес или подключение."));
    for(;;); // Стоп, если дисплей не отвечает
  }
  
  Serial.println("OLED найден, запуск тестов...");
  delay(2000);
}
void loop() {
  // --- ТЕСТ 1: Pixel Test (Ищем битые пиксели) ---
  display.clearDisplay();
  for (int i = 0; i < 200; i++) {
    int x = random(0, SCREEN_WIDTH);
    int y = random(0, SCREEN_HEIGHT);
    display.drawPixel(x, y, SSD1306_WHITE);
  }
  display.display();
  delay(3000);
  // --- ТЕСТ 2: Lines Test (Проверка линий) ---
  display.clearDisplay();
  for (int i = 0; i < 16; i++) {
    display.drawLine(0, 0, SCREEN_WIDTH - 1, i * 4, SSD1306_WHITE);
    display.drawLine(SCREEN_WIDTH - 1, 0, 0, i * 4, SSD1306_WHITE);
  }
  display.display();
  delay(3000);
  // --- ТЕСТ 3: Geometric Shapes (Проверка фигур) ---
  display.clearDisplay();
  // Прямоугольники
  display.drawRect(10, 10, 30, 20, SSD1306_WHITE);
  display.fillRect(60, 10, 30, 20, SSD1306_WHITE);
  // Круги
  display.drawCircle(30, 45, 10, SSD1306_WHITE);
  display.fillCircle(90, 45, 10, SSD1306_WHITE);
  display.display();
  delay(3000);
  // --- ТЕСТ 4: Text Test (Проверка шрифтов) ---
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println("Size 1: Hello!");
  display.setTextSize(2);
  display.setCursor(0, 20);
  display.println("Size 2");
  display.setTextSize(1);
  display.setCursor(0, 50);
  display.println("ESP32 + OLED OK");
  display.display();
  delay(4000);
  // --- ТЕСТ 5: Invert/Clear (Проверка контраста и заливки) ---
  display.clearDisplay();
  display.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, SSD1306_WHITE);
  display.display();
  delay(2000);
  
  // Инверсия экрана (моргание)
  for(int i=0; i<5; i++) {
    display.invertDisplay(true);
    delay(300);
    display.invertDisplay(false);
    delay(300);
  }
}


Пока не было вопросов.

Вы смотрели

Теги: oled