Tartalomjegyzék:

E-tinta kijelző hozzáadása a projekthez: 12 lépés (képekkel)
E-tinta kijelző hozzáadása a projekthez: 12 lépés (képekkel)

Videó: E-tinta kijelző hozzáadása a projekthez: 12 lépés (képekkel)

Videó: E-tinta kijelző hozzáadása a projekthez: 12 lépés (képekkel)
Videó: High Density 2022 2024, December
Anonim
E-tinta kijelző hozzáadása a projekthez
E-tinta kijelző hozzáadása a projekthez
E-tinta kijelző hozzáadása a projekthez
E-tinta kijelző hozzáadása a projekthez

Sok projekt magában foglal bizonyos típusú adatok, például környezeti adatok megfigyelését, gyakran Arduino -t használva ellenőrzésre. Az én esetemben a vízlágyító sószintjét akartam figyelni. Érdemes hozzáférni az adatokhoz az otthoni hálózaton keresztül, de ugyanúgy érdemes megjeleníteni azokat a helyeket is, ahol éppen mérik. Vagy rendelkezhet egy mindig bekapcsolt, távolról csatlakoztatott kijelzővel egy kényelmesebb helyen.

Jelenleg többféle kijelző használható, mindegyik meglehetősen olcsó, de különböző előnyökkel és hátrányokkal rendelkezik:

  • Az alfanumerikus LCD kijelző a legolcsóbb, de a legkorlátozottabb is.
  • Az OLED kijelző képes megjeleníteni a grafikákat, de az olcsók nagyon kicsik. A második képen 128x64 pixeles OLED kijelző látható az E-Ink mellett.
  • Az E-Ink (vagy E-Paper) kijelző valamivel nagyobb, és így könnyebben olvasható, és előnye, hogy a kijelző kikapcsolt állapotban is megmarad! De néhány másodpercbe telik, amíg átrajzolja a kijelzőt.

Az E-Ink kijelző ideálisnak tűnt az alkalmazásomhoz, mivel be tudtam programozni az Arduino-t, hogy csak néhány óránként ébredjen fel, olvasson le és jelenítse meg, mielőtt visszaalszik. Ekkor nincs következménye, hogy néhány másodpercbe telik a kijelző átrajzolása.

Egy ilyen alkalmazásban az átlagos áramfelvételt olyan alacsonyra lehet beállítani, hogy a 9 V -os lítium füstérzékelő akkumulátor 10 évig tartson! Sőt, ezeknek a kijelzőknek egy része három színt jelenít meg: fehér, fekete és piros (vagy sárga). Ideális, ha egy figyelmeztetést vagy figyelmeztetést pirossal szeretne megjeleníteni.

Kellékek

A legolcsóbb E-Ink kijelzőket, amelyeket találtam, a BuyDisplay árusítja, szintén számos eBay-eladótól kapható. Sajnos a dokumentáció sok kívánnivalót hagy maga után, ezért magamra vállaltam egy oktatóanyag írását - olvass tovább!

Igényeitől és költségvetésétől függően többféle méret közül választhat:

  • 1,54 hüvelyk (152x152 = 23, 104 képpont)
  • 2,13 hüvelyk (212x104 = 22, 048 képpont)
  • 2,6 hüvelyk (296x152 = 44, 992 képpont)
  • 2,7 hüvelyk (176x264 = 46, 464 képpont)
  • 2,9 hüvelyk (296x128 = 37, 888 képpont)
  • 4,2 hüvelyk (400x300 = 120 000 képpont)
  • 5,83 hüvelyk (640x480 = 307, 200 képpont)
  • 7,5 hüvelyk (880x528 = 464, 640 képpont)

(A tartomány bővült a legutóbbi megjelenésem óta, így talán tovább bővült, amikor elolvasta ezt.)

2 színű (fekete/fehér) vagy 3 színű (fekete/piros/fehér vagy fekete/sárga/fehér) színben kaphatók. Ez az útmutató azt feltételezi, hogy a pirosat használja, de ha a sárga verziót választotta, egyszerűen olvassa el a "sárga" szót a "piros" helyett.

Válasszon egy SPI (4 vezetékes) verziót. 1,54 -es modellt használtam, ami nagyon szép méret.

