Përmbajtje:
- Hapi 1: Gjërat që ju nevojiten
- Hapi 2: Instalimi i Bibliotekës TFT Display në Arduino IDE
- Hapi 3: Ngarko Kodin e Llogaritësit
Video: Llogaritësi i ekranit me prekje Arduino TFT LCD: 3 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
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
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
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
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:
Sistemi i kyçjes së ekranit LCD të ekranit: 6 hapa
Sistemi i kyçjes së ekranit LCD të ekranit: Ky projekt do të veprojë si një kyç në shtëpi dhe e vetmja mënyrë që mund të futeni brenda shtëpisë është të shtypni kodin e saktë 3 shifror. LCD do të veprojë si një pajisje komunikimi për të informuar individin nëse ai ka futur kodin e duhur apo jo. IR -ja
Llogaritësi i ekranit me prekje Arduino: 7 hapa
Llogaritësi i ekranit me prekje Arduino: Përshëndetje! Ky është një projekt për të bërë një kalkulator të ekranit me prekje duke përdorur një Arduino Uno dhe një mburojë LCD TFT. Kam dalë me konceptin për klasën time të programimit në shkollën shtëpiake, dhe përvoja në ndërtimin e këtij projekti ishte shumë interesante. Ky kalkulator ka
Bllokimi i dyerve të ekranit me prekje Arduino TFT: 5 hapa
Arduino TFT Touchscreen Door Lock: Ky është udhëzimi im i parë. Ky projekt përdor Arduino dhe një 2.8 " Ekrani me prekje TFT me një skicë të fjalëkalimit për të aktivizuar një stafetë që thyen qarkun në një derë të bllokimit mag. Në sfond, bllokimi RFID në një derë në punë u thye në vend që të rindërtonte
Udhëzues për shfaqjen e ekranit me prekje Raspberry Pi: 5 hapa (me fotografi)
Udhëzues për shfaqjen e ekranit me prekje Raspberry Pi: Hiqni kabllot tuaja HDMI sepse tani mund të keni një ekran në Pi tuaj! Ky Instructable do t'ju përcjellë përmes procesit të marrjes së konfigurimit tuaj Pi me një ekran me prekje dhe si mund ta përdorni atë për t'iu përshtatur nevojave tuaja. Çdo lloj ekrani i stilit HAT mund të jetë
Temperatura e ekranit në modulin e ekranit LED P10 duke përdorur Arduino: 3 hapa (me fotografi)
Temperatura e shfaqjes në modulin e ekranit LED P10 duke përdorur Arduino: Në tutorialin e mëparshëm është treguar se si të shfaqet teksti në modulin D10 Matrix LED P10 duke përdorur Arduino dhe DMD Connector, të cilat mund t'i kontrolloni këtu. Në këtë tutorial do të japim një mësim të thjeshtë të projektit duke përdorur modulin P10 si mediat e ekranit