Turinys:
- 1 žingsnis: reikalingi dalykai
- 2 veiksmas: TFT ekrano bibliotekos diegimas „Arduino IDE“
- 3 veiksmas: įkelkite skaičiuotuvo kodą
Video: „Arduino TFT LCD“jutiklinio ekrano skaičiuoklė: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Sveiki, vaikinai, šioje instrukcijoje mes išmoksime sukurti skaičiuotuvą naudojant „Arduino Uno“su 3,5 colio TFT LCD jutikliniu ekranu. Taigi parašysime kodą ir įkelsime jį į „arduino“, kuris ekrane parodys skaičiuoklės sąsają pateikti pagrindinių matematinių išraiškų išvestį.
1 žingsnis: reikalingi dalykai
Šiam projektui jums reikės šių dalykų: 3,5 TFT LCD DISPLAYARDUINO UNO
2 veiksmas: TFT ekrano bibliotekos diegimas „Arduino IDE“
Mes naudojame SPFD5408 biblioteką:
kad šis „arduino“skaičiuotuvo kodas veiktų. Tai modifikuota „Adafruit“biblioteka ir gali sklandžiai veikti su mūsų LCD TFT moduliu. Jums labai svarbu įdiegti šią biblioteką savo „Arduino IDE“arba šioje programoje, kad būtų sukurta be klaidų. Norėdami įdiegti šią biblioteką, galite tiesiog spustelėti aukščiau esančią nuorodą, kuri nukreips jus į „Github“puslapį. Ten spustelėkite kloną arba atsisiųskite ir pasirinkite „Atsisiųsti ZIP“. Bus atsisiųstas zip failas. Dabar atidarykite „Arduino IDE“ir pasirinkite Eskizas -> Įtraukti Librarey -> Pridėti. ZIP biblioteką. Atsidarys naršyklės langas, eikite į ZIP failą ir spustelėkite „Gerai“. Turėtumėte pastebėti „Biblioteka pridėta prie jūsų bibliotekų“apatiniame kairiajame „Arduino“kampe.
3 veiksmas: įkelkite skaičiuotuvo kodą
Įdiegę biblioteką, prijunkite ekraną prie „Arduino“ir nukopijuokite šį kodą ir įkelkite jį į „Arduino“. biblioteka#include "SPFD5408_TouchScreen.h"/*_ Bibliotekų pabaiga _*//*_ Apibrėžkite LCD kaiščius (aš priskyriau numatytas vertes) _*/#define YP A1 // turi būti analoginis kaištis, naudokite žymėjimą „An“!# apibrėžti XM A2 // turi būti analoginis kaištis, naudokite žymėjimą „An“! #define YM 7 // gali būti skaitmeninis kaištis#apibrėžti XP 6 // gali būti skaitmeninis kaištis#apibrėžti LCD_CS A3#apibrėžti LCD_CD A2#apibrėžti LCD_WR A1#apibrėžti LCD_RD A0#apibrėžti LCD_RESET A4/*_ Defancijos pabaiga _*//*_ Priskirkite pavadinimus spalvoms ir slėgiui _*/#define WHITE 0x0000 // Black-> White#define YELLOW 0x001F // Blue-> Yellow#define CYAN 0xF800 // Raudona-> Žalsvai mėlyna#apibrėžti PINK 0x07E0 // Žalia-> Rožinė#apibrėžti RAUDONA 0x07FF // Žalsvai mėlyna-> Raudona#apibrėžti GREEN 0xF81F // Rožinė-> Žalia #define BLUE 0xFFE0 // Geltona- > Mėlyna#apibrėžti JUODĄ 0xFFFF // Balta-> Juoda#apibrėžti MINPRESSURE 10#apibrėžti MAXPRESSURE 1000/*_ Priskirtas _*//*_ TFT LCD kalibravimas _*/#apibrėžti TS_MINX 125#apibrėžti TS_MINY 85#apibrėžti TS_MAXX 965#apibrėžti TS_MAXY 905/* _ Kalibravimo pabaiga _*/jutiklinis ekranas ts = jutiklinis ekranas (XP, YP, XM, YM, 300); // 300 yra jautrumasAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Pradėti ryšį naudojant LCDString simbolį [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; ilgas skaičius1, skaičius2, skaičius; char veiksmas; loginis rezultatas = klaidinga; void setup () {Serial.begin (9600); // Derinimui naudokite serijinį monitorių tft.reset (); // Visada atstatyti pradžioje tft.begin (0x9341); // Mano LCD naudoja LIL9341 sąsajos tvarkyklę IC tft.setRotation (2); // Aš tiesiog pasisukau taip, kad maitinimo lizdas būtų nukreiptas į viršų - pasirinktinai tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serijinis atspaudas (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (rezultatas == tiesa) CalculateResult (); DisplayResult (); delay (300);} TSPoint waitTouch () {TSPoint p; do {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((p.z MAXPRESSURE)); p.x = žemėlapis (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = žemėlapis (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // 1 stulpelio aptikimo mygtukai {if (Y> 0 && Y <85) // Jei atšaukimo mygtukas paspaudžiamas {Serial.println („Button Cancel“); Skaičius = skaičius1 = skaičius2 = 0; rezultatas = klaidingas;} if (Y> 85 && Y <140) // Jei paspaustas 1 mygtukas {Serial.println ("1 mygtukas"); jei (Skaičius == 0) Skaičius = 1; else Skaičius = (Skaičius*10) + 1; // Paspaudžiamas du kartus} if (Y> 140 && Y <192) // Jei paspaudžiamas 4 mygtukas {Serial.println ("4 mygtukas"); jei (Skaičius == 0) Skaičius = 4; else Skaičius = (Skaičius*10) + 4; // Paspaudžiamas du kartus} if (Y> 192 && Y <245) // Jei paspaudžiamas 7 mygtukas {Serial.println ("7 mygtukas"); jei (Skaičius == 0) Skaičius = 7; else Skaičius = (Skaičius*10) + 7; // Paspaudžiamas du kartus}} if (X50) // 2 stulpelio mygtukų aptikimas {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Mygtukas 0 paspaudžiamas, jei (Skaičius == 0) Skaičius = 0; else Skaičius = (Skaičius*10) + 0; // Paspaudžiamas du kartus} if (Y> 85 && Y <140) {Serial.println ("2 mygtukas"); jei (Skaičius == 0) Skaičius = 2; else Skaičius = (Skaičius*10) + 2; // Paspaudžiamas du kartus} if (Y> 140 && Y <192) {Serial.println ("5 mygtukas"); jei (skaičius == 0) skaičius = 5; else Skaičius = (Skaičius*10) + 5; // Paspaudus du kartus} if (Y> 192 && Y <245) {Serial.println ("8 mygtukas"); jei (Skaičius == 0) Skaičius = 8; else Skaičius = (Skaičius*10) + 8; // Paspaudus du kartus}} if (X105) // Mygtukai 3 stulpelyje aptinkami {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = skaičius; rezultatas = tiesa; } if (Y> 85 && Y <140) {Serial.println („3 mygtukas“); jei (Skaičius == 0) Skaičius = 3; else Skaičius = (Skaičius*10) + 3; // Paspaudžiamas du kartus} if (Y> 140 && Y <192) {Serial.println ("6 mygtukas"); jei (Skaičius == 0) Skaičius = 6; else Skaičius = (Skaičius*10) + 6; // Paspaudžiamas du kartus} if (Y> 192 && Y <245) {Serial.println ("9 mygtukas"); jei (skaičius == 0) skaičius = 9; else Skaičius = (Skaičius*10) + 9; // Paspaudžiamas du kartus}} if (X165) // 3 stulpelio aptikimo mygtukai {Num1 = Number; Skaičius = 0; tft.setCursor (200, 20); tft.setTextColor (RAUDONA); if (Y> 0 && Y <85) {Serial.println ("Papildymas"); veiksmas = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Atimtis"); veiksmas = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Dauginimas"); veiksmas = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); veiksmas = 4; tft.println ('/');} uždelsimas (300); }} void CalculateResult () {if (action == 1) Number = Num1+Num2; if (veiksmas == 2) Skaičius = Num1-Num2; jei (veiksmas == 3) skaičius = skaičius1*skaičius2; jei (veiksmas == 4) Skaičius = Num1/Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // išvalyti rezultatų langelį tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (JUODA); tft.println (skaičius); // atnaujinti naują vertę} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (RAUDONA); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println („Skaičiuotuvas“); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (MĖLYNA); tft.println ("-„ Circut Digest "); delay (1800);} void draw_BoxNButtons () {// Nubrėžkite rezultatų langelį tft.fillRect (0, 0, 240, 80, CYAN); // Pirmojo stulpelio piešimas tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, JUODA); tft.fillRect (0, 140, 60, 60, JUODA); tft.fillRect (0, 80, 60, 60, BLACK); // Piešti trečiąjį stulpelį tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, JUODA); tft.fillRect (120, 140, 60, 60, JUODA); tft.fillRect (120, 80, 60, 60, BLACK); // Nubrėžkite Secound & ketvirtąjį stulpelį (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Nubrėžkite horizontalias linijas (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, WHITE); // Piešti vertikalias linijas (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE); // Rodyti klaviatūros etiketes (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 (BALTA); tft.println (simbolis [j] ); }}} Įkėlę kodą, ekrane pamatysite skaičiuoklę, veikiančią kaip mano, ir dabar galite atlikti pagrindinius matematinius skaičiavimus. Taigi smagiai sukurkite savo skaičiuotuvą naudodami „Arduino UNO“.
Rekomenduojamas:
„Raspberry Pi“ekrano ir jutiklinio ekrano pasukimas: 4 veiksmai
Pasukti „Raspberry Pi“ekraną ir jutiklinį ekraną: tai yra pagrindinė instrukcija, skirta parodyti, kaip pasukti bet kurio „Raspberry Pi“, kuriame veikia „Buster Raspbian“operacinė sistema, ekraną ir jutiklinį ekraną, tačiau šį metodą naudoju nuo pat Jessie. Čia naudojami vaizdai yra iš Raspberry Pi
„Arduino“jutiklinio ekrano skaičiuoklė: 7 žingsniai
„Arduino“jutiklinio ekrano skaičiuoklė: Sveiki! Tai projektas, skirtas jutikliniam ekranui skaičiuoti naudojant „Arduino Uno“ir TFT LCD ekraną. Aš sugalvojau savo namų mokyklos programavimo klasės koncepciją, o šio projekto kūrimo patirtis buvo labai įdomi. Šis skaičiuotuvas gali
„Arduino Flappy Bird“- „Arduino“2,4 colio TFT jutiklinio ekrano SPFD5408 paukščių žaidimo projektas: 3 žingsniai
„Arduino Flappy Bird“| „Arduino“2,4 colio jutiklinio ekrano SPFD5408 paukščių žaidimo projektas: „Flappy Bird“per kelerius metus buvo per daug populiarus žaidimas, ir daugelis žmonių jį sukūrė savaip, taip ir aš, aš sukūriau savo versiją „Flappy bird“su „Arduino“ir pigų 2,4 colio TFT. Jutiklinis ekranas SPFD5408, Taigi pradėkime
„Arduino TFT“jutiklinio ekrano durų užraktas: 5 žingsniai
„Arduino TFT“jutiklinio ekrano durų užraktas: tai mano pirmasis „Instructable“. Šiame projekte naudojamas „Arduino“ir 2,8 " Jutiklinis TFT jutiklinis ekranas su slaptažodžio eskizu, kad suaktyvintų relę, kuri nutraukia grandinę iki „mag lock“durų. Fone sugedo durų RFID užraktas, o ne iš naujo prijungtas
„Raspberry Pi“jutiklinio ekrano ekrano pamoka: 5 žingsniai (su paveikslėliais)
„Raspberry Pi“jutiklinio ekrano ekrano pamoka: atmeskite savo HDMI kabelius, nes dabar galite turėti „Pi“ekraną! Ši instrukcija padės jums nustatyti „Pi“sąranką su jutikliniu ekranu ir kaip ją naudoti, kad atitiktų jūsų poreikius. Bet kokio tipo HAT stiliaus ekranas gali būti