Комплектующие.
- OLED-дисплей SSD1306 разрешением 128х32 пикселя. Покупался здесь.
- Аналог Arduino Nano 3.0. Покупался здесь.
У OLED-дисплея светятся сами пиксели, а не подсветка сзади, это дает ему преимущество в контрастности и энергопотреблении. Подключение дисплея очень простое, т.к. он I2C ( на arduino nano это А4 - SDA, A5 - SCL). По питанию дисплей можно подключить и к 3,3В и к 5В, мы подключим к 3,3В.
Библиотеки.
Существует несколько вариантов библиотек для работы с дисплеем, мы воспользуемся двумя из них:
Самый простой способ установки библиотек это разархивировать их в папку C:\Users\user\Documents\Arduino\libraries и перезагрузить программу. Более подробно про установку библиотек, а также другие способы вы можете найти в интернете, об этом очень много написано.
Перейдем к практике.
Скетч для написания простенького текста
Вот что у нас получилось
Команды для прокрутки текста.
startscrollright(0x00, 0x0F) прокрутка текста слева направо
startscrollleft(0x00, 0x0F) прокрутка текста справа налево
Элементы графики.
display.drawPixel(64, 16, WHITE); Нарисовать пиксель с координатой (64, 16) белого цвета.
display.drawLine(0, 16, 128, 16, WHITE); Нарисовать линию белого цвета, (0, 16) и (128, 16) координата начала и конца.
display.drawRect(5, 5, 118, 22, WHITE); Нарисовать прямоугольник белого цвета, (5, 5) начальная точка, (118, 22) размеры в пикселях.
display.fillRect(5, 5, 118, 22, WHITE); Тоже самое для заполненного прямоугольника.
display.drawRoundRect(5, 5, 118, 22, 5, WHITE); Тот же прямоугольник, но с закругленными краями, где 5 это радиус закругления.
display.fillRoundRect(5, 5, 118, 22, 5, WHITE); Тоже самое для заполненного прямоугольника.
display.drawCircle(64, 16, 10, WHITE); Нарисовать круг белого цвета, где (64, 16) координата центра, а 10 радиус в пикселях.
display.fillCircle(64, 16, 10, WHITE); Тоже самое для заполненного круга.
display.drawTriangle(0, 30, 64, 0, 128, 30, WHITE); Нарисовать треугольник белого цвета, где (0, 30) (64, 0) (128, 30) координаты углов.
display.fillTriangle(0, 30, 64, 0, 128, 30, WHITE); Тоже самое для заполненного треугольника.
display.invertDisplay(true); Инвертировать цвета дисплея.
display.invertDisplay(false); Отмена инвертирования.
Скачать скетч в формате .ino с фигурами представленными выше.
Загрузка изображений.
Чтобы загрузить изображение его нужно преобразовать в массив данных, это можно сделать с помощью конвертера. Есть много разных конвертеров как онлайн, так и офлайн, мы рассмотрим один из них:
- LCD Assistant скачать
Он не требует установки, просто скачайте, разархивируйте и запустите. Далее найдите или нарисуйте изображение в формате .bmp нужного вам размера в пикселях и загрузите в LCD Assistant как показано ниже.
После того как открыли, сразу же сохраняем как показано ниже.
Сохраненный файл открываем с помощью блокнота.
Теперь копируем отсюда массив и вставляем в наш скетч в таком виде:
А затем обращаемся к изображению через оператор
display.drawBitmap(48, 0, logo2_bmp, 32, 32, WHITE); где logo2_bmp наше изображение , (48, 0) начальная координата, а (32, 32) размер.
Подписывайтесь на мой канал, впереди еще много интересного!
#arduino #ардуино #oled #программирование #diy #электротехника #электроника для начинающих #своими руками #arduino nano #микроконтроллеры