Оглавление
- Подключение OLED дисплея 128×64
- Running the Adafruit Example Sketch
- Подключение OLED дисплея 128×64
- Power Supply Requirement
- Служебные функции
- OLED I2C 128 x 64 px – схема подключения к Arduino
- Arduino OLED I²C Libraries for SSD1306 and Graphics Functions
- Подключение OLED дисплея 128×32
- Примеры для Espruino
- 7Что находится «за» шиной I2C
- Общие сведения об OLED дисплеях
- Приложение для Android для передачи данных Arduino при помощи Bluetooth
- Wiring OLED display module to Arduino Uno
- How to Connect the Geekcreit 0.96 Inch I2C OLED Display to Arduino
- Arduino I2C OLED display подключение
Подключение OLED дисплея 128×64
Паяем контакты
Перед подключением надо установить и спаять контакты на OLED дисплее. Контакты не будут работать без распайки!
Начните с установки рельсы на 8 контактов на вашу монтажную плату. Рельса устанавливается в макетку своими длинными ногами.
Сверху установите ваш OLED дисплей таким образом, чтобы короткие ноги рельсы попали в отверстия дисплея
Теперь спаяйте 8 контактов с 8-ю отверстиями!
I2C или SPI
Одна из хороших особенностей OLED экранов 128×64 – это то, что они могут использовать I2C или SPI протоколы. SPI отрабатывает быстрее, чем I2C, но для подключения надо больше контактов. Кроме того, наладить SPI на некоторых микроконтроллерах проще, чем I2C.
Подключение OLED по I2C
Экран может подключаться по I2C протоколу к любому микроконтроллеру, который поддерживает этот формат. Так как I2C интерфейс используется только для ‘соединения’ дисплея, у вас останется 512 байт RAM памяти на микроконтроллере. Но передать данные с OLED дисплея не получится.
Для начала вам надо соединить два контакта на задней части платы OLED экрана. Оба контакта должны быть ‘замкнуты’ (с помощью распайки), чтобы I2C начал работать!
После этого подключите контакты к Arduino
- GND идет к GND(земля)
- Vin идет к 5V
- Data к I2C SDA (на Uno — это A4, на Mega — это 20, а на Leonardo — digital 2)
- Clk к I2C SCL (на Uno — это A5, на Mega — это 21, а на Leonardo — digital 3)
- RST к 4 (позже вы можете изменить этот пин в коде программы)
Это подключение совпадает с примером, который есть в библиотеке. После того как предложенный вариант отработает, вы можете попробовать другой контакт для Reset (вы не можете поменять контакты SCA и SCL).
Пример находится в: File→Sketchbook→Libraries→Adafruit_SSD1306→SSD1306_128x64_i2c example
Подключение OLED по SPI
По умолчанию плата предусматривает использование SPI, но если вы до этого использовали I2C, вам надо разомкнуть контакты, которые вы замыкали в предыдущем пункте!
После этого подключите контакты к Arduino
- GND идет к ground (земля)
- Vin идет к 5V
- Data к digital 9
- CLK к digital 10
- D/C к digital 11
- RST к digital 13
- CS к digital 12
Это подключение совпадает с примером скетча, который предложен в библиотеке. После запуска и проверке, можете менять пины и программу.
Пример находится в: File→Sketchbook→Libraries→Adafruit_SSD1306→SSD1306_128x64_spi example
Running the Adafruit Example Sketch
If the libraries for the display were installed correctly, example programs for the display will be found in the Arduino IDE under File → Examples → Adafruit SSD1306 – open the ssd1306_128x64_i2c sketch under this menu.
The I²C address must be changed in this sketch in order for it to work with the Geekcreit display. Change the address from 0x3D to 0x3C as shown in the code below. This address is not 0x78 or 0x7A as printed on the back of the OLED board.
void setup() { Serial.begin(9600); // by default, we'll generate the high voltage from the 3.3v line internally! (neat!) //display.begin(SSD1306_SWITCHCAPVCC, 0x3D); // initialize with the I2C addr 0x3D (for the 128x64) display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // changed this to 0x3C to make it work // init done
As shown above, the address was changed to 0x3C in display.begin(). The original line of code is shown above it and is commented out.
After making the changes, the sketch can be uploaded to the Arduino. When building the sketch for an Arduino Uno the IDE will display a low memory warning message, but the sketch will still run.
If the changes to the driver and example sketch were made correctly and the OLED display is wired to the Arduino correctly, the sketch should start running. The example program starts by showing the Adafruit logo, it then turns on a single pixel. Various graphics and text functions are then displayed.
You can help the Starting Electronics website by making a donation:
Any donation is much appreciated and used to pay the running costs of this website. Click the button below to make a donation.
Подключение OLED дисплея 128×64
Паяем контакты
Перед подключением надо установить и спаять контакты на OLED дисплее. Контакты не будут работать без распайки!
Начните с установки рельсы на 8 контактов на вашу монтажную плату. Рельса устанавливается в макетку своими длинными ногами.
Сверху установите ваш OLED дисплей таким образом, чтобы короткие ноги рельсы попали в отверстия дисплея
Теперь спаяйте 8 контактов с 8-ю отверстиями!
I2C или SPI
Одна из хороших особенностей OLED экранов 128×64 – это то, что они могут использовать I2C или SPI протоколы. SPI отрабатывает быстрее, чем I2C, но для подключения надо больше контактов. Кроме того, наладить SPI на некоторых микроконтроллерах проще, чем I2C.
Подключение OLED по I2C
Экран может подключаться по I2C протоколу к любому микроконтроллеру, который поддерживает этот формат. Так как I2C интерфейс используется только для ‘соединения’ дисплея, у вас останется 512 байт RAM памяти на микроконтроллере. Но передать данные с OLED дисплея не получится.
Для начала вам надо соединить два контакта на задней части платы OLED экрана. Оба контакта должны быть ‘замкнуты’ (с помощью распайки), чтобы I2C начал работать!
После этого подключите контакты к Arduino
- GND идет к GND(земля)
- Vin идет к 5V
- Data к I2C SDA (на Uno — это A4, на Mega — это 20, а на Leonardo — digital 2)
- Clk к I2C SCL (на Uno — это A5, на Mega — это 21, а на Leonardo — digital 3)
- RST к 4 (позже вы можете изменить этот пин в коде программы)
Это подключение совпадает с примером, который есть в библиотеке. После того как предложенный вариант отработает, вы можете попробовать другой контакт для Reset (вы не можете поменять контакты SCA и SCL).
Пример находится в: File→Sketchbook→Libraries→Adafruit_SSD1306→SSD1306_128x64_i2c example
Подключение OLED по SPI
По умолчанию плата предусматривает использование SPI, но если вы до этого использовали I2C, вам надо разомкнуть контакты, которые вы замыкали в предыдущем пункте!
После этого подключите контакты к Arduino
- GND идет к ground (земля)
- Vin идет к 5V
- Data к digital 9
- CLK к digital 10
- D/C к digital 11
- RST к digital 13
- CS к digital 12
Это подключение совпадает с примером скетча, который предложен в библиотеке. После запуска и проверке, можете менять пины и программу.
Пример находится в: File→Sketchbook→Libraries→Adafruit_SSD1306→SSD1306_128x64_spi example
Power Supply Requirement
An OLED display works without a backlight because it makes its own light. This is why the display has such high contrast, extremely wide viewing angle and can display deep black levels. Absence of backlight significantly reduces the power required to run the OLED. On average the display uses about 20mA current, although it depends on how much of the display is lit.
The operating voltage of the SSD1306 controller is from 1.65V to 3.3V while OLED panel requires 7V to 15V supply voltage. All these different power requirements are sufficed using internal charge pump circuitry. This makes it possible to connect it to an Arduino or any 5V logic microcontroller easily without using any logic level converter.
Служебные функции
Поворот экрана
Может пригодиться, если в проекте экран перевернут или хочется дисплей, вытянутый вверх, а не вбок.
Синтаксис:
- setRot90() – поворот на 90 градусов
- setRot180() – поворот на 180 градусов
- setRot270() – поворот на 270 градусов
Пример:
u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); u8g.print("Hello World!");
u8g.setRot90(); u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); u8g.print("Hello World!");
u8g.setRot180(); u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); u8g.print("Hello World!");
u8g.setRot270(); u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); u8g.print("Hello World!");
Функция undoRotation отменяет поворот экрана, возвращая его в исходное положение.
Синтаксис: undoRotation().
Пример:
u8g. undoRotation();
Изменение цвета
Функция setColorIndex задает цвет пикселя.
Синтаксис: setColorIndex(uint8_t color_index).
Где:
- color_index – цвет пикселя,
- 0 – пиксель не горит,
- 1 – пиксель горит.
Пример:
u8g.setColorIndex(1); u8g.drawBox(10, 10, 60, 20); u8g.setColorIndex(0); u8g.setFont(u8g_font_unifont); u8g.setPrintPos(10, 30); u8g.print("Hello World!");
Масштабирование
Функция setScale2x2 уменьшает разрешение дисплея в 2 раза. Если раньше 1 точка занимала один пиксель, то теперь она занимает 4.
Синтаксис: setScale2x2().
Пример:
u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); u8g.print("Hello World!"); u8g.drawPixel(30, 30);
u8g.setFont(u8g_font_unifont); u8g.setScale2x2(); u8g.setPrintPos(0, 20); u8g.print("Hello World!"); u8g.drawPixel(30, 30);
Функция undoScale отменяет действие функции setScale2x2.
Синтаксис: undoScale().
Пример:
u8g.undoScale();
Основные функции будут описаны ниже. Полный список можно посмотреть на GitHub автора библиотеки.
OLED I2C 128 x 64 px – схема подключения к Arduino
В небольших устройствах тоже бывает нужно вывести какую-либо полезную информацию, сохраняя компактные габариты.
Обычные экраны, вроде Nokia 3310, не обеспечивают достаточного разрешения, к тому же их не видно в темноте.
В различных плеерах, электронных сигаретах и прочем давно уже используют компактные OLED-дисплеи с большим для их габаритов разрешением – так чем наши проекты хуже?
Важным плюсом OLED-экранов является работа без подсветки – каждый пиксель – сам себе подсветка. За счёт такой системы, экран потребляет крайне мало тока (фактически, его можно запитать от пина Arduino). Есть и один минус – при постоянном использовании отдельные пиксели начинают выгорать и терять яркость, но до наступления этого состояния вы успеете отладить и вывести всё, что только можно.
Дисплей подключается по высокоскоростному интерфейсу I2C (относительно высокоскоростному – до 400Кбод) и использует всего 2 сигнальных провода. Это ещё один неоспоримый плюс! Несмотря на то, что интерфейс последовательный, да ещё и данные в обе стороны идут по одной линии, на рядовой Arduino можно достичь порядка 15-20fps, чего более чем достаточно для проектов.
Стоит заметить, что дисплей монохромный – цветные картинки на него не выведешь, а для текста или графика хватит и двух цветов.
Всего у дисплея 4 пина – VCC, GND, SDA, SCL. VCC и GND подключаются к VCC и GND Arduino соответственно (чтобы перестраховаться, лучше питать дисплей от пина 3.3В – не на всех модулях стоят понижающие преобразователи), а линии данных находятся у каждой версии Arduino на разных пинах. У Uno (Nano, Pro Mini и других платах на ATMega328/168) SDA – A4, SCL – A5. У Mega – SDA – 20, SCL – 21.
На платах 3 ревизии контакты интерфейса выведены перед 13 пином на гребёнке и подписаны соответственно.
Для экрана написано множество библиотек, его поддерживает в том числе и универсальная U8g2.
Для управления дисплеем нам потребуются две библиотеки:
1) Adafruit_GFX_Library — мы её уже ставили, когда подключали Nokia 5110
2) Adafruit_SSD1306 — библиотека для управления именно OLED дисплеями
Устанавливаем обе библиотеки в Arduino IDE, и пробуем вывести наш любимый «Hello world!»:
Схема подключения OLED 128 x 64 к Arduino #include «SPI.h»
#include «Wire.h»
#include «Adafruit_GFX.h»
#include «Adafruit_SSD1306.h»
#define OLED_MOSI 9
#define OLED_CLK 10
#define OLED_DC 11
#define OLED_CS 12
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
void setup() {
// инициализация и очистка дисплея
display.begin(SSD1306_SWITCHCAPVCC);
display.clearDisplay();
display.display();
delay(1000);
display.setTextSize(1); // установка размера шрифта
display.setTextColor(WHITE); // установка цвета текста
display.setCursor(0,0); // установка курсора
display.println(«Hello, world!»);
display.display();
}
void loop() {
}
#include «Adafruit_GFX.h»#include «Adafruit_SSD1306.h»Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);// инициализация и очистка дисплеяdisplay.begin(SSD1306_SWITCHCAPVCC);display.setTextSize(1); // установка размера шрифтаdisplay.setTextColor(WHITE); // установка цвета текстаdisplay.setCursor(0,0); // установка курсораdisplay.println(«Hello, world!»); |
Ответить
Arduino OLED I²C Libraries for SSD1306 and Graphics Functions
Two Arduino libraries must be installed to start using the display. The SSD1306 driver library is used to initialize the display and provide low level display functions. The GFX library provides graphics functions for displaying text, drawing lines and circles, etc. Both these libraries are available from Adafruit.
Install the SSD1306 Driver Library
Download the Adafruit_SSD1306 library which is saved to your computer in a file called Adafruit_SSD1306-master.zip.
Copy the Adafruit_SSD1306-master folder from the downloaded zipped file into the Arduino libraries folder. This folder is usually found at Documents → Arduino → libraries on Windows systems. On Linux it is usually found at home folder → Arduino → libraries.
Finally in the Arduino library folder, rename the Adafruit_SSD1306-master folder to Adafruit_SSD1306.
Install the GFX Library
Download the Adafruit_GFX library which is saved to your computer in a file called Adafruit-GFX-Library-master.zip.
Copy the Adafruit-GFX-Library-master folder from the downloaded zipped file to the Arduino library folder as done for the SSD1306 driver above.
In the Arduino library folder rename the Adafruit-GFX-Library-master folder to Adafruit_GFX.
Verifying the Library Installation
After installing the libraries, your Arduino library folder should look as follows.
Arduino Library Folder with New Libraries Installed
The contents of the two library folders should look as follows, with the SSD1306 driver library folder on the left and GFX library on the right.
Adafruit SSD1306 and GFX Library Folders
Finding the OLED Libraries in Arduino
If the Arduino IDE was open during the library installation, close it first and then restart it.
In the Arduino IDE, find the libraries under the Sketch → Include Library menu from the top menu bar. When the mouse cursor is hovered above the Include Library menu item, the new libraries can be found on the pop-out menu. In Windows the libraries appeared under «Contributed libraries» near the top of the pop-out menu on my system. On my Linux computer the libraries appeared under the «Recommended libraries» section of the pop-out menu near the bottom.
Modifying the SSD1306 Driver
The SSD1306 driver isn’t set up for the Geekcreit OLED display by default. The display size must be changed in the driver before it can be used. If it is not changed, an error message will appear when attempting to verify the example sketch (see the section below) in the Arduino IDE:#error («Height incorrect, please fix Adafruit_SSD1306.h!»);
Open the Adafruit_SSD1306 folder that was just installed in the Arduino libraries folder. Find Adafruit_SSD1306.h and open it in a text editor. Scroll down the file to find the section with the header SSD1306 Displays or search for for this term in the text editor to find it quickly. Comment out #define SSD1306_128_32 and uncomment #define SSD1306_128_64 so that the code in this section looks as follows.
/*========================================================================= SSD1306 Displays ----------------------------------------------------------------------- The driver is used in multiple displays (128x64, 128x32, etc.). Select the appropriate display below to create an appropriately sized framebuffer, etc. SSD1306_128_64 128x64 pixel display SSD1306_128_32 128x32 pixel display SSD1306_96_16 -----------------------------------------------------------------------*/ #define SSD1306_128_64 // #define SSD1306_128_32 // #define SSD1306_96_16 /*=========================================================================*/
Save the file after making the changes.
Подключение OLED дисплея 128×32
Подключение OLED экрана 128×32 по SPI
OLED экран 128×32 очень просто подключается по SPI так как в нем есть встроенный модуль согласования уровней. Сначала возьмите рельсу 0.1″ с 8 контактами.
Установите контакты на макетной плате длинной стороной, а сверху OLED экран. После этого припаяйте рельсу к OLED PCB.
После этого подключите Arduino — GND подключается к ground (земля), Vin подключается к 5V, DATA к digital 9, CLK к digital 10, D/C к digital 11, RST к digital 13 и CS к digital 12.
Скетч соответствует тому, как вы подключили экран к Arduino. После проверки работоспособности можете попробовать подключить другие контакты.
Пример находится в: File→Sketchbook→Libraries→Adafruit_SSD1306→SSD1306_128x32_SPI example
Если вы используете OLED экран 128×32, убедитесь, что вы раскомментировали строку «#define SSD1306_128_32» в верхней части скетча Adafruit_SSD1306.h. Раскомментировав эту строку, вы изменяете размер буфера.
Подключение OLED экрана 128×32 по I2C
OLED экран 128×32 можно легко подключить и по I2C. Опять-таки, причина в наличии модуля согласования уровней и регулятора. Сначала возьмите рельсу 0.1″ на 6 контактов.
Установите рельсу длинными контактами на макетной плате
Сверху установите OLED экран
Припаяйте рельсу к OLED PCB
Теперь подключите контакты к Arduino
- GND к GND
- Vin к 5V
- SDA к I2C Data (на Uno — это A4, на Mega — это 20, а на Leonardo — digital 2)
- SCL к I2C Clock(на Uno — A5, на Mega — это 21, а на Leonardo — digital 3)
- RST к 4 (вы можете изменить эти контакты в скетче дальше)
Это подключение соответствует тому, которое требуется для работы скетча примера. После того, как пример отработал, вы можете изменить пин RST. Вы не можете изменить контакты I2C, так как они ‘зафиксированы’ на уровне электросхемы.
Пример находится в: File→Sketchbook→Libraries→Adafruit_SSD1306→SSD1306_128x32_i2c example
Примеры для Espruino
Схема устройства
Подключите дисплей к Iskra JS к пинам шины I²C — и .
Для быстрой сборки используйте Troyka Shield.
С Troyka Slot Shield провода не понадобятся вовсе.
Вывод текста
Для вывода первой программы приветствия, воспользуйтесь скриптом вроде этого:
- printText.js
-
// настраиваем шину I²C PrimaryI2C.setup({sda SDA, scl SCL, bitrate 100000}); // подключаем библиотеку для работы с графическим дисплеем var screen = require("SSD1306").connect(PrimaryI2C); // выбираем размер шрифта screen.setFontVector(15); // записываем строку в буфер дисплея screen.drawString("Hello world!", 18, ); // отображаем содержимое буфера на экране screen.flip();
Вывод геометрических фигур
Методы библиотеки также позволяют выводить геометрические фигуры.
- geometricFigures.js
-
// настраиваем шину I²C PrimaryI2C.setup({sda SDA, scl SCL, bitrate 100000}); // подключаем библиотеку для работы с графическим дисплеем var screen = require("SSD1306").connect(PrimaryI2C); // получаем ширину и высоту дисплея var width = screen.getWidth(); var height = screen.getHeight(); // рисуем две диагонали screen.drawLine(, , width - 1, height - 1); screen.drawLine(, height - 1, width - 1, ); // рисуем окружность в центре дисплея и радиусом 30 screen.drawCircle(width 2, height 2, 30); // рисуем диск (закрашенную окружность) в центре дисплея и радиусом 20 screen.fillCircle(width 2, height 2, 20); // отображаем содержимое буфера на экране screen.flip();
7Что находится «за» шиной I2C
В качестве бонуса рассмотрим временную диаграмму вывода латинских символов «A», «B» и «С» на ЖК дисплей. Эти символы имеются в ПЗУ дисплея и выводятся на экран просто передачей дисплею их адреса. Диаграмма снята с выводов RS, RW, E, D4, D5, D6 и D7 дисплея, т.е. уже после преобразователя FC-113 «I2C параллельная шина». Можно сказать, что мы погружаемся немного «глубже» в «железо».
Временная диаграмма вывода латинских символов «A», «B» и «С» на LCD дисплей 1602
На диаграмме видно, что символы, которые имеются в ПЗУ дисплея (см. стр.11 даташита, ссылка ниже), передаются двумя полубайтами,
первый из которых определяет номер столбца таблицы, а второй – номер строки. При этом данные «защёлкиваются» по фронту сигнала на линии E (Enable), а линия RS (Register select, выбор регистра) находится в состоянии логической единицы, что означает передачу данных. Низкое состояние линии RS означает передачу инструкций, что мы и видим перед передачей каждого символа. В данном случае передаётся код инструкции возврата каретки на позицию (0, 0) ЖК дисплея, о чём также можно узнать, изучив техническое описание дисплея.
И ещё один пример. На этой временной диаграмме показан вывод символа «Сердце» на ЖК дисплей.
Временная диаграмма вывода символа «Сердце» из ПЗУ на ЖК дисплей 1602
Опять, первые два импульса Enable соответствуют инструкции Home() (0000 00102) – возврат каретки на позицию (0; 0), а вторые два – вывод на ЖК дисплей хранящийся в ячейке памяти 310 (0000 00112) символ «Сердце» (инструкция lcd.createChar(3, heart); скетча).
Общие сведения об OLED дисплеях
OLED означает “Organic Light emitting diode“, что переводится как органический светоизлучающий диод, или, более коротко – органический светодиод. OLED дисплеи для радиолюбителей изготавливаются по той же самой технологии, что и большинство современных телевизоров, но имеют гораздо меньше пикселов по сравнению с ними. Но устройства на их основе (в том числе и с использованием Arduino) смотрятся потрясающе.
В нашем проекте мы будем использовать монохромный 7-пиновый SSD1306 0.96” OLED дисплей. Причина, по которой мы выбрали данный дисплей, заключается в том, что он может работать с тремя разными протоколами связи, трехпроводный SPI (Serial Peripheral Interface — последовательный интерфейс) режим, четырехпроводный SPI режим и режим IIC. В данной статье мы рассмотрим его подключение по четырехпроводному SPI режиму как самому скоростному из приведенных.
Контакты дисплея и выполняемые ими функции описаны в следующей таблице.
Номер контакта | Название контакта | Альтернативное название контакта | Назначение контакта |
1 | Gnd | Ground | земля |
2 | Vdd | Vcc, 5V | напряжение питания (в диапазоне 3-5 В) |
3 | SCK | D0, SCL, CLK | контакт синхронизации (clock pin). Применяется в интерфейсах I2C и SPI |
4 | SDA | D1, MOSI | контакт данных. Применяется в интерфейсах I2C и SPI |
5 | RES | RST, RESET | контакт сброса модуля. Применяется в интерфейсе SPI |
6 | DC | A0 | контакт команд (Data Command pin). Применяется в интерфейсе SPI |
7 | CS | Chip Select (выбор чипа) | используется когда несколько устройств взаимодействуют по интерфейсу SPI |
Сообществом Arduino разработано достаточно много библиотек для работы с подобными дисплеями. Мы выбрали из них библиотеку Adafruit_SSD1306 как весьма простую и в то же время содержащую достаточно много полезных функций. Но если ваш проект имеет жесткие ограничения по памяти/скорости, то тогда вам лучше использовать библиотеку U8g поскольку она работает быстрее и занимает меньше места в памяти.
Приложение для Android для передачи данных Arduino при помощи Bluetooth
Специально для проекта этих умных часов мы создали приложение для Android в среде Android Studio, которое можно скачать по этой ссылке. После скачивания установите это приложение в свой смартфон на Android, включите Bluetooth и установите связь с модулем HC-06. По умолчанию пароль для HC-06 — 1234 или 0000. При желании вы можете использовать любое другое подобное приложение из магазина PlayStore.
На следующем рисунке показан пример работы данного приложения (оно называется OLED) когда оно установило связь с модулем HC-06.
Это приложение может показывать все основные параметры работы смартфона как показано на следующем рисунке.
Wiring OLED display module to Arduino Uno
Before we get to uploading code and sending data to the display, let’s hook the display up to the Arduino.
Connections are fairly simple. Start by connecting VCC pin to the 5V output on the Arduino and connect GND to ground.
Now we are remaining with the pins that are used for I2C communication. Note that each Arduino Board has different I2C pins which should be connected accordingly. On the Arduino boards with the R3 layout, the SDA (data line) and SCL (clock line) are on the pin headers close to the AREF pin. They are also known as A5 (SCL) and A4 (SDA).
If you have a Mega, the pins are different! You’ll want to use digital 21 (SCL) and 20 (SDA). Refer below table for quick understanding.
SCL | SDA | |
Arduino Uno | A5 | A4 |
Arduino Nano | A5 | A4 |
Arduino Mega | 21 | 20 |
Leonardo/Micro | 3 | 2 |
The following diagram shows you how to wire everything.
Wiring 128×64 OLED Display Module With Arduino UNO
How to Connect the Geekcreit 0.96 Inch I2C OLED Display to Arduino
The first and most important thing to note is that some of the displays may have the GND and VCC power pins swapped around. Check your display to make sure that it is the same as the image below. If the pins are swapped, make sure to change the connections to the Arduino – OLED VCC connects to 5V on the Arduino, OLED GND to GND on the Arduino.
Caution! Make sure that you connect the power pins correctly. Some modules have GND and VCC swapped around. Don’t blow up your display!
Also make sure that your display is 5V compatible as this one is.
Geekcreit 0.96 Inch OLED Display I2C/TWI Pinout
Arduino Uno OLED Wiring
The image below shows how to connect the Geekcreit 0.96 inch OLED I2C display to Arduino. Pin connections are as follows for wiring the OLED display to an Arduino Uno.
- OLED GND – Arduino GND
- OLED VCC – Arduino 5V
- OLED SCL – Arduino Uno A5
- OLED SDA – Arduino Uno A4
How to Connect the Geekcreit 0.96 Inch OLED I2C Display to Arduino – Wiring Diagram
Arduino MEGA 2560 OLED Wiring
Pin connections for wiring an Arduino MEGA 2560 to the OLED display are as follows.
- OLED GND – Arduino GND
- OLED VCC – Arduino 5V
- OLED SCL – Arduino MEGA 2560 pin 21
- OLED SDA – Arduino MEGA 2560 pin 20
Arduino I2C OLED display подключение
OLED (Organic Light-Emitting Diode) — это полупроводниковый прибор, излучающий свет при прохождении через него электрического тока. Управление модулем осуществляет с помощью чипа SSD1306, который поддерживает пять разных протоколов связи. Встречаются модули не только с протоколом IIC, но и с протоколом SPI, и даже олед дисплеи с возможностью выбора (переключения) между этими двумя протоколами.
Характеристики OLED I2C 128×64 / 128×32
- Цвет экрана — монохромный;
- Разрешение — 128×64 или 128×32;
- Графический чип — SSD1306;
- Интерфейс — I2C или SPI;
- Питание модуля — от 3 до 5 В;
- Размер модуля — 27x27x4 мм.
Распиновка OLED SPI и дисплея OLED IIC
Главным плюсом OLED 128×64 iic является работа модуля без подсветки, за счет чего обеспечивается низкое потребление тока этим модулем. А высокое разрешение OLED 128×64 px Arduino позволяет вывести на дисплей большее количество информации, в отличии от текстового экрана 1602. Для подключения используется четыре разъема — два провода для питания (5V и GND) и два провода для шины IIC (SDA и SCL).