Мазмуну:
- Жабдуулар
- 1 -кадам: Дисплейиңизди туташтыруу
- 2 -кадам: Программаны жүктөп алыңыз
- 3 -кадам: Демону иштетүү
- 4 -кадам: Жакшыртылган китепкананы колдонуу
- 5 -кадам: Аны өзүңүз программалаңыз
- 6 -кадам: Текст жазуу
- 7 -кадам: Сызыктарды жана тик бурчтуктарды чийүү
- 8 -кадам: Чөйрөлөрдү тартуу
- 9 -кадам: ТҮСТҮҮ Bckground боюнча ТҮСТҮК
- 10 -кадам: айлануу
- 11 -кадам: Битмаптарды тартуу
- 12 -кадам: Bitmapти көрсөтүү
Video: Долбооруңузга E-Ink дисплейин кантип кошуу керек: 12 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Көптөгөн долбоорлор ар кандай маалыматтарды, мисалы, экологиялык маалыматтарды көзөмөлдөөнү камтыйт, көбүнчө көзөмөлдөө үчүн Arduino колдонушат. Менин учурда, мен суу жумшарткычымдагы туздун деңгээлине көз салгым келди. Сиз маалыматка үй тармагыңыз аркылуу киргиңиз келиши мүмкүн, бирок ошону менен бирге аны өлчөнүп жаткан жерде көрсөтүүнү каалашыңыз мүмкүн. Же дагы ыңгайлуу жерде дайыма алыстан туташып турган дисплейиңиз болушу мүмкүн.
Азыр сиз колдоно турган дисплейдин бир нече түрү бар, бардыгы абдан арзан, бирок ар кандай артыкчылыктары жана кемчиликтери бар:
- Алфавиттик -сандык ЖК дисплей эң арзан, бирок эң эле чектелген.
- OLED дисплей графиканы көрсөтө алат, бирок арзандары өтө кичине. Экинчи сүрөттө E-Ink сүрөтүнүн жанында 128x64 пикселдүү OLED дисплейи көрсөтүлгөн.
- E-Ink (же E-Paper) дисплейи бир аз чоңураак, ошондуктан окуу оңой, жана артыкчылыгы бар, ал өчүрүлгөндө деле дисплей сакталат! Бирок дисплейди кайра тартуу үчүн бир нече секунд кетет.
E-Ink дисплейи менин колдонуум үчүн идеалдуу көрүндү, анткени мен Arduino программасын ар бир нече саатта ойгонуп, окуусун алып, кайра уктаар алдында көрсөтө алам. Бул дисплейди кайра тартуу үчүн бир нече секунд талап кылынат.
Мындай тиркемеде, орточо учурдагы керектөөнү 9В литий түтүн детекторунун батареясын 10 жылга чыдай тургандай кылып уюштурса болот! Андан тышкары, бул дисплейлердин кээ бирлери үч түстү көрсөтөт: ак, кара жана кызыл (же сары). Эгер кызыл түстө эскертүү же эскертүү көрсөтүүнү кааласаңыз идеалдуу.
Жабдуулар
Мен тапкан эң арзан E-Ink дисплейлери 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 пиксел)
(Акыркы жолу карагандан бери диапазон кеңейди, сиз муну окуганда дагы кеңейиши мүмкүн.)
Алар 2 түстүү (кара/ак) же 3 түстүү (кара/кызыл/ак же кара/сары/ак) түрүндө болот. Бул Нускоо сиз кызылды колдонуп жатканыңызды болжолдойт, бирок эгер сиз сары версиясын тандап алган болсоңуз, анда "сары" дегенди "кызыл" үчүн окуңуз.
SPI (4 зымдуу) версиясын тандаңыз. Мен 1.54 дюймдук моделди колдондум, бул абдан жакшы өлчөм.
1 -кадам: Дисплейиңизди туташтыруу
Бул дисплейлер 2х4 пин баш менен келет. Пиндин номерлери так белгиленген, 7, 5, 3 жана 1 төөнөгүчтөр (солдон оңго) жогорку катарда жана 8, 6, 4, 2 асты боюнча.
Дисплейиңиз 8 тараптуу патч кабели менен келиши мүмкүн, бул туташууну жеңилдетет. (Менин патч кабелимде 2 кызыл зым жана 2 күрөң бар. Алар алмаштырылбайт!
Төмөнкү таблицада Arduino (анын ичинде Uno, Pro Mini, Pro Micro жана Nano) түрлөрүнө тиешелүү болгон байланыштар берилген.
E-ink Module | Arduino | ||
Кадап коюу | Аты | Кадап коюу | Аты |
1 | VDD | Vcc | 3.3/5V |
2 | VSS | Gnd | Gnd |
3 | Сериялык маалыматтар | 11 | MOSI |
4 | Сериялык саат кирди | 13 | SCK |
5 | /Чип тандоо | 10 | |
6 | Маалымат/Инстр | 9 | |
7 | Кайра коюу | 8 | |
8 | Түзмөк бош эмес | 7 |
2 -кадам: Программаны жүктөп алыңыз
Сиз берилген программалык камсыздоону бул кадамда сүрөттөлгөндөй колдонсоңуз болот, же менин жакшыртылган китепканамды кийинки кадамда колдоно аласыз, бирок бирөө.
BuyDisplay.com сайтынан түзмөгүңүздү табыңыз. Беттин ылдый жагында сиз "Arduino китепканасы жана 4 зымдуу SPIге мисал" деген ZIP файлын таба аласыз. 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 эки сызыкта окшойт, WINTH жана HEIGHT.
Arduino IDEде Файл… Мисалдарды чыкылдатыңыз жана ER-EPM0154-1R демо эскизи үчүн ылдый жылдырыңыз, сиз дисплейиңизди Arduinoңузга туташтырып койгондон кийин иштете аласыз.
3 -кадам: Демону иштетүү
Arduino IDEде Файлды басыңыз … Мисалдар… ER-EPM0154-1R.
Ардуинону компьютериңизге USB кабели менен туташтырыңыз, же адаттагыдай эле.
Куралдар астына, Board, Processor жана Port орнотуңуз.
Эскиздин астындагы Жүктөө дегенди басыңыз.
Жүктөө аяктагандан кийин бир аз кечигүү болот жана он биринчи кармашты боёп жатканда он жолу кечигип калат. Ал демо аркылуу өтүп жатканда көрүңүз.
4 -кадам: Жакшыртылган китепкананы колдонуу
Сиз жакшыртылган китепканамды githubдан https://github.com/p-leriche/E-ink_ER-EPM дарегинен жүктөп алсаңыз болот
Н. Б. Менин китепканам каалаган өлчөмдөгү дисплей менен иштээрине ишенем, бирок мен аны 1,54 дюймдук модель менен гана сынап көрдүм. Эгер башка бирөөнү колдонсоңуз, аягындагы комментарийлерде мага билдириңиз. Бул Нускаманын, анын иштээрин ырастоо үчүн. Бирок эгер андай болбосо, мен сиздин барышыңыз үчүн колумдан келгендин баарын кылам.
ZIP файлын жүктөп алып, сактаңыз. Arduino IDEде эскизди басыңыз … Китепкананы кошуу…. ZIP Китепканасын кошуу жана сакталган ZIP файлын тандоо.
Менин китепканамда бир нече майда жакшыртуулар бар:
- Бул ар кандай Arduino пин номерлерин колдонууга мүмкүндүк берет (MOSIден башка).
- Ошол эле китепкананы каалаган өлчөмдөгү түзмөк үчүн колдонсо болот.
- Жаңы 50% көлөкөлүү толтуруу жана ала -була толтуруу (туш келди пикселдер) берилет.
Китепкана Arduino стандарттык кысылган (zip) файлы катары келет. Аны Жүктөөлөр папкаңызга жүктөп алыңыз (же каалаган жериңизге), жана Arduino IDEде Эскизди басыңыз … Китепкананы кошуу… ZIP китепканасын кошуу.
Мисалдар астында, сиз азыр E-ink_ER-EPM таба аласыз. 3 мисал эскиздер бар:
- ER_EPM154-1R-Test: Оригиналдуу сатуучу берген демонстрация
- E-ink_demo: Эскиз кийинки кадамдарда иштелип чыккан
- E-ink_rotate: Сүрөттүн айлануусун көрсөтүү.
5 -кадам: Аны өзүңүз программалаңыз
Тилекке каршы, сатуучу тарабынан берилген код менен эч кандай документ жок, же мисал коду жетиштүү түрдө комментарийленген эмес. Бул аны колдонуудан да кыйыныраак кылат жана бул Нускаманын негизги максаты - муну туура коюу.
Негизги түшүнүктөр
Ардуино жеткиликтүү оперативдүү эс тутуму менен чектелгендиктен, китепкана экрандын кичинекей бөлүмдөрүнө бир убакта сүрөт тартууга же жазууга мүмкүндүк берет, аларды жеке түрдө түзмөктүн интермалдык эстутумуна жүктөйт. Сизге керектүү бардык бөлүктөрдү жүктөп бергенден кийин гана, анын эсинде эмне бар экенин көрсөтүү үчүн айтасыз.
Экрандын бул бөлүмдөрү "Paint" объекттери деп аталат. Сизге бирөө гана керек жана экрандын ар бир бөлүмү үчүн анын бийиктигин, туурасын жана айлануусун аныктайсыз. Аяктагандан кийин, сиз аны жүктөө үчүн экранда позицияны аныктап, ак -кара же кызыл -ак болушу керектигин аныктайсыз.
Экрандын жогорку сол бурчу горизонталдуу (x) жана вертикалдуу (y) координаттарга ээ (0, 0), сол жактын асты (0, 151) жана жогорку оң жагы (151, 0).
Initialisation
Arduino IDEде E-ink_demo эскизин ачыңыз жана китепкананы кантип колдонууну сүрөттөгөндөй ээрчип алыңыз.
Эскиздин жогору жагында дайыма керектүү болгон төмөнкү саптарды көрөсүз:
#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 китепканасы, бирок башкалар электрондук сыя китепканасынын бир бөлүгүн түзөт.
Биз ТҮСКӨЗ (ак) пикселдер менен ТҮСТҮҮ (кара же кызыл) аттарды аныктайбыз. (Менин европалыктарга эскертүү: COLORдун америкалык жазылышы колдонулат.)
Epd epd; линия биз көрсөтө турган электрондук кагаз түзүлүш объектин түзөт. Бул орнотуу () жана цикл () функцияларын колдонуу үчүн эскиздин башында болушу керек.
Эгерде сизде башка өлчөмдөгү дисплей болсо, анда сиз EPD линиясын алмаштыра аласыз:
Epd epd (WIDTH, HEIGHT);
(мурда WINTH жана HEIGHTти #define билдирүүлөрүндө аныктаган.)
Ошол сыяктуу эле, сиз демейки эмес пин номерлерин көрсөтө аласыз:
Epd epd (WIDTH, HEIGHT, BUSY_PIN, RESET_PIN, DC_PIN, CS_PIN);
Setup () ичинде биз аппаратты төмөнкүдөй баштообуз керек:
Seria.bg (9600)
if (epd. Init ()! = 0) {Serial.print ("e-Paper init ишке ашпай калды"); кайтуу; }
(Чынында, epd. Init () эч качан катаны кайтарбайт, бирок келечектеги өркүндөтүү дисплейдин жоктугун же иштебей турганын аныкташы мүмкүн.)
6 -кадам: Текст жазуу
E-ink_demo ичинде көңүлүңүздү loop () га буруңуз. Биринчиден, дисплейди тазалайлы:
epd. ClearFrame ()
(Эгер сиз өзүңүздүн сүрөтүңүздү көрсөтө турган болсоңуз, бул чындыгында зарыл эмес.)
Биз бир нерсени (текстти же графиканы) чийүүдөн мурун, Paint объектисин түзүүбүз керек:
кол тамгасы жок сүрөт [1024]
Бояуу боёгу (сүрөт, 152, 18); // туурасы 8дин эсеби болушу керек
Бул кандайдыр бир мейкиндикти (1024 байт) сактап калат жана аны Paint объектисине бөлөт, экинчи сапта токтотулган. Бул убактылуу туурасы 152 пиксел жана терең 18 пиксел болуп конфигурацияланган. Биз аны кийинчерээк кайра керектүү түрдө конфигурациялай алабыз, бирок көңүл буруңуз: туурасы 8ден көп болушу керек, анткени байтта 8 пиксел сакталат жана биз байттарды бөлө албайбыз. (Бул, чынында, эгер керек болсо, аны тегеректейт, бирок дисплейиңиз кандай болору көрүнбөгөндө, бул таң калыштуу болушу мүмкүн.
Эми биз боёк объектисин ТҮСТӨСҮЗ (ак) кылып тазалашыбыз керек, андан кийин (x, y) = (22, 2) позициясында "e-ink Demo" деп жазабыз, 16 пикселдик жогорку шрифттин жардамы менен жана COLORED (каршы көрсөтүш үчүн) ТУСУЗ фон.
боёк. Тазалоо (ТУСУЗ)
paint. DrawStringAt (12, 2, "e-paper Demo", & Font16, COLORED);
Белгилей кетсек, координаттар (22, 2) саптын биринчи белгисинин жогорку сол бурчу болуп саналат жана бүт пикселге эмес, боёк объектисинин жогорку сол бурчуна салыштырмалуу 22 пиксел жана 2 пиксел төмөн.. Текст боёк объектисинин чокусунан эң аз дегенде бир пикселге жакшы көрүнөт.
Төмөнкү шрифттер бар:
Шрифт 8 - 5х8 пиксел Фонт 12 - 7х12 пиксел Фонт 16 - 11х16 пиксел Фонт 20 - 14х20 пиксел Фонт 24 - 17х24 пиксел
Биз азыр боёк объектисин ("боёк") түзмөккө ("epd") жөнөтүшүбүз керек:
epd. SetPartialWindowBlack (paint. GetImage (), 0, 3, paint. GetWidth (), paint. GetHeight ());
SetPartialWindowBlack - бул epd объектисине сүрөттү жана анын боёк объектисинин кеңдигин жана тереңдигин колдонуучу ыкма. Биз бул сүрөттү түзмөккө жазууну айтып жатабыз (x, y) = (0, 3). Биз COLORED пикселдер кара болушу керек деп жатабыз.
Бул өтө оор болгон жок, туурабы? Келгиле, дагы бир аракет кылалы.
боёк. Таза (ТҮСТҮҮ);
paint. DrawStringAt (20, 2, "(Ак түстө)", & Font12, ТУСУЗ); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());
Биз ошол эле боёк объектисин, туурасы менен бийиктигин кайра колдонобуз, бирок бул жолу аны ТҮСТҮҮ кылып тазалап, ага ТҮСҮКСҮЗ сап жазалы. Жана өзгөртүү үчүн, 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) жазабыз.
// TOP ROW:
// Rectange paint. Clear (ТУСУЗ); paint. DrawRectangle (5, 3, 35, 33, COLORED;) paint. DrawLine (5, 3, 35, 33, COLORED); paint. DrawLine (35, 3, 5, 33, ТҮСТҮҮ); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());
Китепкана, ошондой эле, толтурулган тик бурчтукту берди, бирок эй, мен көлөкөлүү болгум келди, ошондуктан мен жаңы ыкманы коштум. Биз дагы эки тик бурчтук жасайбыз, бири көлөкөлүү, бири толтурулган жана аларды биринчисинин оң жагына жайгаштырабыз, аларды кара менен кызылга алмаштырабыз.
// Shaded Rectange paint. Clear (ТУСУЗ); paint. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Толтурулган тик бурчтук боёк. Тазалоо (ТҮСҮЗ); paint. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());
8 -кадам: Чөйрөлөрдү тартуу
Чөйрөлөрдү тартуу оңой. Эки бурчтун координаттарынын ордуна, биз борбордун координаттарын жана радиусун првиде кылышыбыз керек. Биз боёк объектисин тазалайбыз, андан кийин (20, 15) тегерегин (боёк объектисине карата) жана радиустун 15. Жана көлөкөлүү жана толтурулган тегерек үчүн кайталайбыз.
//ЭКИНЧИ КАТАР
// Circle paint. Clear (ТУСУЗ); paint. DrawCircle (20, 18, 15, ТҮСТҮ); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle paint. Тазалоо (ТУСУЗ); paint. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Толтурулган тегерек боек. Тазалоо (ТҮСТҮКСҮЗ); paint. DrawFilledCircle (20, 18, 15, COLORED); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());
9 -кадам: ТҮСТҮҮ Bckground боюнча ТҮСТҮК
Биз бул жерде атактуу болуп бара жатабыз! Ошентип, биз түрмөк болуп турганда, келгиле, дагы бир катарда дагы 3 тегерек кылалы, бул жолу тексттин экинчи сабында болгондой ТҮСТҮК боёк объектисине ТҮСҮЗ.
// ҮЧҮНЧҮ катар
// Circle paint. Clear (COLORED); paint. DrawCircle (20, 18, 15, ТУСУЗ); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Shaded Circle боёгу. Таза (ТҮСТҮҮ) боек. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Толтурулган тегерек боек. Таза (ТҮСТҮҮ); 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 бул бурчтан ылдый карай, ал эми сол бурчтан у бурулат.
Сиз, балким, дисплейдин сол жагында боштук калтырганыбызды байкадыңыз. Кел анда, 270 градуска бурулган текстти жазалы, б.а. төмөндөн жогору карай окуу. Бул (0, 0) төмөнкү сол бурчка коёт.
Көңүл буруңуз, бирок сиз боёк объектисин айландырсаңыз, айлануу ага пиксель тартканда гана колдонулат. Сиз аны түзмөккө жазууга келгенде, бул дагы сол жактын бурчунун координаттары, аны SetPartialWindowко бериш керек.
Кыскача айтканда, боёк объектибизди туурасы 32 жана бийиктиги 110 деп конфигурациялайлы, жана биз ага ROTATE_270 касиетин беребиз. Мунун баарын жазуудан же ага бир нерсе тарткандан мурун кылышыбыз керек эмес.
paint. SetWidth (32);
paint. SetHeight (110); paint. SetRotate (ROTATE_270);
Биз аны ТҮСТҮҮ кылып тазалап, ТҮСҮКСҮЗ сап жазабыз, андан кийин аны жайгаштырабыз (0, 42). (Бул сол жактын жогорку бурчу, эсиңизде болсун. Андагы пикселдердин айлануусун унутуңуз.)
боёк. Таза (ТҮСТҮҮ); paint. DrawStringAt (8, 8, "Sideways!", & Font16, UNCOLORED); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());
Акыр -аягы, биз түзмөккө биз берген бардык пикселдерди көрсөтүүсүн айтыш керек. Эгерде биз аны бир азга өзгөрткүбүз келбесе жана батареянын кубатын үнөмдөөнү каалабасак, анда биз аны уктап калышыбыз мүмкүн, жана эмне үчүн Arduino -ну дагы уктап койбошубуз керек, башкасын алып, көрсөтүү убактысы келгенде ойгонуу үчүн өлчөө.
epd. DisplayFrame ();
epd. Sleep ();
Экинчи мисал эскиз 90, 180 жана 270 градус аркылуу айланууну көрсөтөт. Азырынча аны өзүңүз ээрчип алышыңыз керек.
11 -кадам: Битмаптарды тартуу
Сатуучунун демонстрациясына битмап сүрөттөрдүн экиден көрсөтүлүшү кирет. Буларды жүктөп алуучу куралды колдонуу менен түзүү оңой
www.buydisplay.com/image2lcd
Бул.exe орнотуу файлын жана лицензия ачкычын камтыган текст файлын камтыган zip файлы катары келет. Аны кеңейтүү үчүн.exe файлын орнотуу үчүн эки жолу чыкылдатыңыз.
Ооба, сиз көрсөтө ала турган нерселерге бир топ катуу чектөөлөр бар, анткени E-сыя пикселдери күйгүзүү же өчүрүү болушу мүмкүн, андыктан боз түстөрдү билдире албайт. Бирок сүрөткө тик бурчтуу боек объектисин жабууга болот. Сиз логотипти, символдорду же туруктуу текстти кооз шрифтте көрсөтүүнү каалашыңыз мүмкүн, анын үстүнө сиз тилке же тегерек диаграмма сыяктуу өзгөрмөлүү текстти же графиканы жаба аласыз, балким суюктуктун деңгээлин көрсөтөт.
Сиз өзүңүзгө белгилүү болгон программалык камсыздоо менен сүрөтүңүздү түзө аласыз, же эскизде же чиймеде сканерлей аласыз, бирок эки учурда да сиз аны 2 деңгээлге чейин азайта алышыңыз керек. Аны.gif,-j.webp
Image2Lcd иштетүү. Төмөндө сиз Катталуу өтмөгүн көрөсүз. Муну чыкылдатыңыз жана жүктөлгөн zip файлына тексттик файлга кирген каттоо кодун киргизиңиз. Бул сүрөттөгү катмарды жок кылат.
Image2Lcdде сүрөт файлыңызды ачыңыз. Сол жактагы панелде, бар экениңизди текшериңиз
- Чыгуу файл түрү: C массиви
- Скандоо режими: Горизонталдык сканерлөө
- BitsPixel: Монохром
- Макс туурасы жана бийиктиги: дисплейиңиздин өлчөмү жана
- Баштын маалыматын кошуу белгисиз болушу керек.
Иштетүү үчүн Max Width and Height'тин жанындагы баскычты басыңыз. Иштетүүнүн жыйынтыгы көрсөтүлөт. Эң жакшы натыйжага жетүү үчүн, Жарыктык жана Контраст слайдерлерин тууралашыңыз керек болот.
Жарыктык слайдеринин үстүндөгү Кайтарым түс белгилөө кутучасын чыкылдатып, негативдүү сүрөт кылып, кандайдыр бир себептерден улам керек, андан кийин Arduino эскизин камтыган папкада imagedata.cpp катары сактоо үчүн Сактоо дегенди басыңыз. Кийинки жолу эскизди Arduino IDE менен ачсаңыз, аны жаңы өтмөк катары көрүшүңүз керек.
12 -кадам: Bitmapти көрсөтүү
Ардуино эскизинин башкы файлына, үстү жагындагы #include линияларын ээрчитип, төмөнкүлөрдү киргизиңиз:
#"imagedata.h" кошуу
Жаңы өтмөк түзүңүз (өтмөктөрдүн аягындагы ылдый жебени басыңыз) жана аны imagedata.h деп атаңыз. Ага төмөнкү 2 сапты киргизиңиз:
extern const unsigned char IMAGE_BLACK ;
extern const unsigned char IMAGE_RED ;
Сиздин imagedata.cpp файлыңызда биринчи сап башталат
const unsigned char gImage_image [2888] = {
(Эгерде сиз 1.54 дюймду колдонбосоңуз, чарчы кашаанын ичиндеги номер башкача болот.) Муну менен алмаштырыңыз
const unsigned char IMAGE_BLACK PROGMEM = {
Бул кара жана ак сүрөт үчүн. Эгер сиз кызыл жана ак түстү кааласаңыз, аны өзгөртүңүз
const unsigned char IMAGE_RED PROGMEM = {
Бул саптын алдында эле кошуңуз
#кошуу
#"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 ();
Сунушталууда:
Күйөрман POV дисплейин кантип жасоо керек: 6 кадам (сүрөттөр менен)
Күйөрман POV дисплейин кантип жасоо керек: Бул долбоордо мен сизге жөнөкөй моделдерди, сөздөрдү, ал тургай, убакытты көрсөтө турган LED POV дисплейине кантип эски желдеткичти өзгөрткөнүмдү көрсөтөм. Кел, баштайлы
Arduino менен I2C Oled дисплейин кантип көзөмөлдөө керек: 9 кадам (сүрөттөр менен)
I2C Oled дисплейин Arduino менен кантип башкарса болот: Бул I2C Oled дисплейин Arduino менен кантип башкаруунун эң жөнөкөй үйрөткүчү Эгерде сизге ушул инструкция жакса, менин каналыма жазылыңыз https://www.youtube.com/ZenoModiff
Arduino жана TFT дисплейин колдонуу менен кантип реалдуу убакытты жасоо керек - Arduino Mega RTC 3.5 дюймдук TFT дисплейи менен: 4 кадам
Arduino жана TFT дисплейин колдонуу менен кантип реалдуу убакытты жасоо керек | 3.5 дюймдук TFT дисплейи бар Arduino Mega RTC: Менин Youtube каналыма баш багыңыз:- Бул постто мен 3,5 дюймдук TFT сенсордук ЖК, "Arduino Mega" менен "Реалдуу убакыт саатын" жасайм. 2560 жана DS3231 RTC модулу …. .Баштар алдында… менин YouTube каналымдагы видеону текшериңиз .. Эскертүү:- Эгерде сиз Arduin колдонуп жатсаңыз
4x3 дюймдук TFT дисплейин Arduino менен кантип интерфейске келтирүү керек: 4 кадам
4x3”TFT дисплейин Arduino менен кантип интерфейске келтирүү керек: FocusLCDs.com мага сынап көрүү үчүн 4x3” TFT ЖК (P/N: E43RG34827LW2M300-R) акысыз үлгүсүн жиберди. Бул түстүү активдүү матрица TFT (Thin Film Transistor) ЖК (суюк кристалдуу дисплей), ал аморфтуу кремний TFTди коммутатор катары колдонот. Бул модель c
I2C Lcd дисплейин Arduino Unoго кантип туташтыруу керек: 5 кадам (сүрөттөр менен)
I2C Lcd дисплейин Arduino Unoго кантип туташтыруу керек: Салам балдар, бул нускамада i2c lcd дисплейин arduino менен кантип туташтыруу керектигин жана lcd дисплейде кантип басып чыгаруу керектигин көрөсүз. Ар бир I2C автобусу эки сигналдан турат