Компактний OLED дисплей 0.96" 128×64 — один із найпопулярніших екранів для проєктів на Arduino, ESP32, STM32 та інших мікроконтролерах. Модуль широко використовується в DIY‑пристроях завдяки низькому енергоспоживанню, високій контрастності зображення та простоті підключення.
Попри компактні розміри, OLED дисплей дозволяє виводити текст, графіку, іконки, меню та повноцінні користувацькі інтерфейси.
Що таке OLED дисплей і чим він відрізняється від LCD
OLED (Organic Light Emitting Diode) — технологія відображення, за якої кожен піксель світиться самостійно.
Це забезпечує кілька важливих переваг:
- відсутність окремого підсвічування
- ідеально чорний колір
- дуже високий контраст
- широкий кут огляду
- низьке енергоспоживання
На відміну від TFT та LCD екранів, OLED‑дисплей залишається добре читабельним як у темряві, так і при слабкому зовнішньому освітленні.
Особливість двоколірного OLED дисплея 0.96"
Багато версій OLED дисплея 0.96" мають двоколірну матрицю:
- верхня частина екрана відображається жовтим кольором
- основна нижня область — блакитним
Це не програмне налаштування, а фізична особливість OLED‑матриці.
Таке розділення зручно використовувати під час розробки інтерфейсів:
- верхня зона — статус пристрою
- нижня область — основні дані
- режими роботи та попередження
- службова інформація
По суті, дисплей уже забезпечує готове візуальне розділення інтерфейсу, що особливо зручно для пристроїв моніторингу.
Основні характеристики OLED дисплея 0.96"
- Діагональ: 0.96"
- Роздільна здатність: 128×64 пікселі
- Контролер: SSD1306 / SH1106
- Інтерфейс підключення: I2C або SPI
- Напруга живлення: 3.3–5 В
- Кут огляду: понад 160°
- Енергоспоживання: низьке
- Колір відображення: жовтий + синій
- Розмір модуля: близько 27×27 мм
Приклад роботи OLED дисплея з ESP32
Нижче наведено приклад демонстраційного скетча для ESP32 з використанням SPI‑підключення OLED дисплея SSD1306.
Після ввімкнення мікроконтролера дисплей відображає стартову заставку. Екран повністю заливається білим кольором на кілька секунд, що дозволяє візуально побачити двоколірну структуру OLED‑матриці. Такий підхід часто використовується в реальних пристроях моніторингу, джерелах живлення та BMS‑контролерах.
Після ініціалізації пристрій переходить у режим відображення робочих даних. У цьому прикладі імітується інтерфейс BMS‑монітора акумулятора.
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Пины подключения SPI-версии дисплея
#define OLED_MOSI 23 // D1
#define OLED_CLK 18 // D0
#define OLED_DC 17 // DC
#define OLED_CS 16 // CS
#define OLED_RESET 5 // RES
Adafruit_SSD1306 display(128, 64, &SPI, OLED_DC, OLED_RESET, OLED_CS);
// граница цветных зон
#define YELLOW_ZONE_HEIGHT 16
// ---------- DEMO BMS DATA ----------
float voltage = 13.4;
float current = 2.1;
int soc = 78;
float temp = 26.5;
// -----------------------------------
// ========= BOOT DEMO (ОДИН РАЗ) =========
void showBootFill() {
display.clearDisplay();
// Вариант 1 — белый фон + чёрный текст (рекомендую)
display.fillScreen(SSD1306_WHITE);
display.setTextColor(SSD1306_BLACK);
display.setTextSize(2);
display.setCursor(12, 18);
display.println("BMS");
display.println(" START");
display.display();
delay(3000);
// Можно сразу очистить перед основным экраном
display.clearDisplay();
display.display();
}
// ========= BMS SCREEN =========
void drawBMS() {
display.clearDisplay();
display.setTextColor(SSD1306_WHITE); // белый текст на чёрном фоне
// ---- ЖЁЛТАЯ ЗОНА (имитация) ----
// Если хочешь жёлтую полосу — можно залить её инверсией или просто линией
display.fillRect(0, 0, 128, YELLOW_ZONE_HEIGHT, SSD1306_WHITE);
display.setTextColor(SSD1306_BLACK); // чёрный текст на белой полосе
display.setTextSize(1);
display.setCursor(10, 4);
display.print("BMS MONITOR");
// возвращаем белый текст для остального
display.setTextColor(SSD1306_WHITE);
display.drawLine(0, YELLOW_ZONE_HEIGHT, 128, YELLOW_ZONE_HEIGHT, SSD1306_WHITE);
// ---- ОСНОВНАЯ ЗОНА ----
display.setCursor(0, 20);
display.print("Voltage: ");
display.print(voltage, 2);
display.println(" V");
display.setCursor(0, 32);
display.print("Current: ");
display.print(current, 2);
display.println(" A");
display.setCursor(0, 44);
display.print("SOC: ");
display.print(soc);
display.println(" %");
display.setCursor(0, 56);
display.print("Temp: ");
display.print(temp, 1);
display.println(" C");
display.display();
}
// ========= SETUP =========
void setup() {
Serial.begin(115200);
SPI.begin(OLED_CLK, -1, OLED_MOSI, OLED_CS);
if (!display.begin(SSD1306_SWITCHCAPVCC)) {
Serial.println("SSD1306 init failed");
while (true);
}
display.setRotation(0); // на всякий случай
display.cp437(true); // для корректных символов
showBootFill(); // показываем загрузку один раз
}
// ========= LOOP =========
void loop() {
// имитация изменения данных
voltage += 0.02;
if (voltage > 13.8) voltage = 13.2;
current += 0.1;
if (current > 5.0) current = 0.3;
soc--;
if (soc < 60) soc = 80;
temp += 0.2;
if (temp > 32.0) temp = 25.0;
drawBMS();
delay(2000); // обновление каждые 2 секунды
}
Де застосовується OLED дисплей 0.96"
Цей модуль використовується практично в усіх напрямах DIY‑електроніки:
- годинники та будильники
- погодні станції
- вимірювальні прилади
- BMS‑монітори акумуляторів
- IoT‑пристрої
- меню керування пристроями
- портативні тестери
- проєкти на Arduino, ESP32 та інших мікроконтролерах
Компактний розмір дозволяє встановлювати дисплей навіть у невеликі корпуси пристроїв.
Переваги OLED дисплея 0.96"
- висока читабельність зображення
- мінімальне енергоспоживання
- просте підключення
- робота від 3.3В та 5В
- підтримка Arduino та ESP32
- підтримка популярних бібліотек (Adafruit GFX, U8g2)
- компактні розміри
- швидкий вивід графіки
Важливо враховувати під час використання
- OLED чутливий до тривалого відображення статичних елементів
- рекомендується періодично оновлювати екран або використовувати зміщення інтерфейсу
- верхню жовту область бажано використовувати для тексту, а не графіків
Дотримання цих рекомендацій дозволяє значно збільшити термін служби дисплея.
Висновок
OLED дисплей 0.96" 128×64 — один із найкращих варіантів для створення інтерфейсів у проєктах на Arduino та ESP32. Він поєднує простоту підключення, чудову читабельність та низьке енергоспоживання.
Завдяки двоколірній структурі екран особливо зручний для пристроїв моніторингу, де потрібне візуальне розділення статусу та основних даних.
Можна сказати, що цей дисплей став своєрідним Hello World світу електроніки. Майже кожен серйозний DIY‑проєкт рано чи пізно використовує саме його, і така популярність цілком заслужена.






Коментарі до статті
Поки що немає коментарів. Будьте першим!
Додати коментар