Как подключить oled-дисплей к Arduino

Обновлено: 01.07.2024

Как подключить и запрограммировать 0,96-дюймовый 4-контактный белый OLED-модуль I2C Geekcreit с помощью Arduino. OLED-дисплей на микросхеме драйвера OLED SSD1306.

В этом руководстве монохромный OLED-дисплей с диагональю 0,96 дюйма от Geekcreit подключается или подключается к Arduino. Затем устанавливаются библиотеки и запускаются некоторые примеры программ, которые показывают, как использовать дисплей в скетче Arduino.

Дисплей подключается к Arduino с помощью всего четырех проводов — двух для питания и двух для данных, что делает проводку очень простой. Соединение для передачи данных — I2C (I²C, IIC или Inter-Integrated Circuit). Этот интерфейс иногда называют TWI (двухпроводной интерфейс).

На самом низком уровне библиотека Arduino Wire используется для связи с дисплеем. Доступны библиотеки, позволяющие сразу же начать использовать дисплей для отображения текста и графики. Эти библиотеки устанавливаются в этом руководстве.

Как подключить 0,96-дюймовый 4-контактный белый OLED-модуль I2C Geekcreit к Arduino

Как подключить 0,96-дюймовый OLED-дисплей Geekcreit I2C к Arduino

Первое и самое важное, что следует отметить, это то, что на некоторых дисплеях контакты питания GND и VCC могут быть перепутаны местами. Проверьте свой дисплей, чтобы убедиться, что он такой же, как на изображении ниже. Если контакты перепутаны местами, обязательно измените соединения с Arduino — OLED VCC подключается к 5 В на Arduino, OLED GND к GND на Arduino.

Внимание! Убедитесь, что вы правильно подключили контакты питания. В некоторых модулях GND и VCC поменяны местами. Не взрывайте дисплей!

Также убедитесь, что ваш дисплей совместим с напряжением 5 В, как этот.

0,96-дюймовый OLED-дисплей Geekcreit, распиновка I2C/TWI

Подключение Arduino Uno OLED

На изображении ниже показано, как подключить 0,96-дюймовый OLED-дисплей Geekcreit I2C к Arduino. Ниже приведены соединения контактов для подключения OLED-дисплея к Arduino Uno.

  • Заземление OLED – заземление Arduino
  • OLED VCC — Arduino 5V
  • OLED SCL — Arduino Uno A5
  • OLED SDA — Arduino Uno A4

Подключение Arduino MEGA 2560 OLED

Контакты для подключения Arduino MEGA 2560 к OLED-дисплею следующие.

  • Заземление OLED – заземление Arduino
  • OLED VCC — Arduino 5V
  • OLED SCL — Arduino MEGA 2560, контакт 21
  • OLED SDA — Arduino MEGA 2560, контакт 20

Библиотеки Arduino OLED I²C для SSD1306 и графических функций

Чтобы начать использовать дисплей, необходимо установить две библиотеки Arduino. Библиотека драйверов SSD1306 используется для инициализации дисплея и обеспечения низкоуровневых функций отображения. Библиотека GFX предоставляет графические функции для отображения текста, рисования линий и окружностей и т. д. Обе эти библиотеки доступны в Adafruit.

Установите библиотеку драйверов SSD1306

Загрузите библиотеку Adafruit_SSD1306, сохраненную на вашем компьютере в файле Adafruit_SSD1306-master.zip.

Скопируйте папку Adafruit_SSD1306-master из загруженного заархивированного файла в папку библиотек Arduino. Эта папка обычно находится в папке «Документы» → «Arduino» → «Библиотеки» в системах Windows. В Linux он обычно находится в домашней папке → Arduino → библиотеки.

Наконец, в папке библиотеки Arduino переименуйте папку Adafruit_SSD1306-master в Adafruit_SSD1306.

Установите библиотеку GFX

Загрузите библиотеку Adafruit_GFX, сохраненную на вашем компьютере в файле Adafruit-GFX-Library-master.zip.

