Обзор OLED-дисплея 0.96,128х64 на SSD1306
OLED — дисплей являются одним из самых привлекательным и современным дисплеем, при небольших размерах и незначительном энергопотребление OLED дисплей, обеспечивает насыщенную контрастность. Дисплеи в основном доступны на чипе SSD1306, работающим на интерфейсе I2C, для работы которого необходимо только 2 провода, что позволяет быстро подключить и начать использовать. В этом статье расскажу, как подключить OLED дисплей, диагональю 0.96 дюйма и расширением 128 х 64 пикселя.
Технические параметры
► Технология дисплея: OLED
► Разрешение дисплея: 128 на 64 точек
► Диагональ дисплея: 0,96 дюйма
► Уол обзора: 160°
► Напряжение питания: 2.8 В ~ 5.5 В
► Мощность: 0,08 Вт
► Габариты: 27.3 мм х 27.8 мм х 3.7 мм
Общие сведения OLED дисплея
А что же такое, технология OLED? Расшифровывается как Organic Light-Emitting Diode, состоит дисплей из большого числа органических светодиодов, главное отличие от LCD дисплея, в том, что каждый светодиод светится сам и не нуждается в отдельной подсветки. Благодаря этому, дисплей обладает значительными преимуществом по сравнению с обычными LCD, такими как контрастностью, углом обзора и малая потребляемая мощность, конечно есть и недостатки, небольшой срок службы и дороговизна.
OLED модуль с расширением 128×64 (0.96 дюйма) состоит из двух частей, из самого дисплея, который в свою очередь можно разделить на две части, графический дисплей и контроллер SSD1306 от которого идет гибкий шлейф на обратную сторону платы. Вторая часть, модуля, представляет собой печатную плату (которая по сути является переходником), на которой установлена минимальная электрическая обвязка, однорядный разъем шаг 2.54 мм и четырьмя крепежными отверстиями.
OLED модули, выпускаются с различным расширением 128×64, 128×32 и 96×16 (в статье и примере используется дисплей с расширением 128×32), сам контроллер SSD1306 может работать с OLED матрицами с максимальным расширение 128×64, так-же, модули бывают белые, синие и сине-желтые (сверху, желтая полоса, шириной 15 пикселя). Каждый производитель, выпускают свою печатные плату с различной компоновкой электронных компонентов и выведенным интерфейсом, так-как контроллер SSD1306 поддерживает сразу три протокола работы:
► 8-bit 6800/8080-series parallel interface
► 3 /4 wire Serial Peripheral Interface
► I2C
Для изменения протокола работы, предусмотрены три линии BS0, BC1 и BS2 с помощью которых, контроллер дисплея определяет по какому протоколу ему работать. В моем случаи, OLED дисплей разработан для работы по одному протоколу I2C, в других вариантов, возможно смена протокола работы с помощью нулевых резисторах или DIP переключателей.
Ниже приведена принципиальная схема OLED дисплея на микросхеме SSD1306, работающая по интерфейсу I2C, из нее видно, что микросхема U2 выполняет функцию стабилизатора напряжение (3.3В), конденсатор C8 необходим для сглаживания выходного напряжения. Резисторы R6 и R7 выполняют функцию подтяжки линии SCL и SAD, если к шине I2C, подключено не одно устройство, необходимо использовать подтягивающие резисторы только на одном устройстве. С помощью резистора на 0 Ом (без обозначении), можно произвести смену адреса 0x78 или 0x7A.
Назначение контактов J2:
► SCL: линия тактирования (Serial CLock)
► SDA: линия данных (Serial Dфta)
► VCC: «+» питание
► GND: «-» питание
Подключение к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► OLED-дисплей 0.96,128х64, 3.3-5B, SPI, IIC, синий x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Подключение:
В примере буду использовать плату Arduino UNO R3 и OLED дисплей (расширением 128×64), как говорил ранее, используемый интерфейс I2c, для подключения необходимо всего два провода, подключаем SDA дисплея к выводу A4 (Arduino), а SCL к выводу A5 (Arduino). При использовании, других платформ Mega или Nano необходимо использовать другие порты, для удобства приведу таблицу, подключения для различных плат. Далее, необходимо подключить питание, GND к GND, а VCC к 5 В или 3.3В, схема собрана, теперь осталось загрузить скетч.
Таблица подключений
Для работы с OLED дисплеем необходима библиотека, так-как библиотек несколько, пример работы покажу через библиотеку OLED_I2C (скачать библиотеку можно в конце статьи)
Программа только отображает текст на дисплей и больше не какого функционала не несет, скачиваем скетч и загружаем ее в плату Arduino UNO R3.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/* Тестировалось на Arduino IDE 1.8.0 Дата тестирования 27.01.2017г. */ #include <OLED_I2C.h> // Подключаем библиотеку OLED_I2C OLED myOLED(SDA, SCL, 8); // Выбор порта, UNO это SDA 8 pin, SCL - 9 pin. extern uint8_t SmallFont[]; // Подключаем шрифт void setup() { myOLED.begin(); // инициализация экрана myOLED.setFont(SmallFont); } void loop() { myOLED.clrScr(); // Очищаем экран myOLED.print("Hello!", CENTER, 24); // Выводим текст: в центре, строка 24 myOLED.print("www.robotchip.ru", CENTER, 40); // Выводим текст: в центре, строка 40 myOLED.update(); // delay (500); // пауза 0.5 с } |
Ссылки
Библиотека OLED_I2C
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
OLED-дисплей 0.96,128х64, белый, DC 3.3-5B, SPI, IIC
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
OLED-дисплей 0.96,128х64, 3.3-5B, SPI, IIC, белый
У Вас тут по ссылке неправильная библиотека =)
Добрый день, спасибо за замечание, поправил
Спасибо большое!!! Всё работает. Только один вопрос: как сделать так, чтобы программа выводила числовое значение???
но мне кажется тогда в место де пишется текст без ковычек написать примеры AnalogRead(0);
Для Arduino Nano на Atmega168 работает с помощью библиотеки Adafruit SSD1306 только если удалить кучу кода из экзамлов — памяти мало…
Микросхему U2 не нашел на схеме.
Народ, на первом фото показан дисплей, у которого третий контакт слева SCK, а потом используется сигнал SCL. А вроде это разные интерфейсы?
Добрый день.
есть два вопроса
1. Если дисплей подключить только к питанию +5 В, будет ли он светиться?
2. Можно ли подключить этот дисплей к контроллеру MP3-плеера GPD2846 GPD2856 или AC1082 фирмы JL по линии SCL и SAD, к шине I2C
Здравствуйте, светится не будет. по контроллерам не подскажу.