Съдържание:

Как да добавите дисплей с електронно мастило към вашия проект: 12 стъпки (със снимки)
Как да добавите дисплей с електронно мастило към вашия проект: 12 стъпки (със снимки)

Видео: Как да добавите дисплей с електронно мастило към вашия проект: 12 стъпки (със снимки)

Видео: Как да добавите дисплей с електронно мастило към вашия проект: 12 стъпки (със снимки)
Видео: 5 Яки Трика за iPhone, които НЕ ЗНАЕТЕ! 2024, Може
Anonim
Как да добавите дисплей с електронно мастило към вашия проект
Как да добавите дисплей с електронно мастило към вашия проект
Как да добавите дисплей с електронно мастило към вашия проект
Как да добавите дисплей с електронно мастило към вашия проект

Много проекти включват мониторинг на някакъв вид данни, като например данни за околната среда, често използващи Arduino за контрол. В моя случай исках да наблюдавам нивото на солта в моя омекотител за вода. Може да искате да получите достъп до данните през домашната си мрежа, но също така може да искате да ги покажете там, където се измерват. Или можете да имате винаги включен дистанционно свързан дисплей на по-удобно място.

Вече можете да използвате няколко вида дисплей, всички доста евтини, но с различни предимства и недостатъци:

  • Буквено -цифровият LCD дисплей е най -евтиният, но и най -ограничен.
  • OLED дисплей може да показва графики, но евтините са много малки. Втората снимка показва OLED дисплей с размери 128x64 пиксела до E-Ink.
  • Екранът с електронно мастило (или електронна хартия) е малко по-голям и следователно е по-лесен за четене и има предимството, че дисплеят се запазва дори когато е изключен! Но отнема няколко секунди, за да се прерисува дисплеят.

Дисплеят на E-Ink изглеждаше идеален за моето приложение, тъй като можех да програмирам Arduino да се събужда само на всеки няколко часа, да чете и да го показва, преди да заспи. Тогава няма никакво значение, че отнема няколко секунди за прекрояване на дисплея.

В такова приложение средната консумация на ток може да бъде така ниска, че 9V литиева батерия за детектор на дим да може да издържи 10 години! Нещо повече, някои от тези дисплеи ще показват три цвята: бял, черен и червен (или жълт). Идеален, ако искате да изведете предупреждение или предупреждение в червено.

Консумативи

Най-евтините дисплеи с електронно мастило, които съм намерил, се продават от BuyDisplay, който също се предлага от много продавачи на eBay. За съжаление документацията оставя много да се желае, затова си взех да напиша урок - прочетете нататък!

В зависимост от вашите изисквания и вашия бюджет имате избор от различни размери:

  • 1.54 "(152x152 = 23, 104 пиксела)
  • 2.13 "(212x104 = 22, 048 пиксела)
  • 2.6 "(296x152 = 44, 992 пиксела)
  • 2.7 "(176x264 = 46, 464 пиксела)
  • 2.9 "(296x128 = 37, 888 пиксела)
  • 4.2 "(400x300 = 120 000 пиксела)
  • 5.83 "(640x480 = 307, 200 пиксела)
  • 7,5 инча (880x528 = 464, 640 пиксела)

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

Предлагат се като двуцветни (черно/бяло) или три цвята (черно/червено/бяло или черно/жълто/бяло). Тази инструкция предполага, че използвате червената, но ако сте избрали жълтата версия, просто прочетете „жълто“за „червено“навсякъде.

Изберете SPI (4-жична) версия. Използвах 1.54 модел, който е много хубав размер.

Стъпка 1: Свързване на дисплея

Свързване на вашия дисплей
Свързване на вашия дисплей

Тези дисплеи се доставят с 2x4 пинов заглавие. Номерата на щифтовете са ясно обозначени, щифтове 7, 5, 3 и 1 (отляво надясно) по горния ред и 8, 6, 4, 2 по долния.

Вашият дисплей може да бъде снабден с 8-пътен кабел, който улеснява свързването. (Пач кабелът ми има 2 червени проводника и 2 кафяви. Те не са взаимозаменяеми!

Следващата таблица дава връзките, които се отнасят за повечето видове Arduino (включително Uno, Pro Mini, Pro Micro и Nano).

Модул за електронно мастило Arduino
ПИН Име ПИН Име
1 VDD Vcc 3.3/5V
2 VSS Gnd Gnd
3 Входящи серийни данни 11 MOSI
4 Входящ сериен часовник 13 SCK
5 /Избор на чип 10
6 Данни/Instr 9
7 Нулиране 8
8 Устройството е заето 7

Стъпка 2: Изтеглете предоставения софтуер

Можете да използвате предоставения софтуер, както е описано в тази стъпка, или можете да използвате моята подобрена библиотека в следващата стъпка, освен една.

Намерете вашето устройство на BuyDisplay.com. В долната част на страницата ще намерите ZIP файл за изтегляне „Arduino Library and Example for 4-wire SPI“. Щракнете върху това, за да изтеглите и отворите в Windows Explorer.

Windows Explorer ще покаже това като съдържащо една папка от първо ниво „Libraries-Examples_ER-EPM0154-1R“. (Името ще бъде малко по -различно, ако вашият не е 1,54 -инчовият модел.)

Копирайте тази папка от най-високо ниво във вашата папка с библиотеки на Arduino. Щракнете с десния бутон, за да преименувате папката, и изтрийте „Libraries-Examples_“от името.

(За да намерите вашата папка с библиотеки на Arduino, в Arduino IDE щракнете върху Файл… Предпочитания и отбележете местоположението на Sketchbook. Придвижете се до това и ще намерите папката „библиотеки“на Arduino сред папките ви за скици.)

Отворете тази папка и отворете папката „Библиотеки“в нея. Плъзнете и пуснете всички файлове в тази папка в родителската папка едно ниво нагоре ("ER-EPM0154-1R"). Изтрийте папката "Библиотеки" (сега празна).

Вече сте инсталирали файловете и скицата на изпита като библиотека на Arduino. Обърнете внимание, че ако вашият дисплей не е 1.54 , единствената разлика изглежда са два реда в ER-ERM*-1.h, дефиниращи WIDTH и HEIGHT.

В IDE на Arduino, щракнете върху Файл … Проверки и превъртете надолу до ER-EPM0154-1R за демонстрационната скица, която трябва да можете да компилирате и стартирате веднага щом свържете дисплея си с вашия Arduino.

Стъпка 3: Стартирайте демонстрацията

Пускане на демонстрацията
Пускане на демонстрацията
Пускане на демонстрацията
Пускане на демонстрацията

В IDE на Arduino щракнете върху Файл … Примери … ER-EPM0154-1R.

Свържете вашия Arduino към компютъра си с USB кабел или както обикновено го правите.

Под Инструменти задайте дъската, процесора и порта.

Под Скица щракнете върху Качване.

Ще има леко забавяне след приключване на качването, а десет забавянето ще мига няколко пъти, докато рисува първото изображение. Гледайте, докато премине през демото.

Стъпка 4: Използване на подобрената библиотека

Можете да изтеглите моята подобрена библиотека от github на адрес

N. B. Имам голяма степен на увереност, че библиотеката ми ще работи с дисплей, съвместим с всякакъв размер, но всъщност я тествах само с 1.54 модел. Ако използвате различен, моля, уведомете ме в коментарите в края на този Instructable, за да потвърдите, че работи. Но ако не стане, ще направя всичко възможно да ви накарам да продължите.

Изтеглете и запазете zip файла. В Arduino IDE щракнете върху Sketch… Include Library… Add. ZIP Library и изберете запазения zip файл.

Моята библиотека съдържа няколко малки подобрения:

  • Той позволява да се използват различни пинови номера на Arduino (с изключение на MOSI).
  • Същата библиотека може да се използва за устройства с всякакъв размер.
  • Осигурени са нова запълнена с 50% засенчване и пъстра запълване (набор от произволни пиксели).

Библиотеката се предлага като стандартен Arduino компресиран (zip) файл. Изтеглете го в папката „Изтегляния“(или където предпочитате) и в Arduino IDE щракнете върху Sketch… Include Library… Add ZIP Library.

Под Примери сега ще намерите E-ink_ER-EPM. Има 3 примерни скици:

  • ER_EPM154-1R-Test: Оригиналната демонстрация, предоставена от доставчика
  • E-ink_demo: Скицата, разработена в следващите стъпки
  • E-ink_rotate: Демонстрация на завъртане на изображението.

Стъпка 5: Програмирайте го сами

За съжаление няма документация с предоставения от доставчика код, нито примерният код е коментиран адекватно. Това прави използването му по -трудно, отколкото трябва да бъде, и основната цел на тази инструкция е да постави това право.

Основни понятия

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

Тези раздели на екрана са известни като обекти "Paint". Имате нужда само от един и за всеки раздел от екрана определяте височината, ширината и завъртането му. Когато приключи, го качвате, като определяте позицията на екрана, на която да го заредите и дали трябва да е черно -бял или червено -бял.

Горният ляв ъгъл на екрана има хоризонтални (x) и вертикални (y) координати (0, 0), долният ляв е (0, 151) и горният десен е (151, 0).

Инициализация

Отворете скицата E-ink_demo в IDE на Arduino и я следвайте, докато описвам как да използвам библиотеката.

В горната част на скицата ще видите следните редове, които винаги са необходими:

#include <SPI.h #include "ER-ERM0154-1.h" #include "imagedata.h" #include "epdpaint.h" #define COLORED 0 #define UNCOLORED 1 Epd epd;

Редовете #include привличат необходимите библиотеки. SPI.h е стандартна библиотека на Arduino, но останалите са част от библиотеката за електронно мастило.

Определяме имена за UNCOLORED (бели) пиксели и COLORED (черни или червени). (Забележка към моите колеги европейци: използва се американският правопис на COLOR.)

Epd epd; line създава обект на електронно хартиено устройство, върху което ще се показва. Това трябва да е тук в началото на скицата, за да стане достъпна за bith функциите setup () и loop ().

Ако имате дисплей с различен размер, можете да замените реда EPD с:

Epd epd (WIDTH, HEIGHT);

(с предварително дефинирани WIDTH и HEIGHT в #define изрази.)

По същия начин можете да посочите пин номера, които не са по подразбиране, с:

Epd epd (WIDTH, HEIGHT, BUSY_PIN, RESET_PIN, DC_PIN, CS_PIN);

В рамките на setup () трябва да инициализираме устройството, както следва:

Serial.begin (9600)

if (epd. Init ()! = 0) {Serial.print ("e-Paper init failed"); връщане; }

(Всъщност epd. Init () никога не връща грешка, но бъдещо подобрение може да открие липсата на дисплей или неработещ такъв.)

Стъпка 6: Писане на текст

Писане на текст
Писане на текст

В E-ink_demo насочете вниманието си към loop (). Първо, нека изчистим дисплея:

epd. ClearFrame ()

(Това всъщност не е необходимо, ако ви предстои показване на вашето собствено изображение.)

Преди да можем да нарисуваме каквото и да е (независимо дали е текст или графика), трябва да създадем обект Paint, върху който да рисуваме:

неподписан символ [1024]

Боя за боя (изображение, 152, 18); // ширината трябва да бъде кратна на 8

Това запазва известно пространство (1024 байта) и го разпределя към обекта Paint, прекъснат от втория ред. Това е временно конфигурирано като 152 пиксела ширина и 18 пиксела дълбочина. Можем да го конфигурираме по -късно за повторно използване, ако е необходимо, но имайте предвид: ширината трябва да бъде многократно 8, тъй като 8 пиксела се съхраняват на байт и не можем да разделяме байтове. (Всъщност това ще го закръгли, ако е необходимо, но след това може да бъде озадачаващо, когато дисплеят ви не изглежда така, както трябва.

Сега трябва да изчистим обекта за боядисване на UNCOLORED (бял), след това на позиция (x, y) = (22, 2) пишем "Демонстрация на e-ink" с помощта на шрифт с височина 16 пиксела и COLORED (за да се покаже срещу НЕОЦВЕТЕН фон.

боя. Чист (НЕОЦВЕТЕН)

paint. DrawStringAt (12, 2, "демонстрация на електронна хартия", & Font16, COLORED);

Обърнете внимание, че координатите (22, 2) са горният ляв ъгъл на първия знак на низа и са с 22 пиксела и 2 пиксела надолу спрямо горния ляв ъгъл на обекта за рисуване, а не на целия дисплей. Текстът изглежда най -добре поне на един пиксел надолу от горната част на обекта за боядисване.

Налични са следните шрифтове:

Шрифт 8 - 5x8 пиксела шрифт 12 - 7x12 пиксела шрифт 16 - 11x16 пиксела шрифт 20 - 14x20 пиксела шрифт 24 - 17x24 пиксела

Сега просто трябва да изпратим обекта за боядисване ("paint") на устройството ("epd"):

epd. SetPartialWindowBlack (paint. GetImage (), 0, 3, paint. GetWidth (), paint. GetHeight ());

SetPartialWindowBlack е метод, който прилагаме към обекта epd, използвайки изображението и неговите свойства за ширина и дълбочина на обекта за рисуване. Казваме му да запише това изображение на устройството на (x, y) = (0, 3). И казваме, че ЦВЕТНИТЕ пиксели трябва да са черни.

Това не беше твърде трудно, нали? Нека опитаме друг.

боя. Чист (ЦВЕТЕН);

paint. DrawStringAt (20, 2, "(Бяло на цвят)", & Font12, НЕОЦВЕТЕН); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());

Използваме повторно един и същ обект за боядисване, със същата ширина и височина, но този път нека го изчистим до COLORED и му напишем НЕОЦВЕТЕН низ. И за промяна, ще направим COLORED пикселите червени и ще ги запишем на устройството в (0, 24), точно под първия.

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

epd. DisplayFrame ();

(В скицата E-ink_demo всъщност оставяме това до края, след като нарисуваме още неща, но можете да го вмъкнете тук, ако желаете, mybe последвано от закъснение (10000); за да ви дадем време да се възхитите на вашите ръце.

Стъпка 7: Начертаване на линии и правоъгълници

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

Нека да видим как да нарисуваме линии и правоъгълници. Ще използваме един и същ обект на боя, но трябва да го конфигурираме като 40 пиксела широк и 36 пиксела висок. Ще го изчистим до UNCOLORED.

paint. SetWidth (40);

paint. SetHeight (36); боя. Чист (НЕОЦВЕТЕН);

Ще нарисуваме (ЦВЕТЕН) правоъгълник с горния ляв ъгъл (5, 3) и долния десен (35, 33), спрямо обекта на боя, както обикновено. Също така ще нарисуваме диагоналите му като линии от (5, 3) до (35, 33) и от (35, 3) до (5, 33). Накрая ще запишем целия обект на боя (червен) на екрана в (32, 42).

//ГОРНИЯ РЕД:

// Rectange paint. Clear (UNCOLORED); боя. DrawRectangle (5, 3, 35, 33, COLORED;) боя. DrawLine (5, 3, 35, 33, COLORED); paint. DrawLine (35, 3, 5, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());

Библиотеката, както се появи, също предостави запълнен правоъгълник, но хей, исках засенчен, затова добавих нов метод. Ще направим още два правоъгълника, един засенчен и един запълнен, и ще ги поставим вдясно от първия, като ги редуваме черно и червено.

// Shaded Rectange paint. Clear (UNCOLORED); paint. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Запълнена правоъгълна боя. Clear (НЕОБРАЗЕН); боя. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());

Стъпка 8: Начертаване на кръгове

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

Кръговете са също толкова лесни за рисуване. Вместо координатите на два ъгъла, трябва да определим координатите на центъра и радиуса. Ще изчистим обекта на боята, след което ще поставим кръг на (20, 15) (спрямо обекта на боя) и радиус 15. И повторете за засенчен и запълнен кръг.

// ВТОРИ РЕД

// Кръгова боя. Clear (UNCOLORED); боя. DrawCircle (20, 18, 15, ЦВЕТЕН); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Shadow Circle paint. Clear (UNCOLORED); paint. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Боя с запълнен кръг. Clear (UNCOLORED); paint. DrawFilledCircle (20, 18, 15, COLORED); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

Стъпка 9: НЕОЦВЕТЕН на ЦВЕТЕН фон

НЕОЦВЕТЕН на ЦВЕТЕН фон
НЕОЦВЕТЕН на ЦВЕТЕН фон

Тук се справяме добре! Така че, докато сме на ролка, нека направим още 3 кръга на ред по -долу, този път НЕОЦВЕТЕН върху ЦВЕТЕН обект на боя, както направихме с втория ред текст.

// ТРЕТИ РЕД

// Кръгова боя. Clear (COLORED); paint. DrawCircle (20, 18, 15, НЕОЦВЕТЕН); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Shadow Circle paint. Clear (COLORED) paint. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Запълнена кръгла боя. Clear (COLORED); paint. DrawFilledCircle (20, 18, 15, НЕОЦВЕТЕН); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());

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

paint. DrawSpeckledCircle (20, 18, 15, 25);

Крайният параметър (25) е плътността, т.е. процентът на пикселите, които трябва да бъдат оцветени. Ако се пропусне, се предполага 50%.

Има и DrawSpeckledRectangle, с допълнителен допълнителен параметър, определящ плътността.

Стъпка 10: Завъртане

Завъртане
Завъртане
Завъртане
Завъртане

Всичко, което можем да нарисуваме, можем да завъртим на 90, 180 или 270 градуса. (Ние броим завъртанията по часовниковата стрелка.)

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

Така че, ако искате текстът ви да се завърти по посока на часовниковата стрелка на 90 градуса, така че да се чете отгоре надолу (вместо отляво надясно), горният десен ъгъл на обекта за рисуване ще бъде (0, 0) за целите на всичко, което пишете или нарисувайте в него, като x е разположено от този ъгъл надолу и y от този ъгъл наляво.

Вероятно сте забелязали, че оставихме място вляво от дисплея. Нека да напишем текст, завъртян на 270 градуса, т.е. четене отдолу нагоре. Това ще постави (0, 0) в долния ляв ъгъл.

Обърнете внимание, че въпреки че завъртате обект на боя, въртенето се прилага само когато рисувате пиксели върху него. Когато дойдете да го запишете на устройството, това все още са координатите на горния ляв ъгъл, които трябва да дадете на SetPartialWindow.

Така че, за да обобщим, нека конфигурираме нашия обект на боя да има ширина 32 и височина 110 и ще му дадем свойство ROTATE_270. Не че трябва да направим всичко това, преди да напишем или нарисуваме нещо към него.

paint. SetWidth (32);

paint. SetHeight (110); paint. SetRotate (ROTATE_270);

Ще го изчистим в COLORED и ще напишем UNCOLORED низ, след което го поставете на (0, 42). (Това е горният ляв ъгъл, не забравяйте. Забравете за всяко завъртане на пикселите в него.)

боя. Чист (ЦВЕТЕН); paint. DrawStringAt (8, 8, "Странично!", & Font16, НЕОЦВЕТЕН); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

И накрая, трябва да кажем на устройството да показва всички пиксели, които сме му дали. И ако няма да искаме да го променим за известно време и искаме да пестим енергията на батерията, можем да го приспим, а защо да не приспим и Arduino, за да бъдем събудени, когато дойде време да вземем и покажем друг измерване.

epd. DisplayFrame ();

epd. Sleep ();

Втора примерна скица показва завъртане на 90, 180 и 270 градуса. Вече трябва да можете да го следвате сами.

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

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

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

www.buydisplay.com/image2lcd

Той идва като zip файл, съдържащ инсталационен файл.exe и текстов файл, съдържащ лицензионен ключ. Разгънете го, след което щракнете двукратно върху.exe файла, за да го инсталирате.

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

Можете да създадете изображение с какъвто и да е софтуер за рисуване, който познавате, или можете да сканирате в скица или рисунка, но и в двата случая трябва да можете да го намалите само до 2 нива. Запазете го като.gif,-j.webp

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

В Image2Lcd отворете файла с изображение. В левия прозорец се уверете, че имате

  • Изходен тип файл: C масив
  • Режим на сканиране: Хоризонтално сканиране
  • BitsPixel: Монохромно
  • Максимална ширина и височина: размерът на вашия дисплей и
  • Данните за включване на главата трябва да бъдат отметнати.

Щракнете върху бутона до Максимална ширина и височина, за да обработите. Резултатът от обработката ще бъде показан. Може да се наложи да регулирате плъзгачите Яркост и Контраст, за да получите най -добри резултати.

Поставете отметка в квадратчето Обратен цвят над плъзгача Яркост, като го направите отрицателно изображение, което по някаква причина е необходимо, след което щракнете върху Запиши, за да го запишете като imagedata.cpp в папката, съдържаща вашата скица на Arduino. Следващия път, когато отворите скицата с Arduino IDE, трябва да я видите като нов раздел.

Стъпка 12: Показване на вашата растерна карта

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

В основния файл на вашата скица на Arduino, непосредствено след редовете #include в горната част, вмъкнете:

#include "imagedata.h"

Създайте нов раздел (щракнете върху стрелката надолу в края на реда на разделите) и го наречете imagedata.h. Вмъкнете в него следните 2 реда:

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

Във вашия imagegedata.cpp файл първият ред ще започне с

const unsigned char gImage_image [2888] = {

(Числото в квадратни скоби ще бъде различно, ако не използвате 1.54 -инчов дисплей.) Заменете това с

const unsigned char IMAGE_BLACK PROGMEM = {

Това е за черно -бяло изображение. Ако искате червено и бяло, променете го на

const unsigned char IMAGE_RED PROGMEM = {

Точно преди този ред добавете

#включва

#include "imagedata.h"

Вече сте готови да покажете вашето изображение. В loop () във вашия основен файл добавете

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Или, ако беше червено изображение, което сте създали, вторият ред трябва да бъде

epd. DisplayFrame (NULL, IMAGE_RED);

Всъщност можете да създадете комбинирано червено и черно изображение, като преобразувате червените и черните части поотделно с Image2Lcd и ги показвате с

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Всички пиксели, които са посочени като черни в черно -бялото изображение, и червени в червено -бялото, ще излязат червени.

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

Боя за боя (изображение, 20, 152); // ширината трябва да бъде кратна на 8

paint. SetRotate (ROTATE_270); боя. Чист (НЕОЦВЕТЕН); paint. DrawStringAt (20, 2, "@pleriche", & Font16, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 0, 0, paint. GetWidth (), paint. GetHeight ()); epd. SetPartialWindowRed (paint. GetImage (), 0, 0, paint. GetWidth (), paint. GetHeight ()); epd. DisplayFrame ();

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