Скопируйте папку Adafruit-GFX-Library-master из загруженного заархивированного файла в папку библиотеки Arduino, как это сделано для драйвера SSD1306 выше.

В папке библиотеки Arduino переименуйте папку Adafruit-GFX-Library-master в Adafruit_GFX.

Проверка установки библиотеки

После установки библиотек папка вашей библиотеки Arduino должна выглядеть следующим образом.

Папка библиотеки Arduino с новыми установленными библиотеками

Содержимое двух папок библиотеки должно выглядеть следующим образом: папка библиотеки драйверов SSD1306 слева и библиотека GFX справа.

Adafruit SSD1306 и папки библиотеки GFX

Поиск OLED-библиотек в Arduino

Если среда разработки Arduino IDE была открыта во время установки библиотеки, сначала закройте ее, а затем перезапустите.

В Arduino IDE найдите библиотеки в меню Sketch → Include Library в верхней строке меню. Когда курсор мыши находится над пунктом меню «Включить библиотеку», новые библиотеки можно найти во всплывающем меню. В Windows библиотеки появились в разделе «Предоставленные библиотеки» в верхней части всплывающего меню в моей системе. На моем компьютере с Linux библиотеки появились в разделе «Рекомендуемые библиотеки» всплывающего меню внизу.

Изменение драйвера SSD1306

Сохраните файл после внесения изменений.

Запуск эскиза примера Adafruit

Если библиотеки для дисплея были установлены правильно, примеры программ для дисплея можно найти в Arduino IDE в разделе Файл → Примеры → Adafruit SSD1306 – в этом меню откройте скетч ssd1306_128x64_i2c.

В этом эскизе необходимо изменить адрес I²C, чтобы он работал с дисплеем Geekcreit. Измените адрес с 0x3D на 0x3C, как показано в коде ниже. Этот адрес не 0x78 или 0x7A, как указано на обратной стороне платы OLED.

Как показано выше, адрес был изменен на 0x3C в display.begin(). Исходная строка кода показана над ней и закомментирована.

После внесения изменений скетч можно загрузить в Arduino. При построении скетча для Arduino Uno в среде IDE будет отображаться предупреждение о нехватке памяти, но скетч все равно будет работать.

Если изменения в драйвере и примере скетча были сделаны правильно, а OLED-дисплей правильно подключен к Arduino, скетч должен начать работать. Пример программы начинается с отображения логотипа Adafruit, затем включается один пиксель. Затем отображаются различные графические и текстовые функции.

Вы можете помочь веб-сайту Starting Electronics, сделав пожертвование:

Любое пожертвование приветствуется и используется для оплаты текущих расходов этого веб-сайта. Нажмите кнопку ниже, чтобы сделать пожертвование.

Краткие советы по программированию

В этом разделе руководства показано, как быстро начать использовать OLED-дисплей I2C с библиотеками Adafruit. Далее следует скетч шаблона Arduino для быстрого старта, демонстрация текстового дисплея и различных графических функций.

Файл шаблона эскиза Arduino

Приведенный ниже файл шаблона можно использовать для быстрого запуска новых проектов OLED. Он включает в себя необходимые заголовочные файлы и код инициализации дисплея. Скопируйте код и используйте его в качестве основы для запуска новых проектов OLED-дисплеев.

Текст «Hello World» и демонстрационная программа Pixel

Скетч Arduino ниже устанавливает пиксель в каждом углу экрана, как показано на изображении ниже. Затем используется функция для отображения строки текста на дисплее, как показано на изображении, — программа «hello world». Далее следует объяснение того, как работает программа.

OLED-дисплей Geekcreit 128 x 64 – демонстрация Arduino

Координаты и размеры экрана

После инициализации дисплея приведенный выше скетч затем рисует пиксель в каждой крайней точке дисплея, используя функцию drawPixel() для размещения пикселя в каждом углу экрана. Первый параметр, передаваемый функции drawPixel(), — это координата X экрана, а второй параметр — координата Y экрана.

Размер экрана составляет 128 x 64 пикселя, а координаты пикселя начинаются с 0, 0 для верхнего левого пикселя. Это означает, что координаты X для экрана от 0 до 127 (не от 1 до 128) слева направо; а координаты Y — от 0 до 63 (не от 1 до 64) сверху вниз.

Как видно на эскизе и на дисплее, угловые пиксели имеют следующие координаты:

  • Верхний левый пиксель – x = 0, y = 0.
  • Верхний правый пиксель: x = 127, y = 0.
  • Нижний левый пиксель: x = 0, y = 63.
  • Нижний правый пиксель: x = 127, y = 63.

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

Используйте print(), чтобы вывести строку текста на дисплей, как показано на рисунке выше. Прежде чем выводить текст на дисплей, вызовите setTextSize() и setTextColor(). Поскольку это монохромный дисплей, setTextColor() должен быть передан WHITE, чтобы текст отображался на черном фоне.

Текст, который записывается на дисплей, позиционируется вызовом setCursor() для перемещения невидимого курсора в нужное положение. Координаты X и Y передаются в setCursor() для перемещения курсора и начала текста в эти пиксельные координаты.

Основной принцип работы графической библиотеки

Весь текст и графика записываются в буферную память Arduino. Только при вызове display() (display.display() в приведенном выше коде) содержимое буфера отображается на экране. Это означает, что любые текстовые и графические объекты, такие как линии и окружности, не будут отображаться на экране до тех пор, пока не будет вызван метод display().

Вопросы и ответы

Почему -1 передается конструктору Adafruit_SSD1306?

Число, переданное конструктору Adafruit_SSD1306, как показано в приведенном выше коде, представляет собой номер вывода Arduino, используемого для сброса дисплея для дисплеев, у которых есть вывод сброса. Поскольку дисплей, используемый в этом руководстве, не имеет контакта сброса, в конструктор передается -1, чтобы ни один из контактов Arduino не использовался для сброса дисплея.

Где хранится логотип Adafruit, который появляется на экране?

Если функция display() вызывается без предварительного вызова clearDisplay(), как показано в следующем коде, на экране появляется логотип Adafruit. Откуда взялся этот логотип?

Память, используемая для буфера экрана, инициализируется логотипом Adafruit в библиотеке драйверов Adafruit_SSD1306.Этот код находится в файле Adafruit_SSD1306.cpp в папке библиотек Arduino в библиотеках → Adafruit_SSD1306. Логотип состоит из шестнадцатеричного кода, используемого для инициализации массива buffer[] в верхней части файла Adafruit_SSD1306.cpp.

Вызов clearDisplay() удаляет логотип из памяти, позволяя записать новый текст и графику в буфер.

Книги, которые могут вас заинтересовать:

C Programming with Arduino Book
Ultimate Arduino MEGA Руководство по оборудованию 2560
Ultimage Arduino Uno Hardware Manual

Дополнительная литература

Adafruit предоставили краткое руководство по использованию своей библиотеки GFX. В учебном пособии подробнее объясняется система координат, используемая для отображения, и показано, как рисовать графические примитивы, такие как линии и круги.

Ссылки

Установка Adafruit Arduino SSD1306 и библиотеки GFX — от Adafruit, разработчиков библиотек, используемых в этом руководстве. Если у вас есть возможность, купите что-нибудь в их магазине, чтобы поддержать разработку их программного обеспечения, например библиотеки, используемые в этом руководстве.

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


позвольте мне показать вам, ребята, как вы можете использовать эти OLED-дисплеи с платой Arduino, выполнив несколько простых шагов.


Органический светоизлучающий диод или OLED — это светоизлучающий диод

(LED), в котором излучающий электролюминесцентный слой представляет собой пленку

органическое соединение, излучающее свет в ответ на электрический ток.

в основном это дисплей, да, дисплей, очень маленький.


поэтому в этом уроке я буду использовать OLED-дисплей SSD1306 и Arduino Nano

