Përmbajtje:

Llogaritësi i ekranit me prekje Arduino TFT LCD: 3 hapa
Llogaritësi i ekranit me prekje Arduino TFT LCD: 3 hapa

Video: Llogaritësi i ekranit me prekje Arduino TFT LCD: 3 hapa

Video: Llogaritësi i ekranit me prekje Arduino TFT LCD: 3 hapa
Video: SKR 1.3 - TFT35 V3 RepRap Discount Full Graphic Smart Controller Mode (1 of 3) 2024, Nëntor
Anonim
Llogaritësi i ekranit me prekje Arduino TFT LCD
Llogaritësi i ekranit me prekje Arduino TFT LCD

Përshëndetje Djema në këtë udhëzues do të mësojmë se si të bëjmë një kalkulator duke përdorur Arduino Uno me ekran 3.5 TFT LCD Touchscreen. Pra, ne do të shkruajmë një kod dhe do ta ngarkojmë në arduino i cili do të shfaqë ndërfaqen e llogaritësit në ekran dhe do të marrë funksionimin e prekjes dhe japin daljen e shprehjeve themelore matematikore.

Hapi 1: Gjërat që ju nevojiten

Gjërat që ju nevojiten
Gjërat që ju nevojiten
Gjërat që ju nevojiten
Gjërat që ju nevojiten

Për këtë projekt do t'ju duhen gjërat e mëposhtme: 3.5 TFT LCD DISPLAYARDUINO UNO

Hapi 2: Instalimi i Bibliotekës TFT Display në Arduino IDE

Instalimi i Bibliotekës TFT Display në Arduino IDE
Instalimi i Bibliotekës TFT Display në Arduino IDE

Ne po përdorim Bibliotekën SPFD5408:

për të punuar këtë kod llogaritës arduino. Kjo është një bibliotekë e modifikuar e Adafruit dhe mund të funksionojë pa probleme me modulin tonë LCD TFT. Veryshtë shumë e rëndësishme për ju që ta instaloni këtë bibliotekë në Arduino IDE ose këtë program për ta përpiluar pa asnjë gabim. Për të instaluar këtë bibliotekë, thjesht mund të klikoni në lidhjen e mësipërme e cila do t'ju çojë në një faqe Github. Aty klikoni në klon ose shkarkoni dhe zgjidhni "Shkarkoni ZIP". Një skedar zip do të shkarkohet. Tani, hapni Arduino IDE dhe zgjidhni Sketch -> Include Librarey -> Add. ZIP bibliotekë. Një dritare e shfletuesit do të hapet për të lundruar në skedarin ZIP dhe klikoni "OK". Ju duhet të vini re "Biblioteka e shtuar në Bibliotekat tuaja" në këndin e poshtëm të majtë të Arduino.

Hapi 3: Ngarko Kodin e Llogaritësit

Ngarko Kodin e Llogaritësit
Ngarko Kodin e Llogaritësit
Ngarko Kodin e Llogaritësit
Ngarko Kodin e Llogaritësit

Pas instalimit të bibliotekës lidhni ekranin me Arduino dhe kopjoni kodin e mëposhtëm dhe ngarkojeni atë në Arduino./*_ Bibliotekat e importit _*/#përfshijnë "SPFD5408_Adafruit_GFX.h" // Biblioteka kryesore grafike#përfshin "SPFD5408_Adafruit_TFTLCD.h" // Hardware-specific biblioteka#përfshin "SPFD5408_TouchScreen.h"/*_ Përfundimi i Bibliotekave _*//*_ Përcaktoni kunjat LCD (unë i kam caktuar vlerat e paracaktuara) _*/#përcaktoni YP A1 // duhet të jetë një pin analog, përdorni shënimin "Një"!# përcaktoni XM A2 // duhet të jetë një kunj analog, përdorni shënimin "Një"!#përcaktoni YM 7 // mund të jetë një kunj dixhital#përcaktoni XP 6 // mund të jetë një kunj dixhital#përcaktoni LCD_CS A3#përcaktoni LCD_CD A2#përcaktoni LCD_WR A1#përcakto LCD_RD A0#përcakto LCD_RESET A4/*_ Fundi i përkufizimeve _*//*_ Cakto emra ngjyrave dhe presionit _*/#përcakto WHITE 0x0000 // E zezë-> E bardhë#përcakto YELLOW 0x001F // Blu-> E verdhë#përcakto CYAN 0xF800 // E kuqe-> Cyan#definoni PINK 0x07E0 // E gjelbër-> Pink#përcaktoni RED 0x07FF // Cian-> E kuqe#përcaktoni GREEN 0xF81F // Pink-> E gjelbër#përcaktoni BLUE 0xFFE0 // E verdhë- > Blu#përcakto ZI 0xFFFF // E Bardhë-> E Zezë#përcakto MINPRESSURE 10#përcakto MAXPRESSURE 1000/*_ Caktohet _*//*_ Kalibroni TFT LCD _*/#përcaktoni TS_MINX 125#përcaktoni TS_MINY 85#përcaktoni TS_MAXX 965#përcaktoni TS _ Përfundimi i Kalibrimit _*/TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 është ndjeshmëriaAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Filloni komunikimin me simbolin LCDString [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; i gjatë Num1, Num2, Numri; veprim char; rezultati boolean = false; void setup () {Serial.begin (9600); // Përdorni monitorin serik për korrigjimin e tft.reset (); // Rivendos gjithmonë në fillim tft.begin (0x9341); // LCD ime përdor LIL9341 Interface driver tft.setRotation (2); // Unë sapo kam lëvizur në mënyrë që priza e energjisë të kthehet lart - opsionale tft.fillScreen (E BARDH); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); nëse (rezultati == vërtetë) CalculateResult (); DisplayResult (); vonesë (300);} TSPoint waitTouch () {TSPoint p; bëni {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } ndërsa ((p.z MAXPRESSURE)); p.x = hartë (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = hartë (p.y, TS_MINY, TS_MAXY, 0, 240);; kthehu p;} void DetectButtons () {if (X0) // Zbulimi i butonave në Kolonën 1 {if (Y> 0 && Y <85) // Nëse butoni anulohet shtypet {Serial.println ("Butoni Cancel"); Numri = Num1 = Num2 = 0; rezultati = false;} nëse (Y> 85 && Y <140) // Nëse shtypet butoni 1 {Serial.println ("Button 1"); nëse (Numri == 0) Numri = 1; tjetër Numri = (Numri*10) + 1; // Shtypur dy herë} nëse (Y> 140 && Y <192) // Nëse shtypet butoni 4 {Serial.println ("Button 4"); nëse (Numri == 0) Numri = 4; tjetër Numri = (Numri*10) + 4; // Shtypur dy herë} nëse (Y> 192 && Y <245) // Nëse shtypet butoni 7 {Serial.println ("Butoni 7"); nëse (Numri == 0) Numri = 7; tjetër Numri = (Numri*10) + 7; // Shtypur dy herë}} nëse (X50) // Zbulimi i butonave në kolonën 2 {nëse (Y> 0 && Y <85) {Serial.println ("Butoni 0"); // Butoni 0 shtypet nëse (Numri == 0) Numri = 0; tjetër Numri = (Numri*10) + 0; // Shtypur dy herë} nëse (Y> 85 && Y <140) {Serial.println ("Butoni 2"); nëse (Numri == 0) Numri = 2; tjetër Numri = (Numri*10) + 2; // Shtypur dy herë} nëse (Y> 140 && Y <192) {Serial.println ("Butoni 5"); nëse (Numri == 0) Numri = 5; tjetër Numri = (Numri*10) + 5; // Shtypur dy herë} nëse (Y> 192 && Y <245) {Serial.println ("Butoni 8"); nëse (Numri == 0) Numri = 8; tjetër Numri = (Numri*10) + 8; // Shtypur dy herë}} nëse (X105) // Zbulimi i butonave në kolonën 3 {nëse (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = Numri; rezultati = i vërtetë; } if (Y> 85 && Y <140) {Serial.println ("Butoni 3"); nëse (Numri == 0) Numri = 3; tjetër Numri = (Numri*10) + 3; // Shtypur dy herë} nëse (Y> 140 && Y <192) {Serial.println ("Butoni 6"); nëse (Numri == 0) Numri = 6; tjetër Numri = (Numri*10) + 6; // Shtypur dy herë} nëse (Y> 192 && Y <245) {Serial.println ("Butoni 9"); nëse (Numri == 0) Numri = 9; tjetër Numri = (Numri*10) + 9; // Shtypur dy herë}} nëse (X165) // Zbulimi i butonave në Kolonën 3 {Num1 = Numri; Numri = 0; tft.setCursor (200, 20); tft.setTextColor (KUQ); nëse (Y> 0 && Y <85) {Serial.println ("Shtesë"); veprim = 1; tft.println ('+');} nëse (Y> 85 && Y <140) {Serial.println ("Zbritja"); veprim = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Shumëzimi"); veprim = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); veprim = 4; tft.println ('/');} vonesë (300); }} void CalculateResult () {if (action == 1) Numri = Num1+Num2; nëse (veprimi == 2) Numri = Num1-Num2; nëse (veprimi == 3) Numri = Num1*Num2; nëse (veprimi == 4) Numri = Num1/Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // pastroni kutinë e rezultateve tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (E ZI); tft.println (Numri); // përditëso vlerën e re} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (KUQ); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("Llogaritësi"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (BLUE); tft.println ("-Circut Digest"); vonesë (1800);} void draw_BoxNButtons () {// Vizatoni Kutinë e Rezultateve tft.fillRect (0, 0, 240, 80, CYAN); // Vizatoni Kolonën e Parë tft.fillRect (0, 260, 60, 60, KUQ); tft.fillRect (0, 200, 60, 60, ZI); tft.fillRect (0, 140, 60, 60, ZI); tft.fillRect (0, 80, 60, 60, ZI); // Vizatoni Kolonën e Tretë tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, ZI); tft.fillRect (120, 140, 60, 60, ZI); tft.fillRect (120, 80, 60, 60, ZI); // Vizatoni kolonën sekondare dhe të katërt për (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, ZI);} // Vizatoni vija horizontale për (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, E BARDH); // Vizatoni vija vertikale për (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE); // Shfaq etiketat e tastierës për (int j = 0; j <4; j ++) {për (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60* j)); tft.setTextSize (3); tft.setTextColor (E BARDH); tft.println (simboli [j] ); }}} Pasi të keni ngarkuar kodin, do të jeni në gjendje të shihni kalkulatorin që shfaqet në ekranin tuaj si i imi dhe tani mund të kryeni llogaritjet themelore të matematikës për këtë. Kështu që argëtohuni duke bërë kalkulatorin tuaj me Arduino UNO.

Recommended: