Съдържание:

Забавно с OLED дисплей и Arduino: 12 стъпки (със снимки)
Забавно с OLED дисплей и Arduino: 12 стъпки (със снимки)

Видео: Забавно с OLED дисплей и Arduino: 12 стъпки (със снимки)

Видео: Забавно с OLED дисплей и Arduino: 12 стъпки (със снимки)
Видео: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Юли
Anonim
Забавно с OLED дисплей и Arduino
Забавно с OLED дисплей и Arduino

Сигурен съм, че определено сте чували за OLED дисплейната технология. Той е сравнително нов и предлага по -добро качество от старата LCD технология. В този урок искаме да прегледаме стъпките, необходими за показване на данни на един от най -често срещаните едноцветни OLED дисплейни модули, налични на пазара. Ще се опитам да обясня функционалностите, предоставени от съответната библиотека Adafruit за показване на данни в този модул.

Стъпка 1: Какви OLED модули ще използваме?

Какви OLED модули ще използваме?
Какви OLED модули ще използваме?
Какви OLED модули ще използваме?
Какви OLED модули ще използваме?
Какви OLED модули ще използваме?
Какви OLED модули ще използваме?

OLED модулите се предлагат в голямо разнообразие от размери и функции. Този, който ще използваме в този урок, е моноцветен 128x64 OLED модул. Този тип модул се предлага в следните размери (за да видите на снимките):

  • 128x64
  • 128x32
  • 96x16
  • 64x48
  • 64x32

Тъй като всички тези модули поддържат I2C протокол като средство за комуникация, кодът и окабеляването на всички тях са абсолютно еднакви. Единствената разлика е, че трябва да вземете предвид размера на дисплея във вашия код, така че съдържанието, което ще покажете, да пасне правилно на него.

Стъпка 2: I2C накратко

I2C накратко
I2C накратко

Междуинтегралната схема (IIC), която обикновено се нарича I2C (I на квадрат C), разработена от Philips през 80-те години като шина за обмен на данни, използвана за прехвърляне на данни между централния процесор (CPU) или микроконтролерния блок (MCU) на устройство и периферни чипове. Той беше основно насочен за телевизионно приложение. Поради своята простота той стана толкова популярен, че след известно време се превърна в един от основните механизми за пренос на данни за процесори и MCU и периферни устройства, които не са задължителни част от една и съща платка за печатни платки и са свързани към нея чрез проводник (например сензори, дисплейни модули и др.).

I2C се състои от комуникационна шина, направена от два проводника, която поддържа двупосочен трансфер на данни между главно и няколко подчинени устройства. Обикновено главният възел е отговорен за контрола на шината - което всъщност се извършва чрез генериране на сигнал за синхронизация на серийната тактова линия (SCL). Това е сигнал, който ще се изпраща непрекъснато от капитана по време на прехвърлянето и всички други възли, свързани към шината, ще го използват за синхронизиране на комуникацията и засичане на скоростта на шината. Данните се предават между главното и подчиненото чрез линия за серийни данни (SDA). Скоростта на предаване може да бъде до 3,4 Mbps. Всички устройства, които искат да прехвърлят данни чрез I2C, трябва да имат уникален адрес и да работят като предавател или приемник в зависимост от функцията на устройството. Например OLED дисплейният модул е приемник, който приема някои данни и ги показва, докато температурен сензор е приемо -предавател, който изпраща уловена температура чрез I2C шина. Обикновено главното устройство е устройството, което инициира пренос на данни по шината и генерира часовникови сигнали, за да позволи прехвърлянето. По време на това прехвърляне всяко устройство, адресирано от този капитан, се счита за подчинено и чете тези данни.

Когато възел иска да изпрати някои данни, първият байт от данните трябва да бъде адресът на приемника, а след това действителните данни идват след това. Това означава, че за да изпратим данни към изходно устройство, използващо I2C (например I2C OLED дисплей модул), първо трябва да намерим неговия I2C адрес и това ще направим първо при следващите стъпки.

Ако се интересувате да научите повече за подробностите и теориите за I2C шината, можете да използвате следните справки:

www.i2c-bus.org

learn.sparkfun.com/tutorials/i2c

Стъпка 3: Необходими модули и компоненти

Необходими модули и компоненти
Необходими модули и компоненти
Необходими модули и компоненти
Необходими модули и компоненти
Необходими модули и компоненти
Необходими модули и компоненти

Тук можете да намерите списъка с компоненти, които ще ви трябват, за да завършите този урок:

