Turinys:

„Arduino TFT LCD“jutiklinio ekrano skaičiuoklė: 3 žingsniai
„Arduino TFT LCD“jutiklinio ekrano skaičiuoklė: 3 žingsniai

Video: „Arduino TFT LCD“jutiklinio ekrano skaičiuoklė: 3 žingsniai

Video: „Arduino TFT LCD“jutiklinio ekrano skaičiuoklė: 3 žingsniai
Video: MKS Robin Nano v2.0 - Руководство по установке TMC2208 2024, Liepa
Anonim
Arduino TFT LCD jutiklinio ekrano skaičiuoklė
Arduino TFT LCD jutiklinio ekrano skaičiuoklė

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

Daiktai, kurių jums reikia
Daiktai, kurių jums reikia
Daiktai, kurių jums reikia
Daiktai, kurių jums reikia

Šiam projektui jums reikės šių dalykų: 3,5 TFT LCD DISPLAYARDUINO UNO

2 veiksmas: TFT ekrano bibliotekos diegimas „Arduino IDE“

TFT ekrano bibliotekos diegimas „Arduino IDE“
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ą

Įkelkite skaičiuotuvo kodą
Įkelkite skaičiuotuvo kodą
Įkelkite skaičiuotuvo kodą
Į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: