- Potrebni materiali:
- Spoznavanje modula LCD zaslona TFT:
- Umerjanje TFT LCD zaslona za zaslon na dotik:
- Povezave TFT LCD z Arduinom:
- Programiranje vašega Arduina za TFT LCD:
- Delo:
Arduino je vedno pomagal z lahkoto graditi projekte in jih videti privlačnejše. Programiranje LCD zaslona z možnostjo zaslona na dotik se morda zdi zapleteno opravilo, toda knjižnice in ščiti Arduino so to res olajšale. V tem projektu bomo uporabili 2,4-palčni zaslon Arduino TFT LCD za izdelavo lastnega kalkulatorja zaslona na dotik Arduino, ki bi lahko izvajal vse osnovne izračune, kot so seštevanje, odštevanje, deljenje in množenje.
Potrebni materiali:
- Arduino Uno
- 2,4-palčni zaslon TFT LCD zaslon
- 9V baterija.
Spoznavanje modula LCD zaslona TFT:
Preden se dejansko potopimo v projekt, je pomembno vedeti, kako deluje ta 2,4-palčni TFT LCD modul in katere vrste so v njem. Oglejmo si izrezke tega 2,4-palčnega TFT LCD-modula.
Kot lahko vidite, obstaja 28 zatičev, ki se bodo popolnoma prilegali kateri koli plošči Arduino Uno / Arduino Mega. Majhna klasifikacija teh zatičev je podana v spodnji tabeli.
Kot lahko vidite zatiči lahko razdelimo v štiri glavne razvrstitve, kot so LCD ukazov Pins, LCD Data Pins, SD Card Pins and Power Pins, Mi ni treba vedeti veliko o podrobnem delovanju teh zatiči, saj bodo poskrbel ga naša knjižnica Arduino.
Na dnu zgoraj prikazanega modula lahko najdete tudi režo za kartico SD, ki jo lahko uporabite za nalaganje SD kartice z bmp slikovnimi datotekami, te slike pa lahko s programom Arduino prikažete na našem TFT LCD zaslonu.
Druga pomembna stvar, ki jo je treba omeniti, je vaš vmesnik IC. Na trgu je na voljo veliko vrst modulov TFT, od prvotnega modula TFT LCD Adafruit do poceni kitajskih klonov. Program, ki popolnoma ustreza vašemu ščitu Adafruit, morda ne bo deloval enako kot na kitajskih prebojnih ploščah. Zato je zelo pomembno vedeti, katere vrste LCD zaslonov imate v roki. To podrobnost je treba dobiti pri prodajalcu. Če imate poceni klon, kot je moj, potem najverjetneje uporablja gonilnik IC ili9341. Temu povezovanju LCD-jev TFT lahko sledite z vadnico Arduino, da preizkusite nekaj osnovnih primerov programov in se udobno opremete z zaslonom LCD. Tukaj si oglejte tudi druge naše TFT LCD projekte z Arduinom:
- Kako uporabljati LED trak NeoPixel z Arduino in TFT LCD
- Zaklepanje digitalnih kod s pametnim telefonom z uporabo Arduina
Umerjanje TFT LCD zaslona za zaslon na dotik:
Če nameravate uporabiti funkcijo zaslona na dotik vašega TFT LCD modula, ga morate umeriti, da bo pravilno deloval. Zaslon LCD brez kalibracije lahko deluje malo verjetno, na primer, če se dotaknete na enem mestu, TFT pa se lahko dotakne na drugem mestu. Ti rezultati kalibracij ne bodo podobni za vse plošče, zato lahko to storite sami.
Najboljši način za kalibracijo je uporaba primera za kalibracijo (priložen je knjižnici) ali serijski monitor za zaznavanje vaše napake. Vendar za ta projekt, ker je velikost gumbov velika kalibracija, ne bi smel predstavljati velike težave, v spodnjem razdelku za programiranje pa vam bom razložil tudi, kako lahko kalibrirate zaslon.
Povezave TFT LCD z Arduinom:
2,4-palčni TFT LCD zaslon je popoln Arduino Shield. LCD zaslon lahko neposredno potisnete na vrh Arduino Uno in popolnoma se bo ujemal z nožicami in zdrsnil skozi. Ker pa zaradi varnosti pokrijete programski terminal vašega Arduino UNO z majhnim izolirnim trakom, za vsak primer, če terminal pride v stik z vašim TFT LCD zaslonom. LCD, sestavljen na UNO, bo spodaj videti približno tako.
Programiranje vašega Arduina za TFT LCD:
Za delovanje te kode kalkulatorja arduino uporabljamo knjižnico SPFD5408. To je spremenjena knjižnica Adafruit in lahko brez težav deluje z našim LCD TFT modulom. Celoten program lahko preverite na koncu tega članka.
Opomba: Zelo pomembno je, da namestite to knjižnico v svoj Arduino IDE ali ta program za prevajanje brez napak.
Če želite namestiti to knjižnico, preprosto kliknite zgornjo povezavo, ki vas popelje na stran Github. Tam kliknite na kloniraj ali prenesite in izberite “Download ZIP”. Prenesena bo datoteka zip.
Zdaj odprite Arduino IDE in izberite Skica -> Vključi Librarey -> Dodaj knjižnico.ZIP. Odpre se okno brskalnika, poiščite datoteko ZIP in kliknite »V redu«. Če je uspešna, v spodnjem levem kotu Arduina opazite »Knjižnica je dodana v vaše knjižnice«. Podroben vodnik za to je podan v Vadnici za povezovanje.
Zdaj lahko uporabite spodnjo kodo v vašem Arduino IDE in jo naložite v svoj Arduino UNO, da kalkulator zaslona na dotik deluje. Spodaj sem razložil kodo na majhne segmente.
Za delovanje tega programa potrebujemo tri knjižnice; vse te tri knjižnice so bile v datoteki ZIP, ki ste jo prenesli z zgoraj navedene povezave. Preprosto sem jih vključil v kodo, kot je prikazano spodaj.
#include
Kot smo že omenili, moramo LCD zaslon umeriti, da bo deloval po pričakovanjih, vendar ne skrbite, tukaj navedene vrednosti so skoraj univerzalne. Spremenljivke TS_MINX, TS_MINY, TS_MAXX in TS_MAXY določajo kalibracijo zaslona. Lahko se igrate okoli njih, če menite, da umerjanje ni zadovoljivo.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Kot vemo, da lahko zaslon TFT LCD prikaže veliko barv, je treba vse te barve vnesti v šestnajstiško vrednost. Da bo razumljivejša za človeka, te vrednosti dodelimo spremenljivki, kot je prikazano spodaj.
#define WHITE 0x0000 // Črna-> Bela #define RUMENA 0x001F // Modra-> Rumena #define CYAN 0xF800 // Rdeča-> Cyan #define PINK 0x07E0 // Green-> Pink #define RDEČA 0x07FF // Cyan -> Rdeča #define GREEN 0xF81F // Roza -> Zelena #define MODRA 0xFFE0 // Rumena-> Modra #define BLACK 0xFFFF // Bela-> Črna
V redu, lahko gremo v programski del. V tem programu so vključeni trije oddelki. Ena je ustvarjanje uporabniškega vmesnika kalkulatorja z gumbi in zaslonom. Nato zaznavanje gumbov glede na dotik uporabnikov in končno izračunavanje rezultatov ter njihovo prikazovanje. Pojdimo skozi enega po enega.
1. Ustvarjanje uporabniškega vmesnika kalkulatorja:
Tu lahko veliko svoje ustvarjalnosti uporabite za oblikovanje uporabniškega vmesnika kalkulatorja. Preprosto sem naredil osnovno postavitev kalkulatorja s 16 gumbi in eno prikazovalno enoto. Zasnovo morate izdelati tako, kot da boste nekaj narisali na MS barvi. Dodane knjižnice vam bodo omogočile risanje črt, pravokotnikov, krogov, znakov, nizov in še veliko več poljubnih barv. Razpoložljive funkcije lahko razumete iz tega članka.
Sposobnosti risanja črt in okvirjev sem uporabil za oblikovanje uporabniškega vmesnika, ki je zelo podoben kalkulatorju iz 90-ih. Vsako polje ima širino in višino 60 slikovnih pik.
// Nariši polje z rezultati tft.fillRect (0, 0, 240, 80, CYAN); // Nariši prvi stolpec tft.fillRect (0,260,60,60, RDEČA); tft.fillRect (0,200,60,60, ČRNA); tft.fillRect (0,140,60,60, ČRNA); tft.fillRect (0,80,60,60, ČRNA); // Nariši tretji stolpec tft.fillRect (120,260,60,60, ZELENA); tft.fillRect (120.200,60,60, ČRNA); tft.fillRect (120,140,60,60, ČRNA); tft.fillRect (120,80,60,60, ČRNA); // Nariši odsek in četrti stolpec za (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60,60, MODRA); tft.fillRect (60, b, 60,60, BLACK);} // Nariši vodoravne črte za (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, BELA); // Narišemo navpične črte za (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, BELA); // Prikaži oznake tipkovnice za (int j = 0; j <4; j ++) {for (int i = 0; i <4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 * j)); tft.setTextSize (3); tft.setTextColor (BELA); tft.println (simbol);
2. Odkrivanje gumbov:
Druga zahtevna naloga je zaznavanje uporabnikovega dotika. Vsakič, ko se uporabnik nekje dotakne, bomo lahko ugotovili, kje je položaj X in Y piksla, ki se ga je dotaknil. To vrednost lahko prikažete na serijskem monitorju z uporabo println, kot je prikazano spodaj.
TSPoint p = waitTouch (); X = py; Y = px; Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y);
Ker smo oblikovali škatlo s širino in višino po 60 slikovnih pik in imamo štiri vrstice in za stolpce od (0,0). Položaj vsakega polja je mogoče predvideti, kot je prikazano na spodnji sliki.
Toda v praksi to ne bo rezultat. Zaradi težave s kalibracijo bo med pričakovano in dejansko vrednostjo velika razlika.
Torej, če želite predvideti natančen položaj polja, morate klikniti vrstico in preveriti njen ustrezen položaj na serijskem monitorju. To morda ni najbolj profesionalno, vendar vseeno deluje popolnoma. Izmeril sem položaj vseh črt in dobil spodnje vrednosti.
Zdaj, saj poznamo položaj vseh polj. Ko se uporabnik dotakne kjer koli, lahko predvidimo, kje se je dotaknil, tako da primerjamo njegove vrednosti (X, Y) z vrednostjo za vsako polje, kot je prikazano spodaj.
if (X <105 && X> 50) // Odkrivanje gumbov v stolpcu 2 {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Gumb 0 je pritisnjen, če je (Number == 0) Number = 0; sicer Število = (Število * 10) + 0; // pritisnjeno dvakrat} if (Y> 85 && Y <140) {Serial.println ("Button 2"); če (Število == 0) Število = 2; sicer Število = (Število * 10) + 2; // pritisnjeno dvakrat}
3. Prikaz številk in izračun rezultata:
Zadnji korak je izračun rezultata in prikaz na TFT LCD zaslonu. Ta kalkulator arduino lahko izvaja operacije samo z dvema številkama. Ti dve številki sta poimenovani kot spremenljivki "Num1" in "Num2". Spremenljivka "Število" daje in prevzema vrednost iz številk Num1 in Num2 in nosi tudi rezultat.
Ko uporabnik pritisne gumb, se številki doda ena številka. Ko pritisnete drug gumb, se prejšnja ena številka pomnoži z 10 in z njo se doda nova številka. Na primer, če pritisnemo 8 in nato 5 in nato 7, potem bo spremenljivka najprej imela 8, nato (8 * 10) + 5 = 85, nato (85 * 10) +7 = 857. Torej bo spremenljivka imela vrednost 857 z njo.
če (Y> 192 && Y <245) {Serial.println ("Gumb 8"); če (Število == 0) Število = 8; sicer Število = (Število * 10) + 8; // ponovno pritisnjeno}
Ko izvedemo katero koli operacijo, kot je seštevanje, ko uporabniki pritisnejo gumb za dodajanje, se vrednost iz Številke prenese v Num1 in nato Število postane nič, tako da se pripravi na vnos za drugo številko.
Ko pritisnete Equal, se vrednost v Number pošlje na Num2, nato se izvede ustrezen izračun (v tem primeru dodatek), rezultat pa se ponovno shrani v spremenljivko "Number".
Končno bo ta vrednost prikazana na LCD zaslonu.
Delo:
Delovanje tega kalkulatorja zaslona na dotik Arduino je preprosto. Spodaj navedeno kodo morate naložiti na svoj Arduino in jo sprožiti. Na vašem LCD zaslonu se prikaže kalkulator.
Zdaj lahko vnesete poljubno število in izvedete izračune. Zaenkrat je omejena na samo dva operanda in edini operater. Kodo pa lahko prilagodite, da bo imela veliko možnosti.
Vsakič po opravljenem izračunu morate pritisniti tipko "C", da počistite vrednost na zaslonu. Upam, da ste projekt razumeli in uživali v gradnji česa podobnega. Če dvomite, jih lahko objavite na forumih ali v spodnjem oddelku za komentarje. Se vidimo naslednjič z drugim zanimivim projektom do takrat veselega računalništva !!
Oglejte si tudi predstavitveni video spodaj.