връзки към eBay:

  • 1 x Arduino Uno:
  • 1 x OLED модул 128x64:
  • 4 x кабел Dupont:
  • 1 x Мини макет без запояване:

Връзки на Amazon.com:

  • 1 x Arduino Uno:
  • 1 x OLED модул 128x64:
  • 4 x Dupont кабел:
  • 1 x Мини макет без запояване:

Стъпка 4: Окабеляване на OLED дисплейния модул към Arduino

Окабеляване на OLED дисплейния модул към Arduino
Окабеляване на OLED дисплейния модул към Arduino
Окабеляване на OLED дисплейния модул към Arduino
Окабеляване на OLED дисплейния модул към Arduino
Свързване на OLED дисплейния модул към Arduino
Свързване на OLED дисплейния модул към Arduino
Окабеляване на OLED дисплейния модул към Arduino
Окабеляване на OLED дисплейния модул към Arduino

Важна забележка за устройствата, поддържащи I2C, е, че начинът, по който трябва да ги свържете с Arduino, е един и същ. Това е така, защото Arduino изпълнява своята I2C комуникация само на специфични щифтове. В този урок използвам Arduino Uno. Arduino Uno използва щифт A5 като SCK и A4 като SDA. Така че можем да свържем OLED дисплеен модул към Arduino Uno, както е показано в схематичния изглед. Както можете да забележите на снимката, направена от моя OLED дисплей модул, конекторът за VCC и GND се различава от схематичния изглед. Не забравяйте да проверите етикетите на щифтовете на вашите модули, за да се уверите, че го свързвате по правилен начин.

Нуждаем се от само 4 пина, които трябва да бъдат свързани както по -долу:

Arduino VCC -> OLED модул VCC

Arduino GND -> OLED модул GND

Arduino 4 -> OLED модул SDA

Arduino 5 -> OLED модул SCK

Стъпка 5: Намиране на адреса на модула на дисплея

Намиране на адреса на модула на дисплея
Намиране на адреса на модула на дисплея

Като първа стъпка при свързване към устройство с I2C, трябва да имате адреса на модула. За да направите това, след като свържете модула към вашия Arduino, просто трябва да качите прикачения код на вашия Arduino. Този код включва библиотеката Wire, която е библиотека, включена в Arduino IDE, която обработва I2C комуникация. Той се опитва да сканира свързани I2C устройства и изпраща адреса им през сериен порт към вашия компютър. Така че можете да получите достъп до изхода му чрез инструмента за сериен монитор в Arduino IDE. Оригиналната версия е достъпна на Arduino Playground). Също така можете да го видите по по -четлив начин в моя онлайн Arduino Editor. Не очаквайте нищо да се показва на екрана, докато този код работи.

Както можете да видите на снимката, моят модул е свързан с адрес 0x3C. Обикновено всички устройства в определена продуктова линия (например всички 128x64 OLED модули) имат един и същ адрес.

Адресът на I2C устройствата е ограничен от 1 до 126. Този код просто се опитва да се свърже с всяко устройство по ред (без да предава никакви данни) и след това да провери дали не е съобщена грешка от основната библиотека при свързване към предоставения адрес. Ако няма грешка, отпечатва адреса като наличен модул за свързване. Също така трябва да се отбележи, че първите 15 адреса са запазени, така че той ги прескача и просто отпечатва тези над този диапазон. Не забравяйте, че адресът на тези I2C модули е твърдо кодиран на устройството и не може да се променя. Така че би било добра идея да го запишете някъде или да поставите етикет върху модула, когато ще го поставите обратно на лабораторния си рафт, така че следващия път да не се налага стартирането на кода на скенера. Това обаче не е сложна процедура;)

Стъпка 6: Инсталиране на библиотеки, необходими за показване на данни на OLED модул

Инсталиране на библиотеки, необходими за показване на данни на OLED модул
Инсталиране на библиотеки, необходими за показване на данни на OLED модул
Инсталиране на библиотеки, необходими за показване на данни на OLED модул
Инсталиране на библиотеки, необходими за показване на данни на OLED модул

Библиотеката Wire може да поддържа комуникация на ниско ниво с I2C устройства. Когато искате да се свържете с конкретно устройство, за да четете/записвате данни от/към него, обикновено бихте използвали библиотека, предоставена от компанията, която първоначално е изградила този модул. Тази библиотека обработва всички I2C комуникационни детайли с даден модул и ни позволява да се концентрираме повече върху нашия бизнес, който в този случай показва данните по начина, по който искаме.

Adafruit, компанията, която произвежда оригиналната версия на такива дисплейни модули, предоставя библиотеки, наречени Adafruit SSD1306 за показване на данни на тези монохромни дисплеи. Така че преди да започнем кодирането, трябва да инсталираме тази библиотека чрез библиотечния мениджър (достъпен чрез Sketch> Include Library> Manage Libraries…) в Arduino IDE. Има и друга библиотека, наречена Adafruit GFX Library, която обработва по -ниски графични неща и се използва вътрешно от Adafruit SSD1306. Трябва да имате и двете инсталирани на вашата Arduino IDE, както можете да видите на снимките.

Стъпка 7: Инициализиране на модула на дисплея

Инициализиране на модула на дисплея
Инициализиране на модула на дисплея

Модулът за рисуване на дисплея е опакован в клас, наречен Adafruit_SSD1306. Определението на този клас е в библиотеката Adafruit, така че първо трябва да включим тази библиотека. След това първо трябва да създадем екземпляр от този клас. Конструкторът от този клас взема номера на порта, на който дисплеят може да бъде нулиран, който е пин 4 (свързан към SCK). Тази част от кода трябва да се намира в началото на файла (извън функциите setup () и loop ()).

#включва

Adafruit_SSD1306 дисплей (4);

Сега във функцията setup () трябва да извикаме началната функция на дисплея, като предадем нашия I2C адрес, както е показано по -долу (SSD1306_SWITCHCAPVCC е постоянна стойност, определяща типа източник на захранване към библиотеката):

void setup () {

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); } void loop () {} // цикълът може да е празен засега

Сега дисплейният обект е готов и можем да извикаме неговите функции (например display.write (), display.drawLine и т.н.). Важната забележка е, че всеки път, когато нарисуваме нещо, като извикаме нашия дисплей обект, трябва да извикаме функцията display.display (), за да направим действителното рисуване на хардуерно ниво. Това се дължи главно на факта, че функциите за рисуване, които наричаме, просто актуализират представяне „в паметта“на дисплея поради съображения за производителност. Той всъщност кешира промените в паметта. Така че винаги трябва да помним да извикаме функцията display (), когато приключим с рисуването на нещо на екрана.

display.write (…); // продължава да се актуализира в паметта

display.drawLine (…); // продължава да се актуализира в паметта. display.display (); // изтрива всички промени в хардуера на дисплея

Ако се опитате да качите кода си в тази стъпка, ще забележите, че ще се покаже логото на Adafruit Industries. Може би се чудите кой го е помолил да го нарисува! Всъщност библиотеката на Adafruit прави това. Той инициализира паметта на модула (в паметта на хардуера на дисплея) с логото на тази компания. Ако не искате да видите това по време на инициализацията, можете да опитате да извикате функцията display.clearDisplay () точно преди да извикате display.display () във вашата функция за настройка. Тази функция, както подсказва името й, изчиства дисплея напълно.

#включва

Adafruit_SSD1306 дисплей (4); void setup () {display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay (); display.display (); } void loop () {}

Въз основа на документацията на библиотеката Adafruit_SSD1306, можете да използвате различни функции, предоставени от този клас, за да рисувате на дисплея или директно да манипулирате пикселите върху него. В следващите раздели ще се опитаме да представим пример за всеки от тях, за да имате представа за начина, по който работи. Повечето от тези примери ще показват само просто статично съдържание, така че можем просто да ги поставим в нашата функция setup () (след кода за инициализация). По този начин той ще бъде пуснат само веднъж и ще остане там.

Стъпка 8: Покажете прост текст

Показване на прост текст
Показване на прост текст
Показване на прост текст
Показване на прост текст
Показване на прост текст
Показване на прост текст

За да покажем текст, можем да използваме простата функция display.println () на библиотеката. Той приема текста като низ и се опитва да го покаже. Важно е да знаете, че трябва да кажем на библиотеката къде на дисплея ще представим текста. Всеки пиксел на дисплея има координата, посочена с X и Y. X се увеличава отляво надясно и Y се увеличава отгоре надолу. Горният ляв ъгъл на екрана е (X = 0, Y = 0), а долният десен ъгъл е (X = 127, Y = 63). Отбелязах координатите на ъглите на първата снимка. Можем да използваме функцията display.setCursor (), за да определим къде на дисплея ще показваме текста.

Друго свойство на текста е неговият цвят. Можем да зададем цвета с помощта на display.setTextColor (), както е показано на следната извадка.

display.clearDisplay ();

display.setTextColor (БЯЛ); display.setCursor (35, 30); display.println ("Здравей, свят!"); display.display ();

Можем също да използваме функцията display.write () за показване на един символ. Той приема код на символ като тип uint8_t и показва символа, съответстващ на този код, в низа. Като пример, ако искаме да покажем същия низ, използвайки тази функция, можем да използваме следния фрагмент:

display.clearDisplay ();

display.setTextColor (БЯЛ); display.setCursor (35, 30); display.write (72); display.write (101); display.write (108); display.write (108); display.write (111); display.write (32); display.write (87); display.write (111); display.write (114); display.write (108); display.write (100); display.write (33); display.display ();

Възможно е също така да рисувате текстове в черен цвят с бял фон. За да направите това, трябва да извикате функцията display.setTextColor, както е показано по -долу:

display.clearDisplay ();

// Задава цвета на черен с дисплей на бял фон. SetTextColor (ЧЕРЕН, БЯЛ); display.setCursor (25, 30); display.println ("Обърнат текст!"); display.display ();

Също така имате възможност да зададете размера на текста, като използвате функцията display.setTextSize (). Той приема цяло число като размер. Колкото по -голям е броят, толкова по -голям би бил текстът. Най -малкият размер е 1, който е размерът на текстовете по подразбиране. Следният код се опитва да напише буквата "А" в 6 различни размера:

display.clearDisplay ();

display.setTextColor (БЯЛ); display.setCursor (0, 0); display.setTextSize (1); display.print ("A"); display.setTextSize (2); display.print ("A"); display.setTextSize (3); display.print ("A"); display.setTextSize (4); display.print ("A"); display.setTextSize (5); display.print ("A"); display.setTextSize (6); display.print ("A"); display.display ();

Стъпка 9: Рисуване на основни фигури

Рисуване на основни фигури
Рисуване на основни фигури
Рисуване на основни фигури
Рисуване на основни фигури
Рисуване на основни фигури
Рисуване на основни фигури

Изчертаването на основни форми като правоъгълник, кръг, триъгълник, линия или точка е много лесно и за всяка от тях има специална функция.

Чертежна линия

За да начертаете линия, можете да се обадите на display.drawLine (startX, startY, endX, endY, цвят). Например следният код изчертава диагонални линии на екрана, така че да оформят голям X:

display.clearDisplay ();

display.drawLine (0, 0, display.width () - 1, display.height () - 1, БЯЛ); display.drawLine (display.width () - 1, 0, 0, display.height () - 1, БЯЛ); display.display ();

Можете да получите достъп до ширината и височината на дисплея, като използвате функциите display.width () и display.height (). По този начин кодът ви ще бъде независим от размера на екрана.

Рисуване на правоъгълник

Функцията за рисуване на правоъгълник е display.drawRect (upperLeftX, upperLeftY, ширина, височина, цвят). Ето кода, който чертае три правоъгълника на някои случайни места:

display.clearDisplay ();

display.drawRect (100, 10, 20, 20, БЯЛ); display.fillRect (10, 10, 45, 15, БЯЛ); display.drawRoundRect (60, 20, 35, 35, 8, БЯЛ); display.display ();

Като извикате display.fillRect (upperLeftX, upperLeftY, width, height, WHITE) можете да нарисувате правоъгълник, запълнен с определен цвят. Също така третата функция в този пример е display.drawRoundRect (upperLeftX, upperLeftY, ширина, височина, cornerRadius, цвят), която, както можете да видите на снимката, се използва за изчертаване на правоъгълник с кръгли ъгли. Той приема допълнителен параметър преди цвета, който е цяло число, показващо радиуса на ъгъла. Колкото по -голяма е стойността, толкова по -заоблен е ъгълът. Той също така има съответна функция за запълване, наречена display.drawFillRoundRect, която мисля, че можете да познаете какво прави.

Рисуващ кръг

Функцията е display.drawCircle (centerX, centerY, радиус, цвят). Ето един пример, който рисува усмихнати форми:

display.drawCircle (60, 30, 30, БЯЛ);

display.fillCircle (50, 20, 5, БЯЛ); display.fillCircle (70, 20, 5, БЯЛ);

Подобно на правоъгълниците, можете да използвате функцията display.fillCircle, за да нарисувате кръг, изпълнен с дадения цвят.

Рисуване на триъгълник

Ах, отново функция, наречена display.drawTriangle (poin1X, point1Y, point2X, point2Y, point3X, point3Y, цвят) и съответния display.fillTriangle, който чертае запълнен триъгълник.

display.drawTriangle (24, 1, 3, 55, 45, 55, БЯЛ);

display.fillTriangle (104, 62, 125, 9, 83, 9, БЯЛ);

Начертайте точка

Можете също така да оцветите определена точка (която се нарича пиксел) на екрана чрез функцията display.drawPixel (pixelX, pixelY, цвят).

display.drawPixel (20, 35, БЯЛ);

display.drawPixel (45, 12, БЯЛ); display.drawPixel (120, 59, БЯЛ); display.drawPixel (97, 20, БЯЛ); display.drawPixel (35, 36, БЯЛ); display.drawPixel (72, 19, БЯЛ); display.drawPixel (90, 7, БЯЛ); display.drawPixel (11, 29, БЯЛ); display.drawPixel (57, 42, БЯЛ); display.drawPixel (69, 34, БЯЛ); display.drawPixel (108, 12, БЯЛ);

Стъпка 10: Изчертаване на изображение

Рисуване на изображение
Рисуване на изображение
Рисуване на изображение
Рисуване на изображение

Рисуването на изображение е различно и малко сложно. Тъй като модулът на дисплея е едноцветен, първо трябва да преобразуваме изображението си във формат, наречен моноцветна растерна карта (наричан още черно -бял). В такъв формат всеки пиксел на изображението се представя с 0 или 1. 1s представлява съществуването на цвета, а 0s означава празно пространство. Можете да видите пример за логото на Arduino в този формат в горната част на този раздел. Функцията за рисуване на растерно изображение е display.drawBitmap (topLeftX, topLeftY, imageData, ширина, височина, цвят). Параметърът imageData е масив от числа в байтове. Всеки байт има 8 бита, така че всеки байт съдържа данните от 8 пиксела на изображението. Като посочва ширината и височината на изображението, функцията drawBitmap ще знае от кой бит започва следващият ред пиксели.

