Բովանդակություն:

Arduino TFT LCD Touchscreen Հաշվիչ `3 քայլ
Arduino TFT LCD Touchscreen Հաշվիչ `3 քայլ

Video: Arduino TFT LCD Touchscreen Հաշվիչ `3 քայլ

Video: Arduino TFT LCD Touchscreen Հաշվիչ `3 քայլ
Video: SKR 1.3 - TFT35 touch screen display 2024, Հուլիսի
Anonim
Arduino TFT LCD սենսորային էկրանի հաշվիչ
Arduino TFT LCD սենսորային էկրանի հաշվիչ

Ողջույն, տղերք, այս հրահանգներում մենք կսովորենք, թե ինչպես կարելի է հաշվիչ սարքել Arduino Uno- ի միջոցով ՝ 3.5 դյույմանոց TFT LCD սենսորային էկրանով: Այսպիսով, մենք կգրենք ծածկագիր և կբեռնենք այն arduino- ում, որը կցուցադրի հաշվիչի ինտերֆեյսը էկրանին և կպահպանի հպման գործառույթները և տալ հիմնական մաթեմատիկական արտահայտությունների ելքը:

Քայլ 1: Ձեզ անհրաժեշտ բաներ

Ձեզ անհրաժեշտ բաներ
Ձեզ անհրաժեշտ բաներ
Ձեզ անհրաժեշտ բաներ
Ձեզ անհրաժեշտ բաներ

Այս նախագծի համար ձեզ հարկավոր են հետևյալ իրերը. 3.5 TFT LCD DISPLAYARDUINO UNO

Քայլ 2. Arduino IDE- ում TFT ցուցադրման գրադարանի տեղադրում

TFT ցուցադրման գրադարանի տեղադրում Arduino IDE- ում
TFT ցուցադրման գրադարանի տեղադրում Arduino IDE- ում

Մենք օգտագործում ենք SPFD5408 գրադարանը ՝

arduino հաշվիչի այս կոդը աշխատեցնելու համար: Սա Adafruit- ի փոփոխված գրադարան է և կարող է անթերի աշխատել մեր LCD TFT մոդուլի հետ: Ձեզ համար շատ կարևոր է տեղադրել այս գրադարանը ձեր Arduino IDE- ում կամ այս ծրագիրը ՝ առանց որևէ սխալի կազմելու: Այս գրադարանը տեղադրելու համար կարող եք պարզապես սեղմել վերևի հղման վրա, որը ձեզ կտանի Github էջ: Այնտեղ կտտացրեք կլոն կամ ներբեռնեք և ընտրեք «Ներբեռնել ZIP»: Կբեռնվի ZIP ֆայլ: Այժմ բացեք Arduino IDE- ն և ընտրեք Էսքիզ -> Ներառել Librarey -> Ավելացնել. ZIP գրադարան: Բրաուզերի պատուհանը կբացվի նավարկելու դեպի ZIP ֆայլ և կտտացրեք «Լավ»: Դուք պետք է նկատեք «Ձեր գրադարաններին ավելացված գրադարան» Արդուինոյի ներքևի ձախ անկյունում:

Քայլ 3: Վերբեռնեք Հաշվիչի ծածկագիրը

Վերբեռնեք Հաշվիչի ծածկագիրը
Վերբեռնեք Հաշվիչի ծածկագիրը
Վերբեռնեք Հաշվիչի ծածկագիրը
Վերբեռնեք Հաշվիչի ծածկագիրը

Գրադարանը տեղադրելուց հետո էկրանը միացրեք Arduino- ին և պատճենեք հետևյալ ծածկագիրը և վերբեռնեք Arduino- ում: գրադարան#ներառում է «SPFD5408_TouchScreen.h»/*_ Գրադարանների ավարտը _*//*_ Սահմանել LCD կապերը (ես նշանակել եմ կանխադրված արժեքները) _*/#սահմանել YP A1- ը // պետք է լինի անալոգային կապ, օգտագործի «An» նշումը:# սահմանել XM A2 // պետք է լինի անալոգային քորոց, օգտագործի «An» նշումը:#սահմանիր YM 7 // կարող է լինել թվային կապիչ#սահմանել XP 6 // կարող է լինել թվային կապում#սահմանել LCD_CS A3#սահմանել LCD_CD A2#սահմանել LCD_WR A1#սահմանել LCD_RD A0#սահմանել LCD_RESET A4/*_ Սահմանումների ավարտ _*//*_ Անուններ նշանակել գույներին և ճնշմանը _*/#սահմանել ՍՊԻ 0Թ 0x0000 // Սև-> Սպիտակ#սահմանել ԴԵELLԻՆ 0x001F // Կապույտ-> Դեղին#սահմանել CYAN 0xF800 // Red-> Cyan#define PINK 0x07E0 // Կանաչ-> Վարդագույն#սահմանել RED 0x07FF // Cyan-> Կարմիր#սահմանել GREEN 0xF81F // Վարդագույն-> Կանաչ#սահմանել ԿԱԼՈ 0 0xFFE0 // Դեղին- > Կապույտ#սահմանել ՍԵՎ 0xFFFF // Սպիտակ-> Սև#սահմանել MINPRESSURE 10#սահմանել MAXPRESSURE 1000/*_ Նշանակվել է _*//*_ Կալիբրացնել TFT LCD _*/#սահմանել TS_MINX 125#սահմանել TS_MINY 85#սահմանել TS_MAXX 965#սահմանել TS_X _ Կալիբրացիայի ավարտ _*/TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 է զգայունությունը Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Սկսեք հաղորդակցություն LCDString խորհրդանիշով [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; երկար Num1, Num2, Number; ագրեսիվ գործողություն; բուլյան արդյունք = կեղծ; void setup () {Serial.begin (9600); // Օգտագործեք սերիական մոնիտոր `tft.reset () կարգաբերման համար // Միշտ զրոյացնել սկզբից tft.begin (0x9341); // Իմ LCD- ն օգտագործում է LIL9341 Ինտերֆեյսի վարորդ IC tft.setRotation (2); // Ես պարզապես պտտվեցի այնպես, որ հոսանքի վարդակը երևա դեպի վեր - ըստ ցանկության tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); ուշացում (300);} TSPoint waitTouch () {TSPoint p; անել {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((p.z MAXPRESSURE)); p.x = քարտեզ (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = քարտեզ (p.y, TS_MINY, TS_MAXY, 0, 240);; վերադարձնել p;} void DetectButtons () {if (X0) // Կոճակների հայտնաբերում 1 -ին սյունակում {if (Y> 0 && Y <85) // Եթե չեղյալ հայտարարել կոճակը սեղմված է {Serial.println ("Button Cancel"); Թիվ = Num1 = Num2 = 0; արդյունք = կեղծ;} եթե (Y> 85 && Y <140) // Եթե կոճակը 1 սեղմված է {Serial.println ("Button 1"); եթե (Թիվ == 0) Թիվ = 1; else Number = (Number*10) + 1; // Երկու անգամ սեղմված} if (Y> 140 && Y <192) // Եթե 4 կոճակը սեղմված է {Serial.println ("կոճակ 4"); եթե (Թիվ == 0) Թիվ = 4; else Number = (Number*10) + 4; // Երկու անգամ սեղմված} if (Y> 192 && Y <245) // Եթե 7 կոճակը սեղմված է {Serial.println ("Button 7"); եթե (Թիվ == 0) Թիվ = 7; else Number = (Number*10) + 7; // Երկու անգամ սեղմված}} if (X50) // Կոճակների հայտնաբերում 2 -րդ սյունակում {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Կոճակը 0 սեղմված է, եթե (Թիվ == 0) Թիվ = 0; else Number = (Number*10) + 0; // Երկու անգամ սեղմված} if (Y> 85 && Y <140) {Serial.println («Կոճակ 2»); եթե (Թիվ == 0) Թիվ = 2; else Number = (Number*10) + 2; // Երկու անգամ սեղմված} if (Y> 140 && Y <192) {Serial.println («Կոճակ 5»); եթե (Թիվ == 0) Թիվ = 5; else Number = (Number*10) + 5; // Սեղմված է twic} if (Y> 192 && Y <245) {Serial.println («Կոճակ 8»); եթե (Թիվ == 0) Թիվ = 8; else Number = (Number*10) + 8; // Սեղմված է twic}} if (X105) // 3 -րդ սյունակում կոճակների հայտնաբերում {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = համար; արդյունք = ճշմարիտ; } if (Y> 85 && Y <140) {Serial.println («Կոճակ 3»); եթե (Թիվ == 0) Թիվ = 3; else Number = (Number*10) + 3; // Երկու անգամ սեղմված} if (Y> 140 && Y <192) {Serial.println («Կոճակ 6»); եթե (Թիվ == 0) Թիվ = 6; else Number = (Number*10) + 6; // Երկու անգամ սեղմված} if (Y> 192 && Y <245) {Serial.println («Կոճակ 9»); եթե (Թիվ == 0) Թիվ = 9; else Number = (Number*10) + 9; // Երկու անգամ սեղմված}} if (X165) // 3 -րդ սյունակում կոճակների հայտնաբերում {Num1 = համար; Թիվ = 0; tft.setCursor (200, 20); tft.setTextColor (ԿԱՐՄԻՐ); if (Y> 0 && Y <85) {Serial.println («Լրացում»); գործողություն = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Հանում"); գործողություն = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Բազմապատկում"); գործողություն = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); գործողություն = 4; tft.println ('/');} ուշացում (300); }} void CalculateResult () {if (action == 1) Number = Num1+Num2; եթե (գործողություն == 2) Թիվ = Num1-Num2; եթե (գործողություն == 3) Թիվ = Num1*Num2; եթե (գործողություն == 4) Թիվ = Num1/Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // մաքրել արդյունքի տուփ tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (ՍԵՎ); tft.println (համարը); // թարմացնել նոր արժեքը} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (ԿԱՐՄԻՐ); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("Հաշվիչ"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (Կապույտ); tft.println ("-Circut Digest"); ուշացում (1800);} void draw_BoxNButtons () {// Ոչ ոքի արդյունքների տուփ tft.fillRect (0, 0, 240, 80, CYAN); // Նկարել առաջին սյունակը tft.fillRect (0, 260, 60, 60, ԿԱՐՄԻՐ); tft.fillRect (0, 200, 60, 60, ՍԵՎ); tft.fillRect (0, 140, 60, 60, ՍԵՎ); tft.fillRect (0, 80, 60, 60, ՍԵՎ); // Նկարեք երրորդ սյունակը tft.fillRect (120, 260, 60, 60, Կանաչ); tft.fillRect (120, 200, 60, 60, ՍԵՎ); tft.fillRect (120, 140, 60, 60, ՍԵՎ); tft.fillRect (120, 80, 60, 60, ՍԵՎ); // Draw Secound & Fourth Column for (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Draw Horizontal Lines for (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, WHITE); // Նկարեք ուղղահայաց գծեր (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE); // Displayուցադրել ստեղնաշարի պիտակներ (int j = 0; j <4; j ++) {for (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60* ժ)); tft.setTextSize (3); tft.setTextColor (Սպիտակ); tft.println (խորհրդանիշ [j] ); }}} Կոդը վերբեռնելուց հետո դուք կկարողանաք տեսնել ձեր էկրանին աշխատող հաշվիչը որպես իմը, և այժմ կարող եք դրա վրա կատարել հիմնական մաթեմատիկական հաշվարկներ: Այնպես որ, զվարճացեք, պատրաստելով ձեր սեփական հաշվիչը Arduino UNO- ի հետ:

Խորհուրդ ենք տալիս: