Munka érintőképernyős arduino miatt
1. Általános információk
Tehát, vegye figyelembe részletesebben az Utouch hozzáadását, amelyet úgy terveztek, hogy az érintőképernyővel dolgozzon, amely a legtöbb TFT kijelzővel van felszerelve.
2. Az érintőképernyő használatának megkezdése
A Utouch plug-in használatához be kell töltened a programot, és végre kell hajtani az inicializálást. Természetesen az UTFT magkönyvtárat betölteni és inicializálni kell. Ne feledje, hogy az előző cikkben tárgyalt megjelenítésünknél az inicializálás a következő:
#include
UTFT myGLCD (CTE32HR, 25,26,27,28);
Most töltsd be a kiegészítõt, és hozz létre egy objektumot - egy érintõképernyõt myTouch néven. Az inicializálási parancs paramétereként a TCLK, TCS, TDIN, TDOUT és IRQ jelek csatlakoztatására szolgáló pólusszámokat továbbítják. Ezeket a paramétereket tisztázni kell a kijelző vagy a típustáblák gyártójával, amelyeken keresztül a kijelző a vezérlőhöz csatlakozik.
Ezért a kijelzőn a következő sorokat kell beilleszteni a programba:
#include
UTouch myTouch (6,5,4,3,2);
Ezután be kell állítania az üres beállítás () kijelzőt és az érintőképernyőt az eljárásban:
void beállítás () <
myGLCD.InitLCD ();
myTouch.InitTouch ();
>
Az InitTouch parancs, mint az alapkönyvtár InitLCD parancsja, meghatározza a kijelző függőleges vagy vízszintes tájolását. Az alapértelmezés a vízszintes tájolás. Minden, most már dolgozhat az érintőképernyőn. Tekintsünk egy nagyon egyszerű példát, amellyel meggyőződhetünk róla, hogy az érintőképernyő működik. A következő programot fordítjuk le és a vezérlő memóriájába töltjük:
A program indításakor a kijelző piros színű. Most érintse meg a képernyőt - és a kijelző zöldre vált.
3. Kalibrálja az érintőképernyőt
A folytatás előtt egy másik fontos eljárást kell végrehajtania - az érintőképernyő kalibrálása. A Utouch függelékhez mellékelt mintaprogramokban van egy nagyon fontos példa az UTouch_Calibration-nak.
A kalibrálás elvégzéséhez ezt a példát a menüben kell megnyitni:
"File-> Példák-> UTouch-> Arduino-> UTouch_Calibration".
FIGYELEM! A fordítás előtt ne felejtsd el helyettesíteni az UTFT sorokat myGLCD (....) és UTouch myTouch (....) A megjelenítéshez szükségesak.
A kalibrálás során a TOUCH_ORIENTATION paramétert is megfelelően kell kiválasztani. A használni kívánt megjelenítési modell paramétereinek értéke az Utouch könyvtárral ellátott UTouch_Supported_display_modules.pdf fájlban található, és a gyökérkönyvtárban található. A kijelzőn például a PORTRAIT értéket kell beállítani, annak ellenére, hogy maga a kijelző vízszintesen van irányítva.
FIGYELEM! Ezt az értéket csak az érintőképernyő kalibrálásakor kell beállítani, a jövőben a képernyő tájolásának meg kell egyeznie a kijelzőmodul tájolásával.
Indításkor a program egy magyarázó szöveget jelenít meg, és várja az érintőképernyő megérintését. Ezután a kijelzőn 8 keresztjelet mutat a kijelző élei és egy piros ablak, a középső feliratú PRESS felirat. Az oktatási fejlesztők azt mondják, hogy meg kell érintenie a kiemelt keresztet, és tartani kell az érintést, amíg a háttérvilágítás ki nem kapcsol, és a középső piros mezőben a "RELEASE" üzenet nem jelenik meg. Ezt az egyszerű műveletet minden keresztben meg kell ismételni.
By the way, a fejlesztők azt tanácsolják, hogy ezt a műveletet tollal vagy hegyes botral végezzük anélkül, hogy ujjainkat használnánk, ez javítaná a kalibrálás pontosságát. A kalibrálás végén három szám hexadecimális formában jelenik meg. Például ezek a következők:
CAL_X 0xBD95ECC8UL
CAL_Y 0x5EBC8000UL
CAL_S 0x0013F1DFUL
Ezt a három értéket az UTouch bővítmény gyökérkönyvtárában lévő UTouch_CD.h fájlba kell helyezni, a kezdetben felsorolt CAL_X, CAL_Y és CAL_S értékek helyett. Ezután a kijelző megfelelően működik.
Most nézze át részletesebben az UTouch add-on parancsát:
UTouch - az érintőképernyő alap osztályát hozza létre egy adott névvel, mivel paraméterek határozzák meg a kapcsolat módját.
A parancs így néz ki:
Utouch _NAME_ (TCLK, TCS, TDIN, TDOUT, IRQ);
ahol _NAME_ - tetszőleges objektum neve „touch screen”, amely lehet használni, mint egy előtagot bármely utalás, és TCLK, TCS, TDIN, TDOUT és IRQ - lábak számától, amelyek összekapcsolják a megfelelő jelzéseket érintőképernyőn.
A parancssorba tartozó karakterlánc a definíciós területre kerül, és meg kell előznie bármely más UTouch parancsot. A megadott objektumnevet az összes későbbi UTouch parancs előtagjaként kell használni.
InitTouch - inicializálja az érintőképernyőt és beállítja a vízszintes vagy függőleges tájolást. A paraméter azonosítja a tájolási azonosítót.
Ha PORTRAIT parancsot ad meg ebben a parancsban, vagy 0 - a függőleges tájolás akkor kerül kiválasztásra, ha a LANDSCAPE vagy az 1 - vízszintes értéket adja meg. Vegye figyelembe, hogy az érintőképernyő tájolásának meg kell egyeznie a kijelző tájolásával. Alapértelmezés szerint (paraméterek nélkül) a parancs határozza meg a vízszintes tájolást.
setPrecision - meghatározza az érintőpont koordinátáinak az érintőképernyőre való pontosságát. A pontossági azonosító paraméterként kerül átadásra.
Összesen négy pontossági pont, kódolva 1-től 4-ig:
PREC_LOW - alacsony pontosság;
PREC_MEDIUM - átlagos pontosság;
PREC_HI - nagy pontosság;
PREC_EXTREME - nagyon nagy pontosságú.
Természetesen a pontosság szintje fordítottan arányos a koordináták meghatározásakor töltött idővel. A legtöbb feladat optimális szintje a PREC_MEDIUM szint. A fejlesztők nem javasolják a gyors és gyors reagálást igénylő műveletek magas és nagyon magas pontosságát.
A pontossági szintek közötti különbséget az UTouch_QuickDraw példa mutatja be, amelyet az UTouch könyvtár szolgáltat. Ez a program lehetővé teszi, hogy az érintőképernyő segítségével rajzoljon a kijelzőn:
Próbálja össze ezt a példát a setPrecision paraméter különböző értékeivel, és azonnal meg fogja érezni a különbséget.
dataAvailable - Olyan függvény, amely a Boole-értéket igazolja, ha az érintőképernyő érintése a hívás időpontjában van rögzítve. Az idő múlásával - hamis.
Ez a funkció használható mind az érintés pillanatának, mind annak időtartamának meghatározására. Az első példánkban, amelyet a 2. szakaszban említettünk, az építkezés:
ha (myTouch.dataAvailable ()) <
myGLCD.fillScr (.255.0);
> egyébként
tartalmazott egy hívást a dataAvailable függvényre, amely megváltoztatta a kijelző színét, amelyet az érintés időtartama alatt megtartottak. Tekintsünk még egy példát - az érintési időt mérve milliszekundumban:
Az érintőképernyő érintésével a program az időzített változóban menti az élesítés funkció aktuális értékét. Továbbá, amíg az érintés megmarad, a program folyamatosan frissíti a current millis értéket az timeNew változóban. Amint az érintés megállt - a kijelzőn megjelenik a két változó közötti különbség, amely az ezredmásodpercben lévő érintési időnek felel meg.
Tehát most már képesek vagyunk együttműködni az eseményen "megérintve az érintőképernyőt", meghatározhatjuk az érintés pillanatát, annak időtartamát és megjelenési idejét. Még mindig nagyon kevés - a kapcsolódási pont koordinátáit kapja. Ehhez a következő parancsok használatosak:
read - elindítja az érintkezési pont koordinátáinak meghatározására szolgáló eljárást.
Ez a parancs nem ad át semmilyen paramétert, és nem ad vissza értéket. Ezt akkor kell futtatni, ha az adatbeállítás funkció igazra van állítva. A kapott "nyers" koordinátákat a TP_X és TP_Y belső változók tárolják. Ezeket az adatokat azonban nem adják meg a kijelző méretének és felbontásának, így speciális funkciókat kapnak a getX és a getY, hogy megszerzik a pontosság koordinátáit.
getX - az érintőpont X-koordináta értékét képpontban adja vissza a kijelző bal széléhez képest.
getY - az érintőpont Y-koordináta értékét képpontban adja vissza a kijelző felső széléhez képest.
Az érintőképernyő helyes kalibrálása és megfelelő pontossága miatt az érintőpont koordinátái egybeesnek egy adott képpont koordinátáival. E két függvény visszatérési típusa: int.
Az érintőképernyő érintésével az alábbi példa az érintőpont koordinátáit mutatja képpontokban és "nyers" formátumban:
Most, hogy például a képernyőgomb megnyomásával feldolgozható, elegendő annak biztosítása, hogy az érintőpont fogadott koordinátái a kijelzőn lévő gomb által elfoglalt területen belül legyenek. Itt egy másik példa:
A program téglalap gombot húz a kijelzőn. Amikor megnyomja az érintőképernyőt a gomb területén, a kijelzőn a "PRESSED" felirat jelenik meg, amikor a téglalapon kívül megérinti a felirat.
Egy másik érdekes példa. Ez a program egy téglalap alakú "ablakot" rajzol meg a kijelzőn, és lehetővé teszi, hogy a jobb alsó sarokban húzza át. Természetesen ez nem teljes értékű DragDrop, de nagyon hasonló:
4. Következtetés
Tehát most már tudjuk használni az érintőképernyőt, meghatározhatjuk az érintési pillanatot, meghatározhatjuk az érintési pont koordinátáit, és a kijelzőn megjelenő egyszerű kezelőszervekkel dolgozhatunk. A következő cikkben azt tervezzük, hogy még egy kiegészítést az UTFT könyvtár - UTFT_Buttons, amely lehetővé teszi, hogy megszervezze a munkát szöveges és grafikus képernyőgombokkal.