Как да свържете OLED I2C дисплей към ARDUINO
Въведение: Въведение в OLED I2C дисплей 128*64 / 128*32.
Здравейте! Като любител ентусиаст на електрониката, аз съм сигурен, че всичко, което правим - електронни играчки - домашни продукти или големи проекти - е всичко от любопитство и мързел. Любопитството се стреми да разбере и разбере необятното, непознатото, да разбере как работи там, какво прави, как се движи. И мързелът измисля какво да измисли, за да не стане, да не се приближи, да не вдигне, да не се изцапа или нещо друго важно.
Тъй като виждането на информация е по-добро от това да разберем какво предстои да се случи в нашето устройство, или вече се е случило, или се случва, определено ще искаме да получим тази най-полезна информация от нашите микроконтролери, сензори или други устройства. И във всеки случай искам да получавам всякакви съобщения, като въпроси, предупреждения, напомняния, емотикони, звезди, сърца и други подобни.
За тези, които също имат подобно желание, ето кратко ръководство за свързване и тестване на малки и евтини OLED дисплеи.
След това ще говорим за един от моделите OLED дисплеи, широко достъпни за радиолюбители, управлявани от чипа SSD1306, с размер на екрана 0,96 инча и резолюция 128 * 64 или 128 * 32 пиксела. Тези дисплеи са идеални за малки любителски радио проекти и домашни проекти.
Ще го свържем към Arduino UNO / NANO, а също така ще го програмираме през Arduino.
Следвайте инструкциите, за да разберете как правилно да свържете и конфигурирате OLED дисплея към Arduino и как да показвате персонализирано съобщение на неговия дисплей.
Правим всичко стъпка по стъпка.
Трябват ни само четири неща:
Като цяло купуването на части за различни проекти в Aliexpress и Ebay е много готино нещо, докато работите върху един проект, части за друг вече са на път. Основното нещо е да не забравите да направите поръчка.
Дисплеят се управлява от чип SSD1306, който поддържа пет комуникационни протокола, единият от които е I2C. Данните, използващи този протокол, се предават само по два проводника и колкото по-малко кабели има в кутията, толкова по-добре, така че ни подхожда доста добре.Но! Има модули с SPI протокол и дори с превключване на протоколи, така че бъдете внимателни, когато купувате този модул.
Използвани щифтове:
OLED дисплей - SCL/SCK (часовник) и SDA (данни), “плюс” мощност (VCC) и “минус” мощност (GND).
Използвани щифтове:
Arduino UNO - SCL/SCK на A5 и SSD на A4, “Плюс” мощност (+5V) и “Минус” мощност (GND).
Свързване на дисплея към Arduino:
Всяко устройство на I2C шината има шестнадесетичен адрес, не може да се променя, свързано е твърдо, всеки отговорен производител трябва да го посочи някъде на кутията или в инструкциите. Има модули с превключватели и джъмпери, с които може да се смени адреса, но... ако устройствата са евтини до безобразие, то производителят може и да не си направи труда да се справи с такава дребна подробност, така че ще трябва да определете го сами.
Общо в шината могат да се използват до 127 адреса - 119 за устройства и 8 сервизни адреса. На тези адреси се осъществява комуникация. Има главен, известен още като господар, и има роб, известен още като роб - господарите питат, робите отговарят, всичко е просто.
Тъй като нашият OLED дисплей използва комуникационния протокол I2C и адресът може да не е посочен, ще се опитаме сами да намерим точно този адрес.
Можете да направите това, като качите кратка скица на вашата платка Arduino със свързан OLED. НО!
Не бързайте да качвате скицата в Arduino веднага! Нека първо изтеглим “драйверите”, т.е. нека свържем библиотеките и за да направим това, веднага ще преминем към „Стъпка № 5“, след което ще се върнем и ще продължим.
Изтеглете CODE Finder_I2C_Hex_Address.ino, качете в Arduino.
Отворете “Port Monitor”, задайте скоростта на 9600 и ако всичко е свързано правилно, програмата ще покаже адреса на устройството, в моя случай OLED с адрес 0x3F.
За да работи всичко правилно и не е нужно да преоткривате колелото, трябва да свържете няколко библиотеки към средата на ArduinoIDE, а именно: ADAFRUIT GFX и ADAFRUIT SSD1306, те са необходими, за да може Arduino да комуникира самостоятелно с OLED дисплей.
Можете да включите тези библиотеки, като следвате тези стъпки.
С най-новите версии на библиотеките дисплеят ми работеше криво, това разбира се може да се дължи на кривината на ръцете ми, но след като инсталирах първите версии на тези библиотеки, всичко започна да изглежда гладко и красиво. По някаква причина ми идват на ум редовете на Пушкин:
...и опит, син на трудни грешки,
и гений, приятел на парадоксите.
Друг начин за инсталиране на библиотеки е да намерите, изтеглите и инсталирате тези библиотеки сами.
За Github пример:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Това са същите библиотеки на Adafruit, но подобни библиотеки могат лесно да се търсят в търсачките по искане на OLED I2C. Много ентусиасти пишат библиотеки „за себе си“ и след това ги публикуват в мрежата. Коя библиотека да използвате зависи от вас.
За да може дисплеят да показва руски букви, са необходими и специални библиотеки, но това е отделна тема за отделна статия.
След като библиотеките са инсталирани, можете да се върнете към стъпка 4 и най-накрая да разберете шестнадесетичния адрес на вашия дисплей.
За да проверите дали всичко работи според очакванията, стартирайте тестовия пример от ArduinoIDE.
За това:
Отидете на ФАЙЛ > ПРИМЕРИ > SSD 1306 > Изберете 128x64 i2c
Ако получите „Грешка“, опитайте да изберете SSD 1306 > 128x32 i2c.
Ако „Грешка“ възникне отново, опитайте да промените I2C адреса на ред 61 от демо кода и го заменете с адреса на вашия дисплей, който сте определили в стъпка #4.
Ако грешката се появи отново, можете да опитате да редактирате файла Adafruit_SSD1306.h, той се намира в папката Arduino libraries.
Отворете файла Adafruit_SSD1306.h в текстов редактор и намерете редовете:
Разкоментирайте реда:
Трябва да изглежда така:
Ако грешката се появи отново, трябва да проверите правилните връзки.
След като изтеглянето приключи, ще видите тестова анимация на екрана, което означава, че успешно сте настроили своя OLED дисплей.
Когато напълно се насладите на тази анимация, можете да преминете към следващата стъпка.
За да напишете свое собствено съобщение, първо създайте нова скица в средата за програмиране ArduinoIDE.
В заглавката включваме 4 библиотеки:
След това пишем протокола за нулиране:
В VOID SETUP посочваме шестнадесетичния адрес на нашия дисплей 0x3C, който научихме в „Стъпка № 4“.
След това инициализираме дисплея и го изчистваме:
След това във VOID LOOP пишем основния код, тоест нашето съобщение, което искаме да покажем на дисплея.
За да направите това, ние описваме размера на текста, цвета на текста, позицията на курсора и накрая показваме съобщението с помощта на командата println:
Накрая не забравяйте да напишете дисплей.дисплейтака че изображението да се показва на екрана, в противен случай ще получите празнота.
Ако сте направили всичко правилно, на дисплеите ще се появи съобщение.
Ето КОДА Starting_with_Arduino_OLED.ino на нашата програма:
Здравейте! Като любител ентусиаст на електрониката, аз съм сигурен, че всичко, което правим - електронни играчки - домашни продукти или големи проекти - е всичко от любопитство и мързел. Любопитството се стреми да разбере и разбере необятното, непознатото, да разбере как работи там, какво прави, как се движи. И мързелът измисля какво да измисли, за да не стане, да не се приближи, да не вдигне, да не се изцапа или нещо друго важно.
Тъй като виждането на информация е по-добро от това да разберем какво предстои да се случи в нашето устройство, или вече се е случило, или се случва, определено ще искаме да получим тази най-полезна информация от нашите микроконтролери, сензори или други устройства. И във всеки случай искам да получавам всякакви съобщения, като въпроси, предупреждения, напомняния, емотикони, звезди, сърца и други подобни.
За тези, които също имат подобно желание, ето кратко ръководство за свързване и тестване на малки и евтини 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, “Плюс” мощност (+5V) и “Минус” мощност (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 пример:
https://github.com/adafruit/Adafruit-GFX-Library
https://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 libraries.
Отворете файла 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 дисплей (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("Браво!");
display.display();
Накрая не забравяйте да напишете дисплей.дисплейтака че изображението да се показва на екрана, в противен случай ще получите празнота.
Ако сте направили всичко правилно, на дисплеите ще се появи съобщение.
Ето КОДА Starting_with_Arduino_OLED.ino на нашата програма:
code.zip
[946 b] (изтегляния: 4908)
Подобни майсторски класове
Особено интересно
Коментари (10)