1. lépés: A kijelző csatlakoztatása

A kijelző csatlakoztatása
A kijelző csatlakoztatása

Ezek a kijelzők 2x4 tűs fejléccel érkeznek. A csapok számai egyértelműen fel vannak tüntetve, a 7., 5., 3. és 1. láb (balról jobbra) a felső sor mentén, a 8, 6, 4, 2 pedig az alsó sorban.

A kijelzőhöz 8-utas patch kábel járhat, amely megkönnyíti a csatlakoztatást. (A patch kábelem 2 piros és 2 barna vezetékkel rendelkezik. Nem cserélhetők!

Az alábbi táblázat a legtöbb Arduino típusra (beleértve az Uno, Pro Mini, Pro Micro és Nano) vonatkozó csatlakozásokat tartalmazza.

E-tinta modul Arduino
Név Név
1 VDD Vcc 3.3/5V
2 VSS Gnd Gnd
3 Soros adatok 11 MOSI
4 Soros óra 13 SCK
5 /Chip Select 10
6 Data/Instr 9
7 Visszaállítás 8
8 A készülék foglalt 7

2. lépés: Töltse le a mellékelt szoftvert

Használhatja a mellékelt szoftvert ebben a lépésben leírtak szerint, vagy használhatja a továbbfejlesztett könyvtáramat a következő lépésben.

Keresse meg készülékét a BuyDisplay.com webhelyen. Az oldal alján talál egy letölthető ZIP fájlt "Arduino Library and Example for 4-wire SPI". Erre kattintva letöltheti és megnyithatja a Windows Intézőben.

A Windows Intéző ezt úgy jeleníti meg, hogy egyetlen felső szintű mappát tartalmaz "Libraries-Examples_ER-EPM0154-1R". (Ha a tied nem az 1,54 hüvelykes modell, a név kissé eltérhet.)

Másolja ezt a legfelső szintű mappát az Arduino könyvtárak mappájába. Kattintson a jobb gombbal a mappa átnevezéséhez, és törölje a "Libraries-Examples_" nevet a névből.

(Az Arduino könyvtárak mappájának megkereséséhez az Arduino IDE -ben kattintson a Fájl … Beállítások elemre, és jegyezze fel a Vázlatfüzet helyét. Navigáljon erre, és a vázlatmappák között megtalálja az Arduino "könyvtárak" mappát.)

Nyissa meg ezt a mappát, és nyissa meg a "Könyvtárak" mappát. Húzza át a mappában található összes fájlt a szülőmappába egy szinttel feljebb ("ER-EPM0154-1R"). Törölje a (most üres) "Könyvtárak" mappát.

Most telepítette a fájlokat és egy vázlatot Arduino könyvtárként. Ne feledje, hogy ha a kijelzője nem az 1,54 hüvelykes, az egyetlen különbség két sorban jelenik meg az ER-ERM*-1.

Az Arduino IDE-ben kattintson a Fájl… Vizsgák elemre, és görgessen lefelé az ER-EPM0154-1R-hez a demóvázlathoz, amelyet össze kell állítania és futtatnia kell, amint csatlakoztatta a kijelzőt az Arduino-hoz.

3. lépés: A demó futtatása

A Demo futtatása
A Demo futtatása
A Demo futtatása
A Demo futtatása

Az Arduino IDE-ben kattintson a Fájl… Példák… ER-EPM0154-1R elemre.

Csatlakoztassa Arduino -ját a számítógéphez USB -kábellel, vagy a szokásos módon.

Az Eszközök alatt állítsa be a táblát, a processzort és a portot.

A Vázlat alatt kattintson a Feltöltés gombra.

A feltöltés befejezése után kis késés következik be, és tíz alkalommal a késleltetés többször is felvillan, amikor az első képet festi. Nézze meg, amíg végigmegy a demón.

4. lépés: A továbbfejlesztett könyvtár használata

Letöltheti a kibővített könyvtáramat a github webhelyről:

N. B. Nagyon bízom abban, hogy könyvtáram bármilyen méretű kompatibilis kijelzővel működik, de valójában csak az 1,54 -os modellel teszteltem. Ha másikat használ, kérjük, tudassa velem a végén található megjegyzésekben ennek az utasításnak a megerősítésére, hogy működik, de ha nem, akkor mindent megteszek, hogy elinduljon.

Töltse le és mentse el a zip fájlt. Az Arduino IDE -ben kattintson a Vázlat… Könyvtár bevonása…. ZIP könyvtár hozzáadása elemre, és válassza ki a mentett zip fájlt.

A könyvtárom számos apróbb fejlesztést tartalmaz:

  • Lehetővé teszi különböző Arduino pin számok használatát (kivéve a MOSI -t).
  • Ugyanez a könyvtár használható bármilyen méretű eszközhöz.
  • Új 50% -os árnyékolt kitöltés és foltos kitöltés (véletlenszerű pixelek) állnak rendelkezésre.

A könyvtár szabványos Arduino tömörített (zip) fájlként érkezik. Töltse le a Letöltések mappába (vagy oda, ahol szeretné), és az Arduino IDE -ben kattintson a Vázlat… Könyvtár hozzáadása… ZIP -könyvtár hozzáadása lehetőségre.

A Példák részben most az E-ink_ER-EPM elemet találja. 3 példa a vázlatokra:

  • ER_EPM154-1R-Test: Az eredeti gyártó által biztosított bemutató
  • E-ink_demo: A vázlat a következő lépésekben alakult ki
  • E-ink_rotate: A képforgatás bemutatója.

5. lépés: Programozza magát

Sajnos nincs dokumentáció a gyártó által megadott kóddal, és a példakód sem kommentált megfelelően. Ez megnehezíti a használatát, mint kellene, és ennek az utasításnak a fő célja ennek helyrehozatala.

Alapfogalmak

Mivel az Arduino korlátozott mennyiségű RAM -ot tartalmaz, a könyvtár lehetővé teszi, hogy egyszerre rajzoljon vagy írjon a képernyő kis részeire, és egyenként töltse fel azokat az eszköz belső memóriájába. Csak miután feltöltötte az összes szükséges részt, mondja meg neki, hogy jelenítse meg, mi van a memóriában.

A képernyő ezen részeit "Paint" objektumoknak nevezik. Csak egy kell, és a képernyő minden részéhez meg kell határoznia annak magasságát, szélességét és elforgatását. Ha elkészült, akkor töltse fel, és határozza meg a betöltés helyét a képernyőn, valamint azt, hogy fekete -fehér vagy piros -fehér legyen.

A képernyő bal felső sarkában vízszintes (x) és függőleges (y) koordináták vannak (0, 0), a bal alsó (0, 151) és a jobb felső (151, 0).

Inicializálás

Nyissa meg az E-ink_demo vázlatot az Arduino IDE-ben, és kövesse azt, ahogy leírom a könyvtár használatát.

A vázlat tetején a következő sorok láthatók, amelyekre mindig szükség van:

#include <SPI.h #include "ER-ERM0154-1.h" #include "imagedata.h" #include "epdpaint.h" #define SZÍNES 0 #define SZINTELEN 1 Epd epd;

Az #include sorok behúzzák a szükséges könyvtárakat. Az SPI.h egy szabványos Arduino könyvtár, de a többi az e-ink könyvtár része.

A SZINTELEN (fehér) és a SZÍNES (fekete vagy piros) képpontok neveit határozzuk meg. (Megjegyzés európai társaimnak: a COLOR amerikai helyesírását használják.)

Az Epd epd; sor hozza létre az elektronikus papír eszköz objektumot, amelyen megjelenítjük. Ennek itt kell lennie a vázlat elején, hogy elérhető legyen a setup () és a loop () függvények számára.

Ha más méretű kijelzője van, akkor az EPD sort lecserélheti:

Epd epd (SZÉLESSÉG, MAGASSÁG);

(a WIDTH és HEIGHT értékeket korábban definiálva #define utasításokban.)

Hasonló módon megadhatja a nem alapértelmezett PIN-számokat a következőkkel:

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

A setup () keretein belül a következőképpen kell inicializálnunk az eszközt:

Serial.begin (9600)

if (epd. Init ()! = 0) {Serial.print ("az e-Paper init nem sikerült"); Visszatérés; }

(Valójában az epd. Init () soha nem ad vissza hibát, de egy későbbi fejlesztés észlelheti a kijelző hiányát vagy a nem működő megjelenítést.)

6. lépés: Szöveg írása

Szöveg írása
Szöveg írása

Az E-ink_demo-ban fordítsa figyelmét a loop-ra (). Először tisztítsuk meg a kijelzőt:

epd. ClearFrame ()

(Ez valójában nem szükséges, ha saját képét szeretné megjeleníteni.)

Mielőtt bármit (akár szöveget, akár grafikát) rajzolhatnánk, létre kell hoznunk egy Paint objektumot, amelyből rajzolhatunk:

aláírás nélküli karakterkép [1024]

Festékfesték (kép, 152, 18); // a szélességnek a 8 többszörösének kell lennie

Ez helyet foglal (1024 bájt), és kiosztja a Paint objektumnak, amelyet a második sor leállít. Ez ideiglenesen 152 képpont széles és 18 képpont mély. Később újrakonfigurálhatjuk, hogy szükség esetén újra felhasználhassuk, de vegye figyelembe: a szélességnek 8 -as muultiple -nek kell lennie, mivel bájtonként 8 képpont tárolódik, és nem oszthatjuk fel a bájtokat. (Valójában, ha szükséges, kerekíti fel, de akkor zavarba ejtő lehet, ha a kijelző nem úgy néz ki, ahogy kellene.

Most meg kell tisztítanunk a festéktárgyat SZINTELEN (fehér) értékre, majd az (x, y) = (22, 2) pozícióban 16 pixel magas betűtípussal írjuk be az "e-ink Demo" -t, és SZÍNES (a SZINTELEN háttér.

festék. Tiszta (SZINTELEN)

paint. DrawStringAt (12, 2, "e-papír bemutató", & betűtípus16, SZÍNES);

Ne feledje, hogy a koordináták (22, 2) a karakterlánc első karakterének bal felső sarka, és 22 képpontos és 2 képpontos lefelé vannak a festési objektum bal felső sarkához képest, nem pedig a teljes kijelző. A szöveg a festőobjektum tetejétől legalább egy képponttal lefelé néz ki a legjobban.

A következő betűtípusok állnak rendelkezésre:

Betűtípus 8 - 5x8 képpont Betűtípus 12 - 7x12 képpont Betűtípus16 - 11x16 képpont Betűtípus20 - 14x20 képpont Betűtípus24 - 17x24 képpont

Most már csak el kell küldenünk a festéktárgyat ("festék") az eszközre ("epd"):

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

A SetPartialWindowBlack egy módszer, amelyet az epd objektumra alkalmazunk, a kép és a festési objektum szélességi és mélységi tulajdonságainak felhasználásával. Azt mondjuk, hogy írja be ezt a képet az eszközre (x, y) = (0, 3). És azt mondjuk, hogy a SZÍNES képpontok feketék legyenek.

Ez nem volt túl nehéz, ugye? Próbáljunk ki egy másikat.

festék. Tiszta (SZÍNES);

paint. DrawStringAt (20, 2, "(fehér a színen)", & betűtípus12, SZINTELEN); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, paint. GetWidth (), paint. GetHeight ());

Ugyanazt a festéktárgyat használjuk, ugyanolyan szélességben és magasságban, de ezúttal töröljük a SZÍNES színűre, és írjunk hozzá SZINTELEN karakterláncot. Változásképpen a SZÍNES képpontokat vörösre színezzük, és a (0, 24) számra írjuk az eszközre, közvetlenül az első alatt.

A két festékobjektumot az eszköz memóriájába írtuk, de még nem mondtuk meg, hogy jelenítse meg őket. Ezt a következő állítással tesszük:

epd. DisplayFrame ();

(Az E-ink_demo vázlatban valójában ezt a végére hagyjuk, miután még néhány dolgot rajzoltunk, de ide beillesztheti, ha úgy tetszik, mybe, majd késleltetés (10000); hogy időt hagyjon a kézimunka megcsodálására.

7. lépés: Vonalak és téglalapok rajzolása

Vonalak és téglalapok rajzolása
Vonalak és téglalapok rajzolása

Lássuk, hogyan kell vonalakat és téglalapokat rajzolni. Ugyanazt a festékobjektumot fogjuk használni, de újra kell konfigurálni 40 képpont széles és 36 képpont magas. Színezetlenre töröljük.

festék. SetWidth (40);

festék. SetHeight (36); festék. Tiszta (SZINTELEN);

Rajzolunk egy (SZÍNES) téglalapot a bal felső sarokkal (5, 3) és a jobb alsó sarokkal (35, 33), a szokásos módon. Az átlóit az (5, 3) és (35, 33), valamint (35, 3) és (5, 33) közötti vonalakként is megrajzoljuk. Végül a teljes festéktárgyat (piros) a képernyőre írjuk (32, 42).

//FELSŐ SOR:

// Rectange paint. Clear (SZINTELEN); paint. DrawRectangle (5, 3, 35, 33, COLORED;) paint. DrawLine (5, 3, 35, 33, COLORED); paint. DrawLine (35, 3, 5, 33, SZÍNES); epd. SetPartialWindowRed (paint. GetImage (), 32, 42, paint. GetWidth (), paint. GetHeight ());

A könyvtár, ahogy jött, szintén töltött téglalapot biztosított, de hé, árnyékoltat akartam, ezért új módszert adtam hozzá. Csinálunk még két téglalapot, az egyiket árnyékolva, a másikat pedig kitöltve, és az elsőtől jobbra tesszük, felváltva feketével és pirossal.

// Árnyékos Rectange festék. Tiszta (SZINTELEN); paint. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (paint. GetImage (), 72, 42, paint. GetWidth (), paint. GetHeight ()); // Töltött téglalap festék. Tiszta (SZINTELEN); paint. DrawFilledRectangle (5, 3, 35, 33, COLORED); epd. SetPartialWindowRed (paint. GetImage (), 112, 42, paint. GetWidth (), paint. GetHeight ());

8. lépés: Körök rajzolása

Körök rajzolása
Körök rajzolása

A köröket ugyanolyan könnyű rajzolni. Két sarok koordinátái helyett meg kell adnunk a középpont koordinátáit és a sugarát. Töröljük a festéktárgyat, majd tegyünk egy kört (20, 15) (a festéktárgyhoz képest) és a 15 sugarú körbe. És ismételjük meg egy árnyékolt és kitöltött körrel.

//MÁSODIK SOR

// Kör festék. Tiszta (SZINTELEN); festeni. DrawCircle (20, 18, 15, SZÍNES); epd. SetPartialWindowBlack (paint. GetImage (), 32, 78, paint. GetWidth (), paint. GetHeight ()); // Árnyékolt kör festék. Tiszta (SZINTELEN); festék. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (paint. GetImage (), 72, 78, paint. GetWidth (), paint. GetHeight ()); // Töltött körfesték. Tiszta (SZINTELEN); festék. DrawFilledCircle (20, 18, 15, SZÍNES); epd. SetPartialWindowBlack (paint. GetImage (), 112, 78, paint. GetWidth (), paint. GetHeight ());

9. lépés: SZINTELEN SZÍNES Háttérben

SZINTELEN SZÍNES Háttérben
SZINTELEN SZÍNES Háttérben

Híresen haladunk itt! Tehát amíg tekercsen vagyunk, csináljunk még 3 kört egy sor alatt, ezúttal SZINTELENEN SZÍNES festékobjektumon, mint a második szövegsorral.

// HARMADIK SOR

// Kör festék. Tiszta (SZÍNES); festék. DrawCircle (20, 18, 15, SZINTELEN); epd. SetPartialWindowRed (paint. GetImage (), 32, 114, paint. GetWidth (), paint. GetHeight ()); // Árnyékolt kör festék. Tiszta (SZÍNES) festék. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (paint. GetImage (), 72, 114, paint. GetWidth (), paint. GetHeight ()); // Töltött körfesték. Tiszta (SZÍNES); paint. DrawFilledCircle (20, 18, 15, SZINTELEN); epd. SetPartialWindowRed (paint. GetImage (), 112, 114, paint. GetWidth (), paint. GetHeight ());

Az árnyékos kitöltés mellett van egy foltos kitöltés is, amely véletlenszerű képpontokat színez. Tehát a fenti árnyékos kör helyett rakhattunk volna

festék. DrawSpeckledCircle (20, 18, 15, 25);

A végső paraméter (25) a sűrűség, azaz a színezendő képpontok százalékos aránya. Ha elhagyja, 50% -ot feltételez.

Van egy DrawSpeckledRectangle is, opcionális extra paraméterrel, amely megadja a sűrűséget.

10. lépés: Forgatás

Forgás
Forgás
Forgás
Forgás

Bármit rajzolhatunk, 90, 180 vagy 270 fokban elforgathatjuk. (A forgásokat az óramutató járásával megegyező irányban számoljuk.)

Alkalmazhatunk egy ROTATE tulajdonságot egy festéktárgyra, de fontos megértenünk, hogy nem a festéktárgyat forgatjuk el, hanem mindent, amit hozzá írunk. Tehát ha függőleges szöveget szeretne, akkor a festéktárgyat vízszintes helyett függőleges irányban hosszúnak és vékonynak kell konfigurálnia.

Tehát ha azt szeretné, hogy a szöveget az óramutató járásával megegyező irányban 90 fokkal elforgassa úgy, hogy felülről lefelé olvassa (balról jobbra helyett), akkor a festett objektum jobb felső sarka (0, 0) lesz, bármit is írjon vagy rajzoljon, x -et abból a sarokból lefelé, y -t pedig abból a sarokból balra.

Valószínűleg észrevette, hogy hagytunk egy helyet a kijelző bal oldalán. Írjunk tehát néhány szöveget oda 270 fokkal elforgatva, azaz alulról felfelé olvasva. Ez (0, 0) lesz a bal alsó sarokban.

Ne feledje, hogy ha elforgat egy festékobjektumot, a forgatás csak akkor érvényes, amikor pixeleket rajzol rá. Amikor az eszközre írja, akkor is a bal felső sarok koordinátái vannak, amelyeket meg kell adnia a SetPartialWindow -nak.

Összefoglalva, konfiguráljuk a festékobjektumunkat úgy, hogy szélessége 32 és magassága 110 legyen, és megadunk egy ROTATE_270 tulajdonságot. Nem mintha mindezt meg kellene tennünk, mielőtt bármit is írunk vagy rajzolunk hozzá.

festék. SetWidth (32);

festék. SetHeight (110); paint. SetRotate (ROTATE_270);

Színesre töröljük, és egy SZINTELEN karakterláncot írunk hozzá, majd helyezzük a (0, 42) helyre. (Ez a bal felső sarok, ne feledje. Felejtse el a benne lévő pixelek bármilyen elforgatását.)

festék. Tiszta (SZÍNES); paint. DrawStringAt (8, 8, "Oldalt!", & Font16, SZINTELEN); epd. SetPartialWindowBlack (paint. GetImage (), 0, 42, paint. GetWidth (), paint. GetHeight ());

Végül meg kell mondanunk az eszköznek, hogy jelenítse meg az összes pixelt, amelyet adtunk neki. És ha egy ideig nem akarjuk megváltoztatni, és meg akarjuk takarékoskodni az akkumulátor energiájával, akkor elaltathatjuk, és miért ne aludhatnánk el az Arduino -t is, hogy felébresszük, amikor el kell vennünk és megjelenítenünk egy másikat mérés.

epd. DisplayFrame ();

epd. Sleep ();

Egy másik példa vázlat 90, 180 és 270 fokos forgatást mutat. Mostanra képesnek kell lennie arra, hogy egyedül kövesse.

11. lépés: Bitképek rajzolása

Bitképek rajzolása
Bitképek rajzolása

A gyártó bemutatója egy pár bitkép megjelenítését tartalmazza. Ezek könnyen létrehozhatók egy olyan eszköz segítségével, amely letölthető

www.buydisplay.com/image2lcd

Zip fájlként érkezik.exe telepítőfájlt és licenckulcsot tartalmazó szöveges fájlként. Bontsa ki, majd kattintson duplán az.exe fájlra a telepítéshez.

Nyilvánvaló, hogy meglehetősen szigorú korlátozások vonatkoznak a megjeleníthető tartalmakra, mivel az E-ink képpontok csak be- vagy kikapcsolhatók, és így nem képviselhetik a szürke színét. Lehetséges azonban egy téglalap alakú festéktárgy átfedése a képen. Érdemes logót, szimbólumokat vagy rögzített szöveget megjeleníteni díszes betűtípussal, amelyre rá lehet helyezni változó szöveget vagy grafikát, például oszlopot vagy kördiagramot, esetleg valami folyadékszintet jelezve.

Létrehozhatja képét bármilyen ismert rajzszoftverrel, vagy beolvashat egy vázlatot vagy rajzot, de mindkét esetben csak 2 szintre kell csökkentenie. Mentse el.gif,-j.webp

Indítsa el az Image2Lcd -t. Az alsó részen megjelenik a Regisztráció lap. Kattintson erre, és írja be a regisztrációs kódot, amely egy szöveges fájlban érkezett a letöltött zip fájlba. Ez eltávolítja a fedvényt a képen.

Az Image2Lcd alkalmazásban nyissa meg a képfájlt. A bal oldali ablaktáblán ellenőrizze, hogy rendelkezik -e

  • Kimeneti fájltípus: C tömb
  • Szkennelési mód: Vízszintes szkennelés
  • BitsPixel: Fekete -fehér
  • Maximális szélesség és magasság: a kijelző mérete és
  • A fejjel kapcsolatos adatokat be kell jelölni.

Kattintson a Max szélesség és magasság melletti gombra a feldolgozáshoz. A feldolgozás eredménye megjelenik. A legjobb eredmények eléréséhez szükség lehet a Fényerő és a Kontraszt csúszkák beállítására.

Kattintson a Fordított szín jelölőnégyzetre a Fényerő csúszka felett, így negatív kép lesz, ami valamilyen okból szükséges, majd kattintson a Mentés gombra az imagerdata.cpp néven történő mentéshez az Arduino -vázlatot tartalmazó mappában. Amikor legközelebb megnyitja a vázlatot az Arduino IDE -vel, új lapként kell látnia.

12. lépés: A bitkép megjelenítése

A Bitmap megjelenítése
A Bitmap megjelenítése

Az Arduino -vázlat főfájljába, közvetlenül a tetején lévő #include sorok után, illessze be:

#include "imagedata.h"

Hozzon létre egy új lapot (kattintson a lefelé mutató nyílra a fülek sorának végén), és hívja azt imagedata.h. Illessze be a következő 2 sort:

extern const unsigned char IMAGE_BLACK ;

extern const unsigned char IMAGE_RED ;

Az imagedata.cpp fájlban az első sor ezzel kezdődik

const unsigned char gImage_image [2888] = {

(A szögletes zárójelben lévő szám eltérő lesz, ha nem az 1,54 hüvelykes kijelzőt használja.) Cserélje ki erre

const unsigned char IMAGE_BLACK PROGMEM = {

Ez egy fekete -fehér képre vonatkozik. Ha piros -fehéret szeretne, változtassa meg erre

const unsigned char IMAGE_RED PROGMEM = {

Közvetlenül e sor előtt adja hozzá

#befoglalni

#include "imagedata.h"

Most már készen áll a kép megjelenítésére. A hurokban () a fő fájlban adja hozzá

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Vagy ha vörös kép volt, amit létrehozott, akkor a második sornak kell lennie

epd. DisplayFrame (NULL, IMAGE_RED);

Valójában kombinált piros és fekete képet hozhat létre, ha a vörös és a fekete részeket külön konvertálja az Image2Lcd segítségével, és mindkettőt megjeleníti

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Mindazonáltal minden olyan képpont, amely fekete -fehér képen feketének, a piros -fehérben pedig vörösnek van megadva, piros színű lesz.

Végül átfedheti képét a korábban ismertetett szöveges vagy grafikus funkciókkal. Hozzá akartam adni a Twitter fogantyúmat, ezért hozzáadtam

Festékfesték (kép, 20, 152); // a szélességnek a 8 többszörösének kell lennie

paint. SetRotate (ROTATE_270); festék. Tiszta (SZINTELEN); paint. DrawStringAt (20, 2, "@pleriche", & Font16, SZÍNES); epd. SetPartialWindowRed (paint. GetImage (), 0, 0, paint. GetWidth (), paint. GetHeight ()); epd. SetPartialWindowRed (paint. GetImage (), 0, 0, paint. GetWidth (), paint. GetHeight ()); epd. DisplayFrame ();

Ajánlott: