SSD1306 OLED - это микро дисплеи на органических светодиодах. Выпускают дисплеи с разрешением 128 х 64 и 128 х 32. Кроме того есть дисплеи подобного типа и других разрешений, но у них уже другой драйвер.
Эти дисплеи называются "микро", так как их размер всего 20 х 40 мм и 40 х 40 мм вместе с платой отладки. Сам размер дисплея чуть поменьше.
Данные дисплеи изначально, судя по всему были разработаны для носимой электроники, для смарт-браслетов, часов и тому подобного. Но оказались достаточно удачны для всевозможных поделок из-за достаточно простого подключения.
Эти дисплеи из-за небольшого разрешения (вероятнее всего) можно подключить по шине I2C, для подключения устройства по этой шине необходимы всего лишь два интерфейсных вывода (SCL и SDA), провод питания (3,3V) и земля.
Дисплеи выглядят вот так:
Схему подключения опущу ввиду абсолютной простоты (надо соединить 4 вывода и полярность не перепутать), вместо этого расскажу о достоинствах и недостатках.
Основных достоинства:
- Высокая яркость, при невысоком энергопотреблении (принцип OLED светится только тот пиксель, который должен)
- Простое подключение четырьмя проводами, два из которых являются питанием, а два шиной I2C.
- Хорошая поддержка, много примеров, простые библиотеки.
- Как показала практика - дисплей выдерживает достаточно высокую температуру, прекрасно себя чувствовал на термометре в бане, долговременно в процессе работы находился при температуре 90-95 °С.
Выдерживает высокую температуру: долговременно в процессе работы находился при температуре 90-95 °С.
Недостатки:
- Маленький, он действительно маленький, 1.1" и 0.91" - это реально мало, да и на картинке лукавят, так как собственно дисплеем является лишь часть стеклянной пластины.
- При статической картинке выгорает (для минимизации этого эффекта рекомендуется или понизить яркость, или использовать перемещение картинки по дисплею).
- Одноцветный, хотя цвета светодиодов бывают синие, желтые, белые. Выпускают дисплеи с разными цветами в разных зонах.
- В Поднебесной встречаются "кривые" платы с дисплеями, работающими не совсем так как ожидается (те которые мне попались, были на чёрном текстолите).
- Дисплей очень хрупкий, если кто-то захочет его отклеить от платы, то обязательно стоит его прогреть феном и соблюдать осторожность.
Маленькое видео как на дисплее выглядит текст и парочка комментариев:
В данном примере дисплей подключен для отладки в реальном времени показаний стенда. Кроме того станет понятно, что стенд при работе завис.
Логика, которая собирает данные с GPS, датчика тока и напряжения и управляет дисплеем написана на python3.
Библиотеку и пример кода взял тут. В отличии от примеров от компании Adafruit, у этого человека код не требует установки дополнительных модулей для работы с GPIO.
Для работы с дисплеем у всех примеров требуется тяжелая библиотека Pillow, так как она отвечает за работу с графикой.
На raspberry pi или orangepi zero устанавливать Pillow необходимо через:
apt install python3-pillow
Скорее всего apt исправит название библиотеки, но пакет поставится именно тот, что необходим.
Через pip3 пакет ставиться не хочет.
Для ардуино при работе с этим дисплеем использовал датчики SHT31 и AHT10, применял библиотеки Adafruit, с датчиком SHT31 всё заработало без проблем, с AHT10 возникает конфликт и МК зависает при попытке отправить картинку на дисплей.
На этом заметку закончу, если кто-то хочет, что бы я что-то ещё рассказал про дисплей или показал его применения - пишите в комментариях.
#oled #дисплей #python #arduino #diy #raspberry #orangepi