Найти в Дзене
GadgetPage

Подключение OLED-дисплея к Arduino

Оглавление

В этом уроке вы познакомитесь с интерфейсом Arduino OLED. В первой части настроим OLED-дисплей так, что он будет показывать нам данные датчика температуры и влажности, а во второй части отобразим логотипы iPhone, Samsung и LG.

OLED-дисплеи, что это такое?

OLED – что же это за аббревиатура? Она в переводе с английского означает, органический светоизлучающий диод. OLED-дисплеи очень маленькие и имеют высокое разрешение. Эти дисплеи не имеют подсветки, они излучают свой собственный свет. Вот почему эти дисплеи очень экономны и практичны для использования в разных электронных устройствах.

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

Технология OLED используется в основном для производства ЖК-панелей. В портативной электронике обычно используются AMOLED-дисплеи, которые, впрочем, в общих чертах очень похожи. Зато OLED-дисплей типичен для умных часов и фитнес-браслетов. В нашем проекте будем использовать OLED-дисплей. Приобрести данный дисплей можно на алиэкспресс. Вот вам ссылка на дисплей  по недорогой цене.

OLED в работе

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

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

OLED и Arduino

OLED-дисплей, который мы собираемся использовать, имеет 128x64 белых OLED-пикселей. Это 0,96 '' (25 мм X 14 мм). OLED-дисплеи других размеров также доступны. OLED, используемый в этом руководстве, является монохромным (имеет только один цвет), но вы также можете приобрести OLED-дисплей, который имеет несколько цветов.

Этот дисплей использует SPI для связи с Arduino. Связь SPI быстрее, чем связь I2C, поэтому именно этот вид связи сделает наш дисплей быстрее.

-2

Принципиальная электрическая схема

OLED работает с напряжением 3,3 V, поэтому не рекомендуем подключать его к 5 V Arduino. Данная схема сможет работать, но срок службы OLED-уменьшится.

Выполните все соединения для OLED и DHT22 с Arduino следующим образом

OLED+Arduino

  • CS 10                                   
  • DC 9
  • RES 8
  • D1 или SDA 11
  • D0 или SCK 13
  • VCC 3.3V
  • GND GND

DHT22+Arduino

  • VCC 5V
  • D0 Pin 2
  • GND GND

Если вы хотите узнать больше о взаимодействии DHT22 с Arduino, много информации имеется в интернете. 

-3

Код

Скачать библиотеку можно по ссылке ниже : Библиотека U8glib

Объяснение про код

https://www.youtube.com/watch?v=ktlLvEN_Qqs

Для OLED мы использовали библиотеку U8glib. Посмотрим, как работает библиотека.

u8g.firstPage(); do { u8g.setFont(u8g_font_helvB10); u8g.drawStr(30, 10, "Welcome "); u8g.drawStr(50, 30, "To "); u8g.drawStr(10, 50, "ElectronicsHob"); u8g.drawStr(10, 60, "byists.com"); } while( u8g.nextPage() ); delay(5000);

Данные отображаются на OLED в виде петель изображения. First Page () показывает начало цикла показа изображений. Кроме того, нам нужно создать цикл «делать пока». Все, что мы хотим показать на дисплее, должно быть записано в цикле «do while». Цикл «do while» будет продолжаться до тех пор, пока nextpage () не вернется к  «1».

Команда u8g.setFont (u8g_font_helvB10) установит заданный шрифт. Эта библиотека имеет разные размеры шрифтов и дизайн, которые вы можете найти по ссылке ниже.

https://github.com/olikraus/u8glib/wiki/fontsize U8glib шрифты

Команда u8g.drawStr (30, 10, «Welcome») выведет «welcome» в позиции X, Y. Значение «30» для горизонтального положения (X), а значение «10» для вертикального положения (Y). Другие команды рисования работают также.

Команда u8g.setPrintPos (75, 15), используемая в коде, установит указатель в положение X (75), Y (15). Затем вы можете распечатать выходные данные датчика с помощью команды u8g.print ().

Как показывать растровые изображения на OLED

Теперь давайте отобразим растровые изображения на OLED. Нам надо показать логотипы iPhone, Samsung и LG на OLED. Принципиальная схема для этого примера показана ниже.

-4

Максимальный размер изображения, отображаемого на OLED, не должно превышать 128X64 пикселей, а само изображение должно быть черно-белым, потому что наш OLED является монохромным, что означает, дисплей имеет только один цвет. Если у вас многоцветный OLED, конечно же вы можете отображать цветные картинки.

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

-5
-6

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

http://en.radzio.dxp.pl/bitmap_converter/ LCD Assistant

После загрузки и установки откройте LCD Assistant и загрузите изображение в него через меню «File». Настройки программного обеспечения LCD Assistant должны быть такими, как на рисунке ниже.

-7

Теперь откройте меню файлов и нажмите «Сохранить вывод». Сохраните имя файла с «.c» в конце, как «logo.c». Затем откройте сохраненный файл в текстовом редакторе и скопируйте код оттуда. 

Это будет код для создания растрового изображения на OLED. Затем вставьте его в код Arduino, как в приведенном коде.

Этот код может показаться слишком большим, но именно он будет отображать логотип IPhone, логотип Samsung и логотип LG один за другим на OLED-дисплее. Синтаксис команды bitmap, которую мы использовали в коде, выглядит следующим образом.

-8

-9