Как подключить OLED I2C дисплей к ARDUINO

База знаний Амперки

Как подключить OLED I2C дисплей к ARDUINO

Здесь собрана вся база знаний Амперки: инструкции и подсказки по Arduino и Raspberry Pi, оригинальные проекты, схемы распиновки модулей и datasheet’ы, теория электричества для начинающих и другая полезная информация.

Ищите ответы на технические вопросы в нашей Wiki, накопленной годами!

Iskra JS и Espruino

Учебные и справочные материалы по JavaScript’у в микроконтроллере

ESP8266

  • Как создать резервную копию прошивки

Onion Omega2

  • Установка и настройка Onion Omega2

Сенсорные HMI-дисплеи Nextion

  • Nextion Editor: подключение и прошивка

E-Ink дисплеи

  • Экран E-Ink 1,54” / монохромный
  • Экран E-Ink 1,54” / красный
  • Экран E-Ink 1,54” / жёлтый
  • Дисплейный модуль E-Ink 2,13” для Raspberry Pi / монохромный
  • Дисплейный модуль E-Ink 2,13” для Raspberry Pi / красный
  • Дисплейный модуль E-Ink 2,13” для Raspberry Pi / жёлтый
  • Дисплейный модуль E-Ink 2,7” для Raspberry Pi / монохромный
  • Дисплейный модуль E-Ink 2,7” для Raspberry Pi / красный
  • Экран E-Ink 4,2” / монохромный
  • Экран E-Ink 4,2” / красный
  • Экран E-Ink 4,2” / жёлтый
  • Экран E-Ink 5,83” / монохромный
  • Экран E-Ink 5,83” / красный
  • Экран E-Ink 5,83” / жёлтый
  • Экран E-Ink 7,5” / монохромный
  • Экран E-Ink 7,5” / красный
  • Экран E-Ink 7,5” / жёлтый

Корпусирование

Оригинал: http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:graphic-lcd-128x64

Дисплей OLED 128×64: описание, подключение, схема, характеристики | ВИКИ

Как подключить OLED I2C дисплей к ARDUINO

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

Обзор OLED дисплея

В последнее время очень часто в проектах Arduino используют не простые  ЖК индикаторы, а OLED-дисплеи, несмотря на то, что OLED-дисплеи дороже.

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

К тому же OLED-дисплеи обладают незначительном энергопотреблением.

Рисунок 1. OLED-дисплей 0.96″ 128×64.

Технические характеристики дисплея OLED 128×64

  • Цвет – монохромный;
  • Разрешение – 128 х 64;
  • Графический чип – SSD1306;
  • Интерфейс – I2C;
  • Цвет дисплея – синий;
  • Угол обзора> 160 °;
  • Напряжение питания – от 3 до 5 В;
  • Размер: 27х27х4 мм.

Подключение к плате Arduino

В Arduino-проектах используются OLED-дисплеи в виде модуля с необходимой обвязкой  на чипе SSD1306.

Данные модули работают на интерфейсе I2C. Схема подключения к плате Arduino показана на рисунке 2.

Рисунок 2.

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

Сначала определим адрес нашего дисплея на I2C шине. Загрузим на плату Arduino скетч сканера I2C-устройств. Содержимое скетча представлено в листинге 1.

Листинг 1

// подключение библиотеки Wire

#include "Wire.

h"

void setup() {

// запуск последовательного порта

Serial.

begin(9600);

// запуск I2C

Wire.

begin();

}

