Как да свържете OLED I2C дисплей към ARDUINO

Pin
Send
Share
Send

Въведение: Въвеждане на 128 * 64/128 * 32 OLED I2C дисплей.

Поздрави! Бидейки любител - ентусиаст на електрониката, сигурен съм, че всичко, което правим, са електронни играчки - домашни продукти или големи проекти, всичко това от любопитство и мързел. Любопитството се стреми да разбере и осмисли огромното, непознато, да разбере как работи там, какво прави, как се движи. И мързелът измисля, за да излезе с това, за да не стане, да не се побира, да не вдига, да не се замърсява или нещо друго важно.
Тъй като виждането на информация е по-добро от разбирането на това, което предстои да се случи на нашето устройство, или вече се е случило или се случва, определено ще искаме да получим тази много полезна информация от нашите микроконтролери, сензори или други устройства. И аз във всеки случай искам да получавам всякакви съобщения, като въпроси, предупреждения, напомняния, емотикони, звездички, сърца и други подобни.
За тези, които също имат подобно желание, ето едно бързо ръководство за свързване и проверка на малки и евтини OLED дисплеи.
По-нататък ще говорим за един от широко разпространените за радиомодели модели на OLED дисплеи, контролирани от чипа SSD1306, с размер на екрана 0,96 инча и резолюция 128 * 64 или 128 * 32 пиксела. Тези дисплеи са идеални за малки любителски дизайни на радио и домашно приготвени продукти.

Стъпка 1: Основни понятия


Ще го свържем с Arduino UNO / NANO, добре, и съответно да програмираме, ние също ще го свържем през Arduino.
  • OLED е органичен светодиод, т.е. полупроводниково устройство, направено от органични съединения, което започва да излъчва светлина, когато електрически ток преминава през него.
  • ARDUINO е платформа за обучение и изграждане на системи за автоматизация и роботизация.
  • ArduinoIDE е среда за развитие. Това е безплатен инструмент за програмиране на Arduino.
  • I2C - Интегрални схеми, комуникация между микросхеми.
  • Скица, това е код, това е програма - Arduino терминология.

Следвайте инструкциите, за да разберете как правилно да свържете и конфигурирате OLED дисплей към Arduino и как да покажете вашето собствено съобщение на неговия дисплей.
Правим всичко на стъпки.

Стъпка 2: Аксесоари


Ще ни трябват само четири неща:
  • 1. Самият OLED дисплей е 0.96 ”(може да се купи на Aliexpress или Ebay, - дълъг, но евтин!).
  • 2. Arduino UNO / Nano (на същото място като дисплея).
  • 3. Свързване на проводници (пак там).
  • 4. Компютър или лаптоп с инсталиран ArduinoIDE.

По принцип купуването на части за различни проекти на Aliexpress и Ebay е много готино нещо, докато правите един проект, части за друг вече са на път. Основното нещо е да не забравяте да направите поръчка.

Стъпка 3: Свържете дисплея


Дисплеят се управлява от чипа SSD1306, който поддържа пет комуникационни протокола и един от тях е I2C. Данните по този протокол се предават само в два проводника и колкото по-малко са жиците в случая, толкова по-добре, така че ни подхожда добре. Но! Има модули с SPI протокол и дори превключване на протоколи, така че бъдете внимателни, когато купувате този модул.

Използвани изводи:
OLED дисплей - SCL / SCK (часовник) и SDA (данни), мощност "плюс" (VCC) и "минус" мощност (GND).

Използвани изводи:
Arduino UNO - SCL / SCK на A5 и SSD на A4, мощност "Plus" (+ 5V) и "Minus" мощност (GND).
Свържете дисплея към Arduino:
  • Vcc - 5V
  • GND - GND
  • SDA - A4
  • SCL - A5

Стъпка 4: I2C скенер


Всяко устройство в I2C шината има шестнадесетичен адрес, не можете да го промените, той е зашит плътно, всеки отговорен производител трябва да го посочи някъде в случая или в инструкциите. Има модули с превключватели и джъмпери, с които можете да промените адреса, но ... ако устройствата са евтини, до грозотата, тогава производителят може да не си прави труда да се справи с такава дреболия, така че ще трябва да го определите сами.
Общо в шината могат да се използват до 127 адреса - 119 за устройства и 8 адресни услуги. Комуникацията се провежда на тези адреси. Има господар, той е Учител, но има роб, той също е роб - питат Учителите, последователите отговарят, всичко е просто.
Тъй като нашият OLED дисплей използва протокола за комуникация I2C и адресът може да не е посочен, ще се опитаме да разберем точно този адрес.
Това можете да направите, като изтеглите кратка скица на вашия Arduino дъска със свързан OLED. НО!
Отделете време, за да качите скицата в Arduino веднага! Нека първо да изтеглим „драйвера“, т.е. ще свържем библиотеките и за това ще преминем направо към „Стъпка 5“ и след това ще се върнем и ще продължим.

Стъпка 4: Продължение:


Изтеглете CODE Finder_I2C_Hex_Address.ino, качете в Arduino.
Отворете "Port Monitor", задайте скоростта на 9600 и ако всичко е свързано правилно, програмата ще покаже адреса на устройството, в моя случай OLED с адрес 0x3F.

Стъпка 5: Изтеглете и свържете библиотеки


За да работи всичко правилно и не е трябвало да преоткривате колелото, трябва да свържете няколко библиотеки към средата на ArduinoIDE, а именно: ADAFRUIT GFX и ADAFRUIT SSD1306, те са необходими, за да може Arduino да комуникира независимо с OLED дисплея.
Можете да свържете тези библиотеки, като следвате тези стъпки.
  • 1. В ArduinoIDE отидете в менюто Sketch.
  • 2. Изберете „Включване на библиотеки“ / Включване на библиотеки.
  • 3. Изберете "Управление на библиотеки" / Управлявани библиотеки.
  • 4. Намерете ADAFRUIT GFX и ги инсталирайте.
  • 5. Намерете ADAFRUIT SSD1306 и ги инсталирайте.

С най-новите версии на библиотеките дисплеят работеше криво за мен, може би, разбира се, това се дължи на кривината на ръцете, но след като инсталирах първите версии на тези библиотеки, всичко започна да се показва гладко и красиво. По някаква причина редовете на Пушкин изскачат в паметта му:
... и опит, сине на трудни грешки,
и гений, парадокси на приятел.

Друг начин за инсталиране на библиотеки е сами да ги намерите, изтеглите и инсталирате.
За пример на Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Това са същите библиотеки на Adafruit, но подобни библиотеки лесно се търсят в търсачките, по искане на OLED I2C. Много ентусиасти пишат библиотеки „за себе си“ и след това ги пускат в мрежата. Коя библиотека да използвате зависи от вас.
За да може дисплеят да показва руски букви, са необходими и специални библиотеки, но това е отделна тема за отделна статия.
След инсталирането на библиотеките можете да се върнете към стъпка 4 и най-накрая да разберете шестнадесетичния адрес на вашия дисплей.

Стъпка 6: Тестване на дисплея


За да проверите дали всичко работи според очакванията, пуснете тестовия пример от ArduinoIDE.
За да направите това:
Отидете ФАЙЛ> ПРИМЕРИ> SSD 1306> Изберете 128x64 i2c
Ако получите „Грешка“, опитайте да изберете SSD 1306> 128x32 i2c.
Ако отново грешка, опитайте да промените I2C адреса на ред 61 от демонстрационния код и го заменете с адреса на вашия дисплей, който сте определили в стъпка # 4.
Ако грешката се появи отново, можете да опитате да редактирате файла Adafruit_SSD1306.h, той се намира в папката с библиотеките на Arduino.

Отворете файла Adafruit_SSD1306.h в текстов редактор и намерете редовете:
// # определи SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

Декомментирайте реда:
#define SSD1306_128_64.

Трябва да е така:
#define SSD1306_128_64 // # определи SSD1306_128_32 // #define SSD1306_96_16

Ако грешката е отново, е необходимо да се провери правилността на връзките.
След като изтеглянето завърши, на екрана ще видите тестова анимация, което означава, че успешно сте конфигурирали вашия OLED дисплей.

Когато се насладите на тази анимация, можете да преминете към следващата стъпка.

Стъпка 7: Писане на собствено съобщение


За да напишете собствено съобщение, първо създайте нова скица в средата за програмиране ArduinoIDE.
В заглавката свързваме 4 библиотеки:
#include #include #include #include 

След това пишем протокола за нулиране:
#define OLED_RESET 4 Adafruit_SSD1306 дисплей (OLED_RESET);

В VOID SETUP посочете шестнадесетичния адрес на нашия 0x3C дисплей, който разбрахме в „Стъпка № 4“.
След това инициализирайте дисплея и го изчистете:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

След това във VOID LOOP пишем основния код, тоест нашето съобщение, което искаме да покажем на дисплея.
За целта описваме размера на текста, цвета на текста, позицията на курсора и накрая показваме съобщение с помощта на командата println:
display.setTextSize (2); display.setTextColor (БЯЛ); display.setCursor (0,0); display.println ("Браво!"); display.display ();

В края не забравяйте да пишете display.displayтака че изображението да се показва на екрана, в противен случай ще получите празнота.
Ако сте направили всичко правилно, на дисплеите ще се появи съобщение.

Ето CODE Starting_with_Arduino_OLED.ino на нашата програма:
code.zip 946 b (изтегляния: 1366)

Pin
Send
Share
Send