Як підключити OLED I2C дисплей до ARDUINO




Введення: Знайомство з OLED I2C дисплеєм 128 * 64/128 * 32.
Як підключити OLED I2C дисплей до ARDUINO
Вітання! Будучи любителем — ентузіастом електроніки, я впевнений, що все що ми робимо — радіоелектронні іграшки — саморобки, або великі проекти, все це від цікавості і ліні. Цікавість прагне зрозуміти і осягнути неосяжне, що не пізнане, розібратися, як воно там працює, чого робить, як рухається. А лінь винаходить, щоб такого придумати, щоб не вставати, не підходити, не піднімати, не забруднитися або ще чого ні будь важливе.

Так як бачити інформацію, це краще, ніж розбиратися чого там зараз має відбутися в нашому пристрої, або вже сталося, або відбувається, ми обов’язково захочемо отримати цю саму корисну інформацію від наших мікроконтролерів, датчиків, або інших пристроїв. А отримувати, я в усякому разі, хочу будь-які повідомлення, на кшталт питань, попереджень, нагадувань, смайликів, зірочок, сердечок тощо.

Для тих, у кого теж виникло подібне бажання, — ось короткий посібник з підключення та перевірці маленьких і не дорогих дисплеїв OLED.
Далі мова піде про одну з широко доступних для радіоаматорів моделях OLED дисплеїв, керованих чіпом SSD1306, з розміром екрану 0,96-дюймів і роздільною здатністю 128 * 64 або 128 * 32 точки. Ці дисплеї ідеально підходять для не великих радіоаматорських конструкцій і саморобок.
Як підключити OLED I2C дисплей до ARDUINO

Крок 1: Основні поняття

Підключати ми його будемо до Arduino UNO / NANO, ну і програмувати, відповідному ми його будемо теж через Arduino.

  • OLED це Organic Light-Emitting Diode, тобто, напівпровідниковий прилад з органічних сполук, який починає випромінювати світло при проходженні через нього електричного струму.
  • ARDUINO — це платформа для навчання і побудови систем автоматики і робототехніки.
  • ArduinoIDE — середовище розробки. Це безкоштовна програма для програмування Arduino.
  • I2C — Inter-Integrated Circuits, межмікросхемная лінія зв’язку.
  • Скетч, він же, код, він же програма — термінологія Arduino.

Дотримуйтесь інструкцій, щоб зрозуміти, як правильно підключити і налаштувати OLED дисплей до Arduino і як відобразити власне повідомлення на його дисплеї.
Робимо все по кроках.

Крок 2: Комплектуючі

Нам будуть потрібні всього чотири речі:

  • 1. Сам OLED дисплей 0,96 "(можна купити на Aliexpress або Ebay, — довго, але дешево!).
  • 2. Arduino UNO / Nano (там же де дисплей).
  • 3. Сполучні дроти (там же).
  • 4. Комп’ютер або ноутбук зі встановленою ArduinoIDE.

Як підключити OLED I2C дисплей до ARDUINO
Взагалі покупка деталей для різних проектів на Aliexpress і Ebay дуже прикольна штука, поки займаєшся одним проектом, деталі до іншого вже на підході. Головне не забути зробити замовлення.




Крок 3: Підключення дисплея

Управління дисплеєм здійснює чіп SSD1306, який підтримує п’ять протоколів зв’язку і один з яких I2C. Дані з цього протоколу передаються за все по двох проводах, а чим менше проводів в корпусі, тим краще, так що нам він цілком підходить. Але! Зустрічаються модулі з протоколом SPI і навіть з перемиканням протоколів, так що будьте уважні при покупці даного модуля.
Як підключити OLED I2C дисплей до ARDUINO
Використовувані висновки:
OLED дисплей — SCL / SCK (clock) і SDA (data), «Плюс» харчування (VCC) і «Мінус» харчування (GND).
Як підключити OLED I2C дисплей до ARDUINO
Використовувані висновки:
Arduino UNO — SCL / SCK на A5 і SSD на A4, «Плюс» харчування (+ 5V) і «Мінус» харчування (GND).
Під’єднуємо дисплей до Arduino:

  • Vcc — 5V
  • GND — GND
  • SDA — A4
  • SCL — A5

Як підключити OLED I2C дисплей до ARDUINO

Крок 4: Сканер I2C

Кожен пристрій на шині I2C має шістнадцятковий адреса, поміняти не можна, він вшитий намертво, кожен відповідальний виробник повинен десь на корпусі або в інструкції вказати його. Бувають модулі з перемикачами і перемичками, якими можна змінити адресу, але … якщо пристрої дешеві, до неподобства, то виробник може і не спромогтися займатися такою дрібницею, тому його доведеться визначати самостійно.

Всього на шині може використовуватися до 127 адрес — 119 для пристроїв і 8 адрес службових. Спілкування ведеться за цими адресами. Є головний, він же Master, а є ведений, він же Slave, — Майстри запитують, ведені відповідають, все просто.
Оскільки на нашому OLED-дисплей використовується протокол зв’язку I2C, а адреса може бути і не вказано, ми самі спробуємо дізнатися цю саму адресу.

Це можна зробити, завантаживши коротенький скетч на свою плату Arduino з підключеним OLED. АЛЕ!
Не поспішайте відразу заливати скетч в Arduino! Давайте для початку завантажимо «драйвера», тобто підключимо бібліотеки, а для цього відразу перейдемо до «Кроку №5», а потім повернемося і продовжимо.

Крок 4: Продовження:

Завантажити КОД Finder_I2C_Hex_Address.ino, завантажити в Arduino.
Відкрити «Монітор порту», ​​виставити швидкість 9600 і якщо все правильно підключено, програма покаже адресу пристрою, в моєму випадки OLED з адресою 0x3F.
Як підключити OLED I2C дисплей до ARDUINO

Крок 5: Завантаження і підключення бібліотек

Для того щоб все правильно запрацювало, а вам не довелося винаходити велосипед, потрібно підключити пару бібліотек в середу ArduinoIDE, а саме: ADAFRUIT GFX і ADAFRUIT SSD1306, вони необхідні для того щоб Arduino змогла самостійно спілкуватися з OLED дисплеєм.
Ви можете підключити ці бібліотеки, виконавши наступні кроки.

  • 1. У ArduinoIDE йдемо в меню Скетч / Sketch.
  • 2. Вибираємо «Включити бібліотеки» / Include Libraries.
  • 3.Вибіраем «Управління бібліотеками» / Managed Libraries.
  • 4. Знаходимо ADAFRUIT GFX і встановлюємо їх.
  • 5. Знаходимо ADAFRUIT SSD1306 і встановлюємо їх.

Зі свіжими версіями бібліотек, дисплей у мене працював криво, може звичайно це обумовлено кривизною рук, але після того, як я встановив найперші версії цих бібліотек, все стало показуватися рівненько і красиво. У пам’яті чомусь спливають рядки Пушкіна:
…і досвід, син помилок важких,
і геній, парадоксів друг.

Інший спосіб установки бібліотек — знайти, скачати і встановити ці бібліотеки самостійно.
Для прикладу Github:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306

Це ті ж Adafruit — бібліотеки, але подібні бібліотеки легко шукаються в пошукових системах, за запитом OLED I2C. Багато ентузіасти пишуть бібліотеки «під себе», а потім викладають їх в павутину. Яку бібліотеку використовувати, — вирішувати вам.
Для того щоб дисплей відображав російські літери, теж потрібні спеціальні бібліотеки, але це вже окрема тема для окремої статті.
Після того як бібліотеки встановлені, можна повернутися до виконання 4-го кроку, і дізнатися нарешті шістнадцятковий адресу вашого дисплея.

Крок 6: Тестування дисплея

Щоб перевірити, чи працює все так, як очікувалося, запустіть приклад для перевірки з ArduinoIDE.
Для цього:
Перейти Фото ПРИКЛАДИ SSD 1306 Вибрати 128×64 i2c
Якщо ви отримаєте «Помилку», спробуйте вибрати SSD 1306 128×32 i2c.
Якщо знову «Помилка» спробуйте змінить адресу I2C в рядку 61, демонстраційного коду, і замініть його адресою вашого дисплея, який ви визначили на кроці №4.
Якщо знову помилка, можна спробувати відредагувати файл Adafruit_SSD1306.h, він знаходиться в папці з бібліотеками Arduino.
Як підключити OLED I2C дисплей до ARDUINO
Відкрийте файл Adafruit_SSD1306.h в текстовому редакторі і знайдіть рядки:
// # define SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16
Розкоментуйте рядок:
#define SSD1306_128_64.
Має вийти так:
#define SSD1306_128_64 // # define SSD1306_128_32 // #define SSD1306_96_16
Якщо знову помилка — необхідно перевірити правильність з’єднань.
Після закінчення завантаження ви побачите тестову анімацію на екрані, це означає, що ви успішно налаштували свій OLED дисплей.

Коли ви вдосталь насолодитеся цього анімацією, можете переходити до наступного кроку.

Крок 7: Пишемо своє власне повідомлення

Для написання власного повідомлення, спочатку створимо новий скетч в середовищі програмування ArduinoIDE.
У заголовку ми підключаємо 4 бібліотеки:
#include SPI.h #include Wire.h #include Adafruit_GFX.h #include Adafruit_SSD1306.h
Потім пишемо протокол скидання:
#define OLED_RESET 4 Adafruit_SSD1306 display (OLED_RESET);
У VOID SETUP вказуємо шістнадцятковий адресу нашого дисплея 0x3C, який ми дізналися на «Кроці №4».
Потім, инициализируем дисплей і очищаємо його:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();
Далі в VOID LOOP пишемо основний код, тобто наше повідомлення, яке хочемо відобразити на дисплеї.
Для цього описуємо розмір тексту, колір тексту, позицію курсора, і нарешті, виводимо повідомлення за допомогою команди println:
display.setTextSize (2); display.setTextColor (WHITE); display.setCursor (0,0); display.println ("Well done!"); display.display ();
В кінці не забудьте написати display.display, щоб зображення вивелося на екран, інакше отримаєте порожнечу.
Якщо ви все зробили правильно, то на дисплеї з’явиться повідомлення.
Як підключити OLED I2C дисплей до ARDUINO
Тут КОД Starting_with_Arduino_OLED.ino нашої програми:
code.zip
[946 b] (cкачиваний: 2573)


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