void loop() {

int counter;

counter = 0;

// сканирование

for(int i = 0; i

Оригинал: https://3d-diy.ru/wiki/arduino-displei/displey-oled-128-64/

Подключение I2C экрана к Arduino пошаговая инструкция

Как подключить OLED I2C дисплей к ARDUINO

Пошаговая инструкция по подключению I2C экрана к Arduino.

Получил от китайцев два 20х4 экрана с I2C контроллерами — буду подключать к Arduino.

Для справки скажу, что такие экраны подключаются к Arduino всего по 4-м проводам.

Подключение I2C экрана к Arduino

Сам экран имеет 4 вывода:

  • GND экрана подключаем к GND Arduino
  • VCC экрана подключаем к +5V Arduino
  • SDA экрана подключаем к 4 аналоговому пину Arduino Uno
  • SCL экрана подключаем к 5 аналоговому пину Arduino Uno

В результате выглядеть будет так:

Теперь можно подключить Arduino к компьютеру и перейти к программной части.

LiquidCrystal_I2C — библиотека для работы с I2C экраном

Для написания кода нам понадобится библиотека LiquidCrystal_I2C. Скачиваем ее и распаковываем содержимое архива в папку arduino-1.0.X\libraries\.

liquidcrystal_i2c.

zip (8,4 KiB, 18 153 hits)

Проверочный скетч

Для проверки, загрузим в Arduino следующий код:

#include
#include

LiquidCrystal_I2C lcd(0x27, 20, 4); // Для экрана 20х4 (четырехстрочный)
//LiquidCrystal_I2C lcd(0x27, 16, 2); // Для экрана 16х2 (двухстрочный)

void setup()
{
lcd.begin();
lcd.setCursor(0, 0); // 1 строка
lcd.print("LCD I2C Test — 20×4");
lcd.setCursor(0, 1); // 2 строка
lcd.print("01234567899876543210");
lcd.setCursor(0, 2); // 3 строка
lcd.print("01234567899876543210");
lcd.setCursor(0, 3); // 4 строка
lcd.print("  geekelectronics.

org");

}

Оригинал: https://GeekElectronics.org/arduino/podklyuchenie-i2c-ekrana-k-arduino.html

#15 Дисплей SSD1306 подключаем к Arduino. Выводим текст, рисуем фигуры

Как подключить OLED I2C дисплей к ARDUINO

В этом уроке расскажу, как работать с 0,96-дюймовый SSD1306 OLED-дисплем в среде Arduino IDE . Покажу как вывести текст и нарисовать фигуры . Как выводить текст на русском языке покажу в следующем уроке.

OLED-дисплей, который я буду использовать в этом уроке, — это модель SSD1306: 0,96-дюймовый с разрешением 128×64 пикселя, как показано на фото ниже.

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

Дисплей поможет вам автоматизировать ваше производства, а полиэтиленовый рукав поковать вашу продукцию. Где полиэтиленовый рукав купить ? На сайте МТ-ПАК ТОРГ.

Модель, которую я использую, имеет четыре контакта и взаимодействует с любым микроконтроллером, используя протокол связи I2C. Есть, которые используют протокола связи SPI. Есть модели, которые поставляются с дополнительным выводом сброса.

Технические параметры дисплея SSD1306:

  • Технология дисплея: OLED
  • Разрешение дисплея: 128 на 64 точки
  • Диагональ дисплея: 0,96 дюйма
  • Угол обзора: 160°
  • Напряжение питания: 2.8 В ~ 5.5 В
  • Мощность: 0,08 Вт
  • Габариты: 27.

    3 мм х 27.8 мм х 3.7 мм

Дисплей OLED SSD1306 Описание подключения.
Поскольку OLED-дисплей использует протокол связи I2C, подключение очень простое. Как подключить к Arduino UNO или Arduino NANO смотрите в таблице ниже.

Pin

Arduino UNO или Arduino NANO

Vin

5v

GND

GND

SCL

A5

SDA

A4

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

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

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

В этом уроке я буду использовать две библиотеки Adafruit: библиотеку Adafruit_SSD1306 и библиотеку Adafruit_GFX . Для установки этих библиотек выполните следующие действия.

1.

Откройте Arduino IDE и перейдите в раздел Скетч > Подключить библиотеку > управление библиотеками.

Должен открыться менеджер библиотеки.

2.

Укажите “ SSD1306” в поле поиска, выберете из списка и установите библиотеку от Adafruit SSD1306

3.

Аналогично установите вторую библиотеку, для этого в поле поиска укажите “ GFX

4. После установки библиотеки перезагрузите среду разработки Arduino.

Тестирование OLED-дисплея
После подключения OLED-дисплея к Arduino и установки всех необходимых библиотек, вы можете использовать один пример из библиотеки, чтобы увидеть, все ли работает правильно.

В вашей среде разработки Arduino, выберите Файл > Примеры > Adafruit SSD1306 и выберете тип вашего дисплея. В моем случае это 128х64_i2c.

Вот код примера для моего дисплея SSD1306

#include
#include
#include
#include
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define NUMFLAKES 10 // Number of snowflakes in the animation example
#define LOGO_HEIGHT 16
#define LOGO_WIDTH 16
static const unsigned char PROGMEM logo_bmp[] =
{ B00000000, B11000000,
B00000001, B11000000,
B00000001, B11000000,
B00000011, B11100000,
B11110011, B11100000,
B11111110, B11111000,
B01111110, B11111111,
B00110011, B10011111,
B00011111, B11111100,
B00001101, B01110000,
B00011011, B10100000,
B00111111, B11100000,
B00111111, B11110000,
B01111100, B11110000,
B01110000, B01110000,
B00000000, B00110000 };
void setup() {
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) { // Address 0x3D for 128×64
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
// Show initial display buffer contents on the screen —
// the library initializes this with an Adafruit splash screen.
display.display();
delay(2000); // Pause for 2 seconds
// Clear the buffer
display.clearDisplay();
// Draw a single pixel in white
display.drawPixel(10, 10, SSD1306_WHITE);
// Show the display buffer on the screen. You MUST call display() after
// drawing commands to make them visible on screen!
display.display();
delay(2000);
// display.display() is NOT necessary after every single drawing command,
// unless that's what you want…rather, you can batch up a bunch of
// drawing operations and then update the screen all at once by calling
// display.display(). These examples demonstrate both approaches…
testdrawline(); // Draw many lines
testdrawrect(); // Draw rectangles (outlines)
testfillrect(); // Draw rectangles (filled)
testdrawcircle(); // Draw circles (outlines)
testfillcircle(); // Draw circles (filled)
testdrawroundrect(); // Draw rounded rectangles (outlines)
testfillroundrect(); // Draw rounded rectangles (filled)
testdrawtriangle(); // Draw triangles (outlines)
testfilltriangle(); // Draw triangles (filled)
testdrawchar(); // Draw characters of the default font
testdrawstyles(); // Draw 'stylized' characters
testscrolltext(); // Draw scrolling text
testdrawbitmap(); // Draw a small bitmap image
// Invert and restore display, pausing in-between
display.invertDisplay(true);
delay(1000);
display.invertDisplay(false);
delay(1000);
testanimate(logo_bmp, LOGO_WIDTH, LOGO_HEIGHT); // Animate bitmaps
}
void loop() {
}
void testdrawline() {
int16_t i;
display.clearDisplay(); // Clear display buffer
for(i=0; i=0; i-=4) {
display.drawLine(display.width()-1, display.height()-1, 0, i, SSD1306_WHITE);
display.display();
delay(1);
}
delay(250);
display.clearDisplay();
for(i=0; i

Оригинал: https://portal-pk.ru/news/232-displei-ssd1306-podklyuchaem-k-arduino-vyvodim-tekst-risuem.html

0.91inch OLED Module, OLED дисплей с разрешением 128х32px, интерфейс I2C

Как подключить OLED I2C дисплей к ARDUINO

Артикул: 0.91inch OLED Module Производитель: Waveshare Electronics Описание Сроки доставки Цена и наличие в магазинах 0.91-дюймовый OLED дисплейный модуль, разрешение 128×32 пикселей, интерфейс I2C.

Особенности:

— Маленький форм-фактор 0.91 дюйма; — Высокое разрешение 128 х 32; — 16-бит серый уровень, лучший эффект отображения; — I2C интерфейс, требует только два сигнальных контакта.

Спецификация:

— Драйвер: SSD1306; — Интерфейс: I2C; — Цвет дисплея: белый; — Разрешение: 128×32; — Угол обзора: >160°; — Рабочее напряжение: 3.3В / 5В; — Размер: 36 x 12.5 (мм).

Комплектация:

1 х 0.91inch OLED Module

1 х PH2.

0 4Pin Cable

Тип дисплея или индикатора Разрешение дисплея в пикселях

Development Resources

Выберите регион, чтобы увидеть способы получения товара.

— Выберите город — Москва Санкт-Петербург Белгород Владимир Волгоград Воронеж Гомель Екатеринбург Ижевск Казань Калуга Краснодар Красноярск Курск Липецк Минск Набережные Челны Нижний Новгород Новосибирск Омск Орёл Пермь Псков Ростов-на-Дону Рязань Самара Саратов Смоленск Ставрополь Тверь Томск Тула Тюмень Уфа Челябинск Ярославль

Оригинал: https://www.chipdip.ru/product/0.91inch-oled-module

Понравилась статья? Поделиться с друзьями:
Тратосфера