Найти тему
DIY

Подключение OLED-дисплея SSD1306 128х32 к ардуино.

Оглавление

Комплектующие.

У OLED-дисплея светятся сами пиксели, а не подсветка сзади, это дает ему преимущество в контрастности и энергопотреблении. Подключение дисплея очень простое, т.к. он I2C ( на arduino nano это А4 - SDA, A5 - SCL). По питанию дисплей можно подключить и к 3,3В и к 5В, мы подключим к 3,3В.

-2

Библиотеки.

Существует несколько вариантов библиотек для работы с дисплеем, мы воспользуемся двумя из них:

Самый простой способ установки библиотек это разархивировать их в папку C:\Users\user\Documents\Arduino\libraries и перезагрузить программу. Более подробно про установку библиотек, а также другие способы вы можете найти в интернете, об этом очень много написано.

Перейдем к практике.

Скетч для написания простенького текста

Скетч в виде скриншота потому, что текстовый вид дзен переформатирует по своему, но далее будет ссылка для скачки его формате .ino где все строки закомментированы.
Скетч в виде скриншота потому, что текстовый вид дзен переформатирует по своему, но далее будет ссылка для скачки его формате .ino где все строки закомментированы.

скачать скетч

Вот что у нас получилось

Заставка при инициализации.
Заставка при инициализации.
И  сам текст.
И сам текст.

Команды для прокрутки текста.

startscrollright(0x00, 0x0F) прокрутка текста слева направо
startscrollleft(0x00, 0x0F) прокрутка текста справа налево

Элементы графики.

display.drawPixel(64, 16, WHITE); Нарисовать пиксель с координатой (64, 16) белого цвета.

-6

display.drawLine(0, 16, 128, 16, WHITE); Нарисовать линию белого цвета, (0, 16) и (128, 16) координата начала и конца.

-7

display.drawRect(5, 5, 118, 22, WHITE); Нарисовать прямоугольник белого цвета, (5, 5) начальная точка, (118, 22) размеры в пикселях.

-8

display.fillRect(5, 5, 118, 22, WHITE); Тоже самое для заполненного прямоугольника.

-9

display.drawRoundRect(5, 5, 118, 22, 5, WHITE); Тот же прямоугольник, но с закругленными краями, где 5 это радиус закругления.

-10

display.fillRoundRect(5, 5, 118, 22, 5, WHITE); Тоже самое для заполненного прямоугольника.

-11

display.drawCircle(64, 16, 10, WHITE); Нарисовать круг белого цвета, где (64, 16) координата центра, а 10 радиус в пикселях.

-12

display.fillCircle(64, 16, 10, WHITE); Тоже самое для заполненного круга.

-13

display.drawTriangle(0, 30, 64, 0, 128, 30, WHITE); Нарисовать треугольник белого цвета, где (0, 30) (64, 0) (128, 30) координаты углов.

-14

display.fillTriangle(0, 30, 64, 0, 128, 30, WHITE); Тоже самое для заполненного треугольника.

-15

display.invertDisplay(true); Инвертировать цвета дисплея.

display.invertDisplay(false); Отмена инвертирования.

-16

Скачать скетч в формате .ino с фигурами представленными выше.

Загрузка изображений.

-17

Скачать скетч

результат
результат

Чтобы загрузить изображение его нужно преобразовать в массив данных, это можно сделать с помощью конвертера. Есть много разных конвертеров как онлайн, так и офлайн, мы рассмотрим один из них:

Он не требует установки, просто скачайте, разархивируйте и запустите. Далее найдите или нарисуйте изображение в формате .bmp нужного вам размера в пикселях и загрузите в LCD Assistant как показано ниже.

-19
-20

После того как открыли, сразу же сохраняем как показано ниже.

-21

Сохраненный файл открываем с помощью блокнота.

-22
-23

Теперь копируем отсюда массив и вставляем в наш скетч в таком виде:

-24

А затем обращаемся к изображению через оператор

display.drawBitmap(48, 0, logo2_bmp, 32, 32, WHITE); где logo2_bmp наше изображение , (48, 0) начальная координата, а (32, 32) размер.

-25

Подписывайтесь на мой канал, впереди еще много интересного!

#arduino #ардуино #oled #программирование #diy #электротехника #электроника для начинающих #своими руками #arduino nano #микроконтроллеры