Модель SSD1306 – это моноцветный дисплей с диагональю 0,96 дюйма и разрешением 128 × 64 пикселя.

у него всего четыре контакта, и он взаимодействует с Arduino по протоколу связи I2C

Чтобы подключить дисплей к Arduino, воспользуйтесь этой схемой контактов.


теперь вам нужно скачать библиотеку adafruit ssd1306,

и для этого вы можете сделать две вещи

и загрузите его zip-файл, а затем разархивируйте в папку библиотеки или "простой путь".

Вы можете найти ssd1306 в менеджере библиотек и загрузить его оттуда.

после загрузки библиотеки перезапустите IDE.

ТЕСТИРОВАНИЕ и загрузка эскиза

откройте пример эскиза ssd1306 128 x 64 i2c из меню примеров Adafruit ssd1306, которое было добавлено несколько минут назад.


загрузите этот скетч на плату Arduino, и ваша установка отобразит скетч hello world OLED DISPLAY.

Если ваш OLED-экран не работает

  • Убедитесь, что OLED-дисплей правильно подключен к Arduino.
  • Или измените адрес OLED в строке ниже.



обычно это 0x3D, измените его на 0x3c.

Если ваш дисплей работает, давайте перейдем к другому замечательному и простому способу

а это- ПРОКРУТКА текста!

загрузите эскиз прокрутки в установку OLED.

измените текст в коде, если хотите.

вы можете изменить размер текста, его положение, а также шрифты.



Кроме того, вы можете отображать собственное изображение на OLED-дисплее. растровое изображение, размер которого был изменен до 128x64 пикселей.

Вы можете посмотреть мое видео на эту тему.

Надеюсь, вы узнали некоторые основные сведения об OLED-дисплее и теперь можете правильно их использовать. Оставьте комментарий, если у вас возникнут проблемы!

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

В этом уроке мы узнаем:

Необходимое оборудование

Обратите внимание: это партнерские ссылки. Если вы покупаете компоненты по этим ссылкам, мы можем получить комиссию без каких-либо дополнительных затрат для вас. Мы ценим это.

Об OLED-дисплее

Существует множество типов OLED-дисплеев. Они отличаются друг от друга интерфейсом связи, размерами и цветами:

Arduino OLED

SPI обычно быстрее, чем I2C, но требует больше контактов Arduino. В то время как I2C требует только двух контактов и может использоваться совместно с другими периферийными устройствами I2C. Это компромисс между контактами и скоростью связи. Выбор остается за вами. Для OLED с интерфейсом I2C существует несколько типов драйверов, таких как SSD1306, драйвер SH1106. В этом руководстве используется OLED-дисплей I2C SSD1306 128 x 64

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

OLED Pinout

Схема подключения

Схема подключения Arduino OLED

Изображение разработано с помощью Fritzing. Нажмите, чтобы увеличить изображение

※ ПРИМЕЧАНИЕ:

Порядок контактов OLED-модуля может различаться у разных производителей. ВСЕГДА используйте этикетки, напечатанные на OLED-модуле. Смотри внимательно!

На приведенной выше схеме подключения вам просто нужно использовать провода-перемычки «папа-мама». Если вы используете перемычки типа «папа-папа», вам необходимо дополнительно использовать макетную плату. Подробнее о перемычках

Если вы используете другой Arduino, кроме Uno, контакты будут другими. См. таблицу ниже для других Arduino

< td>A5
OLED-модуль Arduino Uno, Nano Arduino Mega
Vin 5V 5V
GND GND GND< /td>
SDA A4 20
SCL 21

Как использовать OLED с Arduino

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

Добавить библиотеку Arduino

Библиотека Arduino OLED

Библиотека датчиков Arduino Adafruit GFX

Программа для OLED

// инициализируем OLED-дисплей с адресом 0x3C для разрешения 128x64 if (! oled . begin (SSD1306_SWITCHCAPVCC, 0x3C)) < Serial . println(F("Ошибка выделения SSD1306" )); пока (правда); >

Код Arduino — отображение текста на OLED

Ниже приведены некоторые функции, которые можно использовать для отображения текста на OLED-дисплее:

После входа в систему вы будете перенаправлены обратно к этому руководству и сможете подписаться на него.

Для всех типов небольших монохромных OLED-дисплеев необходимо установить библиотеки Arduino. Код, который у нас есть, предназначен для любого типа Arduino, если вы используете другой микроконтроллер, код довольно просто адаптировать, интерфейс, который мы используем, — это базовый SPI или I2C с побитовым преобразованием

Для использования этих OLED-дисплеев с эскизами Arduino необходимо установить две библиотеки: Adafruit_SSD1306, которая обеспечивает низкоуровневую связь с оборудованием, и Adafruit_GFX, которая надстраивается над ней для добавления графических функций, таких как линии, круги и текст.

В последних версиях программного обеспечения Arduino IDE (1.6.2 и выше) это проще всего сделать с помощью диспетчера библиотек Arduino.

Откройте менеджер библиотек Arduino:

adafruit_products_library_manager_menu. jpg

Найдите библиотеку Adafruit SSD1306 и установите ее

adafruit_products_ssd1306. jpg

Найдите библиотеку Adafruit GFX и установите ее

adafruit_products_gfx. jpg

Если вы используете более раннюю версию Arduino IDE (до 1.8.10), также найдите и установите Adafruit_BusIO (в более новых версиях эта зависимость будет установлена ​​автоматически).

После установки библиотеки Adafruit_SSD1306 и Adafruit_GFX перезапустите IDE Arduino. Теперь вы сможете получить доступ к образцу кода, перемещаясь по меню в следующем порядке: Файл → Примеры → Adafruit_SSD1306 → SSD1306.

lcds___displays_Screenshot_1. jpg

После того, как вы закончите подключение дисплея, как указано на следующих страницах, загрузите пример эскиза, чтобы продемонстрировать возможности библиотеки и дисплея.

lcds___displays_oled12864logo_LRG. jpg

lcds___displays_oled12864chars_LRG. jpg

Вы можете создавать растровые изображения для удобного отображения с помощью вспомогательного программного обеспечения LCD. Сначала создайте изображение с помощью любого графического программного обеспечения, такого как Photoshop или Paint, и сохраните его как монохромное растровое изображение (bmp)

Выберите следующие параметры (можно также попробовать Горизонтальное, если вертикальное не получается)

Впервые это руководство было опубликовано 29 июля 2012 г. Последний раз оно обновлялось 29 июля 2012 г.



Версия¶

Версия продукта Изменения Дата выпуска
Grove - OLED-дисплей 0,96 дюйма, версия 1.1 Начальная октябрь 2015 г.

Функции¶

Если вы хотите использовать несколько устройств I2C, см. Программное обеспечение I2C.

Обратите внимание: сильное воздействие или нагрузка на OLED могут привести к поломке экрана.

Подробнее о модулях Grove см. в Grove System

Технические характеристики¶

Элементы Мин Норма Макс Единица измерения
Напряжение питания (VCC) 3,3 5,0 5,5 В
Драйвер IC - SSD1308Z - -
Цвет дисплея - Белый - -
Точечная матрица - 128×64 - -
Размер панели - 26,7(Ш)×19,26(В) - мм
Активная площадь - 21,74(Ш)×11,175 (В) - мм
Шаг точки - 0,17(Ш)×0,175 (В) - мм
Размер точки - 0,15(Ш)× 0,15 (H) - мм
Широкий диапазон рабочих температур - -20~70 -

Подробнее о модулях Grove см. в Grove System

Поддерживаемые платформы¶

Arduino Raspberry Pi

Платформы, упомянутые выше как поддерживаемые, указывают на программное обеспечение модуля или теоретическую совместимость. В большинстве случаев мы предоставляем только программную библиотеку или примеры кода для платформы Arduino. Невозможно предоставить программную библиотеку/демонстрационный код для всех возможных платформ MCU. Следовательно, пользователи должны написать свою собственную библиотеку программного обеспечения.

Начало работы¶

Если вы впервые работаете с Arduino, мы настоятельно рекомендуем вам перед началом работы ознакомиться с разделом «Начало работы с Arduino».

Поиграйте с Arduino¶

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

В OLED128*64 используются все контакты чипа SSD1308, исходная точка по умолчанию находится в верхнем левом углу. Вы также можете изменить исходную точку, настроив программу и отобразив нужные шаблоны. Дополнительные сведения см. в разделах SSD1308_1.0.pdf и LY190-128064.pdf.

Оборудование¶


Если у нас нет Grove Base Shield, мы также можем напрямую подключить Grove — OLED-дисплей 0,96 дюйма к Seeeduino, как показано ниже.

Seeeduino Grove — OLED-дисплей 0.96 дюймов
5V Красный
Заземление Черный
SDA Белый
SCL Желтый

Программное обеспечение¶

  • Шаг 1. Загрузите библиотеку U8G2 128*64 с Github.
  • Шаг 2. См. Как установить библиотеку, чтобы установить библиотеку для Arduino.
  • Шаг 3. Скопируйте код в Arduino IDE и загрузите его. Если вы не знаете, как загрузить код, проверьте, как загрузить код.
  • Шаг 3. Мы видим "Hello World!" на экране.

Поиграйте с Raspberry Pi (с базовой шляпой Grove для Raspberry Pi)¶

Оборудование¶

Программное обеспечение¶

Если вы используете Raspberry Pi с ОС Raspberrypi >= Bullseye, вы должны использовать эту командную строку только с Python3.

  • Шаг 1. Следуйте инструкциям по настройке программного обеспечения для настройки среды разработки.
  • Шаг 2. Загрузите исходный файл, клонировав библиотеку grove.py.
  • Шаг 3. Выполните приведенную ниже команду, чтобы запустить код.

Ниже приведен код grove_oled_display_128x64.py.

Кажется, в терминале ничего не произошло, однако вы можете найти самую известную фразу в кибермире, если посмотрите на свой oled.😄

Если вы используете инструмент I2C для сканирования адреса I2C модуля grove, вы можете найти два или более адреса. 0x04 — это адрес Grove Base Hat для Raspberry Pi.

Играть с Raspberry Pi (с GrovePi_Plus)¶

Приведенный ниже скрипт Python для BeagleBone Green также работает для Raspberry Pi, но шина I2C отличается. На Raspberry Pi ⅔ шина I2C равна 1. Скрипт с заменой bus=2 на bus=1 будет работать на Pi.

Оборудование¶


Программное обеспечение¶

Шаг 1. Следуйте инструкциям по настройке программного обеспечения для настройки среды разработки.

Шаг 2. Перейдите в папку с демонстрационными версиями:

Шаг 4. Установите библиотеку smbus2 sudo pip install smbus2

Шаг 5. Запустите код. Мы обнаружим, что Grove - OLED выводит «Hello World».

Поиграйте с Beaglebone Green¶

Чтобы начать редактировать программы, размещенные на BBG, вы можете использовать интегрированную среду разработки Cloud9 и обратиться к Beaglebone Green Wiki.

Вот шаги, как отобразить "Hello World" на OLED.

Оборудование¶

  • Шаг 1. Подключите Grove — OLED к разъему Grove I2C на BBG.
  • Шаг 2. Подключите Seeeduino к ПК через USB-кабель.

Программное обеспечение¶

  • Шаг 1. Нажмите значок "+" в правом верхнем углу, чтобы создать новый файл.



  • Шаг 2. Скопируйте и вставьте следующий код на новую вкладку

Шаг 3. Сохраните файл, нажав на значок диска с расширением .py.

Шаг 4. Установите библиотеку smbus2 sudo pip3 install smbus2

Шаг 5. Запустите код. Мы обнаружим, что Grove - OLED выводит «Hello World».

Читайте также: