Дисплеи OLED

Содержание

В одном из китайских наборов попался дисплей, который в описании числился как "0.96inch OLED SPI display". Больше никакой информации не было. Пришлось искать в интернете что-то похожее по картинке и пробовать разные варианты.

OLED Display

При поиске обнаружилось, что вариантов очень много. И разное число выводов, и разные подписи к выводам, и разный внешний вид и т.д и т.п. Один из примеров оказался для меня рабочим, хотя вполне возможно, что есть и другие способы работы с подобным дисплеем.

Для начала приведу таблицу возможных названий к выводам.

Выводы Альтернативные имена Описание
VCC Power supply
GND Ground
D0 SCL, CLK, SCK Clock (Линия синхронизации для SPI/I2C)
D1 SDA, MOSI Data (Линия данных для SPI/I2C)
RES RST, RESET Rest (Сброс модуля для SPI)
DC A0 Data/Command (Разрешение данных для SPI)
CS Chip Select (Выбор микросхемы)

В моём случае было GND | VCC | SCL | SDA | RES | DC. Подключал по схеме:

Библиотека U8glib

Дальше скачал библиотеку U8glib через менеджер библиотек. Кстати, на Гитхабе написано, что библиотека больше не развивается и нужно переходить на другую библиотеку U8g2. Но я прочитал об этом уже после того, как поработал со старой библиотекой, поэтому пока отложил знакомство с новой версией.

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

OLED

Во всех примерах вначале идёт длинный список закомментированных конструкторов, один из которых нужно раскомментировать.

Впечатляет, не так ли? И это только часть списка, расширенный список можно найти на Гитхабе. Проблема в том, что я не знал, какой вариант нужен именно мне. В одном из видео на Ютубе я нашёл похожий внешне на мой дисплей пример и решил следовать ему. Именно по тому ролику я и подключил дисплей по схеме, которую приводил выше.

Выбираем нужный конструктор.

Признаться, пример ввёл меня в ступор. Во-первых, в скетчах я не нашёл варианта, который демонстрировался в ролике и я вводил свой вариант вручную. Во-вторых, в конструкторе указывался вывод 10, который в реальности не использовался. Тем не менее примеры работали!

Нет смысла приводить код примеров, приведу только название простых скетчей, которые можно сразу протестировать.

  • HelloWorld
  • PrintTest
  • Rotation
  • Scale
  • TextRotX
  • U8gLog

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

Русский язык дисплей не поддерживает. На форуме Arduino.ru есть отдельная ветка, посвящённая русским шрифтам.

Библиотека U8g2

Сейчас развивается новая библиотека U8g2 от того же автора. После установки я попробовал вариант конструктора:

Поддерживается кириллица в кодировке UTF-8.

Также есть и другие библиотеки от других производителей, например, от Adafruit. Пример работы с поддержкой русского языка (надо заменить один файл).

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

Дополнительные материалы

Температура и влажность с датчика DHT11 на OLED-дисплее — в примере используется библиотека Adafruit GFX Library, Adafruit SSD1306, DHT sensor library с поддержкой русского языка.

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


Источник: developer.alexanderklimov.ru