Решението, което избрах да конвертирам в този формат, беше първо да използвам един от онлайн „преобразувателите на изображения в ASCII“(напр. Http://my.asciiart.club), за да преобразувам картината си в набор от ASCII знаци и след това да я заменя символите, използвани за празно място с 0, а други с 1. Това е, което виждате по -долу. Можете да мислите за всеки 0 и 1 като пиксел на дисплея. Така че размерът на картината не трябва да надвишава нашия размер на дисплея, който е 128x64.

Забележка: Използването на тази ASCII техника не е препоръчителен подход, тъй като поради съотношението на страните на изображението вашето изображение ще се деформира (знаците не са квадрат). Опитах тази техника само защото улеснява преобразуването на изображението в необходимия формат. В противен случай би било възможно да се постигне най -добрият резултат чрез програмиране или използване на някои помощни приложения, които са напълно извън обхвата на този текст.

00000000000000000000011111111111111111111110000000000000000000000000000000000000011111111111111111111111111111100000000000000000 0000000000000111111111111111111111111111111111111110000000000000 0000000000011111111111111111111111111111111111111111100000000000 0000000001111111111111111111111111111111111111111111111000000000 0000000111111111111111111111111111111111111111111111111110000000 0000011111111111111111111111111111111111111111111111111111100000 0000111111111111111111111111111111111111111111111111111111110000 0001111111111111111111111111111111111111111111111111111111111000 0011111111111111111111111111111111111111111111111111111111111100 0111111111111111000000011111111111111111100000001111111111111110 0111111111110000000000000001111111111000000000000000111111111110 1111111111000000001111000000001111000000001111000000001111111111 1111111110000011111111111100000110000011111111111100000111111111 1111111100000111111111111111000000001111111001111110000011111111 1111111100001111100000011111100000011111100000011111000011111111 1111111100001111100000011111100000011111100000011111000011111111 1111111100000111111111111111000000001111111001111110000011111111 1111111110000011111111111100000110000011111111111100000111111111 1111111111000000001111000000001111000000001111100000001111111111 0111111111110000000000000000111111110000000000000000111111111110 0111111111111111000000001111111111111111000000001111111111111110 0011111111111111111111111111111111111111111111111111111111111100 0001111111111111111111111111111111111111111111111111111111111000 0000111111111111111111111111111111111111111111111111111111110000 0000011111111111111111111111111111111111111111111111111111100000 0000000111111111111111111111111111111111111111111111111110000000 0000000011111111111111111111111111111111111111111111111100000000 0000000000011111111111111111111111111111111111111111100000000000 0000000000000111111111111111111111111111111111111110000000000000 0000000000000000111111111111111111111111111111110000000000000000 0000000000000000000001111111111111111111111000000000000000000000

Сега трябва да разделим всеки ред на 8, представляващ байт и да ги съхраняваме в масив, както е показано по -долу:

static const unsigned char PROGMEM arduino_logo = {

B00000000, B00000000, B00000111, B11111111, B11111111, B11100000, B00000000, B00000000, B00000000, B00000000, B01111111, B11111111, B11111111, B11111110, B00000000, B00000000,…

След това можем да го нарисуваме на дисплея, като извикаме функцията drawBitmap.

display.drawBitmap (32, 16, arduino_logo, 64, 32, БЯЛ);

Стъпка 11: Отстраняване на неизправности

Това беше дълъг урок и затова е много вероятно нещо да се обърка. Ето списъка с някои често срещани грешки, които може да срещнете при настройването на OLED дисплейния модул за вашия проект (някои от тях се случиха при мен при подготовката на този урок).

Нищо не се показва изобщо

Това може да се случи по много причини, затова предлагам да проверите следния списък, който е в ред, който може да се появи във вашия проект:

I2C адрес вероятно е грешен

Уверете се, че сте задали адреса, който сте получили в кода на i2c-скенера във функцията display.begin (), когато настройвате вашия дисплей обект.

SCL и SDA са свързани по грешен начин

Това всъщност се случи за мен. Ако използвате Arduino Uno, трябва да проверите връзките си отново, за да се уверите, че са свързани същите като моите. Ако използвате друго издание на Arduino (напр. Mega, Leonardo и т.н.), трябва да знаете, че може да са настроили I2C на други пинове. Можете да го проверите в документацията на библиотеката Wire.

Рисувате нещо от видимата област

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

Текстът изобщо не се показва

Забравили сте да зададете цвета на текста или сте го задали на грешна стойност

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

Използвате много голям шрифт

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

Има грешка при компилиране относно размера на дисплея

Това се случи и за мен и мисля, че ще се случи за повечето от вас. Поради постоянните стойности на размера на дисплея, които са дефинирани в заглавния файл Adafruit_SSD1306.h, ние включваме отгоре на нашия скрипт. Този файл се намира в {your-project-folder} libraries / Adafruit_SSD1306 / Adafruit_SSD1306.h. Ако отворите този файл, ще забележите, че има раздел за коментари, както е описано по -долу, в който той описва, че трябва да декомментирате само константата, която представлява размера на вашия OLED дисплей модул. За 128x64 дисплейни модули, редът #define SSD1306_128_64 трябва да бъде декомментиран.

/*=====================================================================

SSD1306 дисплеи ------------------------------------------------ ---------------------- Драйверът се използва в множество дисплеи (128x64, 128x32 и т.н.). Изберете подходящия дисплей по-долу, за да създадете рамка с подходящ размер и т.н. SSD1306_128_64 128x64 пикселен дисплей SSD1306_128_32 128x32 пикселен дисплей SSD1306_96_16 --------------------------- --------------------------------------------* / #определи SSD1306_128_64 / / #дефинирам SSD1306_128_32 // #дефинирам SSD1306_96_16 /*===================================== ===============================*/

Стъпка 12: Какво да направите по -нататък?

OLED дисплеят като изходен модул може да ви даде чудесна възможност да предоставите професионално изглеждащ интерфейс на вашите хоби проекти. Можете да опитате да следвате идеите като отправна точка за показване на значими данни за тях или да помогнете на потребителя да разбере какво се случва или дали трябва да направи нещо. За потребителя би било много по -ясно да прочете съобщение на дисплея, отколкото да интерпретира състоянието на проект/устройство чрез някои светодиоди.

Това, което можете да направите като отправна точка, може да бъде:

  • Прочетете стойността на сензора за температура и я покажете на OLED модула. Можете да добавите сензор за налягане или влажност към него и да създадете напълно функционален проект за метеорологична станция.
  • Опитайте се да нарисувате нещо на модула на дисплея, като използвате джойстик като входно устройство.
  • Опитайте се да нарисувате анимация на дисплея чрез последователност от изчертаване/забавяне на повиквания на функции или прекъсване на Arduino
  • Показвайте персонализираното си лого при стартиране на системата (вместо лого на Adafruit)

Не забравяйте да ми кажете в коментарите какво бихте направили (или вече сте направили) с помощта на OLED дисплейния модул.

Препоръчано: