Tartalomjegyzék:

Arduino TFT LCD érintőképernyős számológép: 3 lépés
Arduino TFT LCD érintőképernyős számológép: 3 lépés

Videó: Arduino TFT LCD érintőképernyős számológép: 3 lépés

Videó: Arduino TFT LCD érintőképernyős számológép: 3 lépés
Videó: Управление подсветкой с дисплея 2024, Július
Anonim
Arduino TFT LCD érintőképernyős számológép
Arduino TFT LCD érintőképernyős számológép

Sziasztok, srácok, ebben az oktatóanyagban megtanuljuk, hogyan kell számológépet készíteni az Arduino Uno segítségével, 3,5 hüvelykes TFT LCD érintőképernyővel. Tehát írunk egy kódot, és feltöltjük az arduino -ba, amely megjeleníti a számológép felületét a kijelzőn, és érintési funkciókkal rendelkezik. adja meg az alapvető matematikai kifejezések kimenetét.

1. lépés: A szükséges dolgok

A szükséges dolgok
A szükséges dolgok
A szükséges dolgok
A szükséges dolgok

Ehhez a projekthez a következőkre lesz szüksége: 3,5 hüvelykes TFT LCD DISPLAYARDUINO UNO

2. lépés: A TFT kijelzőkönyvtár telepítése az Arduino IDE -be

TFT kijelzőkönyvtár telepítése Arduino IDE -be
TFT kijelzőkönyvtár telepítése Arduino IDE -be

Az SPFD5408 könyvtárat használjuk:

hogy ez az arduino számológép kódja működjön. Ez az Adafruit módosított könyvtára, és zökkenőmentesen működhet az LCD TFT modulunkkal. Nagyon fontos, hogy telepítse ezt a könyvtárat az Arduino IDE -be vagy ebbe a programba, hogy hiba nélkül lefordítsa. A könyvtár telepítéséhez egyszerűen kattintson a fenti linkre, amely egy Github oldalra visz. Kattintson a klónozás vagy letöltés lehetőségre, és válassza a „Letöltés ZIP” lehetőséget. Egy zip fájl letöltődik. Most nyissa meg az Arduino IDE -t, és válassza a Sketch -> Include Librarey -> Add. ZIP library lehetőséget. Megnyílik egy böngészőablak, keresse meg a ZIP fájlt, és kattintson az „OK” gombra. Észre kell vennie a „Könyvtár hozzáadva a könyvtárakhoz” lehetőséget az Arduino bal alsó sarkában.

3. lépés: Töltse fel a számológép kódját

Töltse fel a számológép kódját
Töltse fel a számológép kódját
Töltse fel a számológép kódját
Töltse fel a számológép kódját

A könyvtár telepítése után csatlakoztassa a kijelzőt az Arduino-hoz, és másolja ki a következő kódot, majd töltse fel az Arduino-ba. library#include "SPFD5408_TouchScreen.h"/*_ Könyvtárak vége _*//*_ Definiálja az LCD csapokat (az alapértelmezett értékeket hozzárendeltem) _*/#define YP A1 // analóg tűnek kell lennie, használjon "An" jelölést!# define XM A2 // analóg pin -nek kell lennie, használjon "An" jelölést! #define YM 7 // lehet digitális pin#define XP 6 // lehet digitális pin#define LCD_CS A3#define LCD_CD A2#define LCD_WR A1#határozza meg LCD_RD A0#határozza meg LCD_RESET A4/*_ A defaníciók vége _*//*_ Nevek hozzárendelése a színekhez és a nyomáshoz _*/#define WHITE 0x0000 // Fekete-> Fehér#define SÁRGA 0x001F // Kék-> Sárga#define CYAN 0xF800 // Piros-> cián#definiál PINK 0x07E0 // zöld-> rózsaszín#definiál RED 0x07FF // cián-> piros#definiál ZÖLD 0xF81F // rózsaszín-> zöld #define BLUE 0xFFE0 // sárga- > Kék#definiál FEKETE 0xFFFF // Fehér-> Fekete#definiál MINPRESSURE 10#define MAXPRESSURE 1000/*_ Hozzárendelve _*//*_ TFT LCD kalibrálása _*/#define TS_MINX 125#define TS_MINY 85#define TS_MAXX 965#define TS_MAXY 905/* _Kalibrálás vége _*/Érintőképernyő ts = Érintőképernyő (XP, YP, XM, YM, 300); // 300 az érzékenységAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Kommunikáció indítása LCDString szimbólummal [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; hosszú Num1, Num2, Number; char akció; logikai eredmény = hamis; void setup () {Serial.begin (9600); // Soros monitor használata hibakereséshez tft.reset (); // Mindig alaphelyzetbe állítás tft.begin (0x9341); // Az LCD -m LIL9341 Interface driver IC tft.setRotation (2); // Csak úgy pörögtem, hogy a tápcsatlakozó felfelé nézzen - opcionális tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Sorozatnyomat (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); delay (300);} TSPoint waitTouch () {TSPoint p; do {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((p.z MAXPRESSURE)); p.x = térkép (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = térkép (p.y., TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Gombok észlelése az 1. oszlopban {if (Y> 0 && Y <85) // Ha a Mégse gombot megnyomják {Serial.println ("Button Cancel"); Szám = Szám1 = Szám2 = 0; eredmény = hamis;} if (Y> 85 && Y <140) // Ha megnyomja az 1 gombot {Serial.println ("Button 1"); if (Szám == 0) Szám = 1; else Szám = (Szám*10) + 1; // Kétszer megnyomva} if (Y> 140 && Y <192) // Ha megnyomja a 4 gombot {Serial.println ("Button 4"); if (Szám == 0) Szám = 4; else Szám = (Szám*10) + 4; // kétszer megnyomva} if (Y> 192 && Y <245) // Ha megnyomja a 7 gombot {Serial.println ("7 -es gomb"); if (Szám == 0) Szám = 7; else Szám = (Szám*10) + 7; // kétszer megnyomva}} if (X50) // Gombok észlelése a 2. oszlopban {if (Y> 0 && Y <85) {Serial.println ("0 gomb"); // A 0 gombot megnyomja, ha (Szám == 0) Szám = 0; else Szám = (Szám*10) + 0; // kétszer megnyomva} if (Y> 85 && Y <140) {Serial.println ("Button 2"); if (Szám == 0) Szám = 2; else Szám = (Szám*10) + 2; // kétszer megnyomva} if (Y> 140 && Y <192) {Serial.println ("5. gomb"); if (Szám == 0) Szám = 5; else Szám = (Szám*10) + 5; // kétszer megnyomva} if (Y> 192 && Y <245) {Serial.println ("8. gomb"); if (Szám == 0) Szám = 8; else Szám = (Szám*10) + 8; // kétszer megnyomva}} if (X105) // Gombok észlelése a 3. oszlopban {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = Szám; eredmény = igaz; } if (Y> 85 && Y <140) {Serial.println ("3. gomb"); if (Szám == 0) Szám = 3; else Szám = (Szám*10) + 3; // kétszer megnyomva} if (Y> 140 && Y <192) {Serial.println ("6. gomb"); if (Szám == 0) Szám = 6; else Szám = (Szám*10) + 6; // kétszer megnyomva} if (Y> 192 && Y <245) {Serial.println ("9. gomb"); if (Szám == 0) Szám = 9; else Szám = (Szám*10) + 9; // kétszer megnyomva}} if (X165) // Gombok észlelése a 3. oszlopban {Num1 = Szám; Szám = 0; tft.setCursor (200, 20); tft.setTextColor (PIROS); if (Y> 0 && Y <85) {Serial.println ("Kiegészítés"); akció = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Kivonás"); akció = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Szorzás"); akció = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); akció = 4; tft.println ('/');} késleltetés (300); }} void CalculateResult () {if (action == 1) Number = Num1+Num2; if (akció == 2) Szám = Szám1-Szám2; if (akció == 3) Szám = Szám1*Szám2; if (akció == 4) Szám = Num1/Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // az eredménydoboz törlése tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (FEKETE); tft.println (Szám); // frissítse az új értéket} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (PIROS); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("KALKULÁTOR"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (KÉK); tft.println ("-Circut Digest"); delay (1800);} void draw_BoxNButtons () {// Rajzolja meg az eredménydobozt tft.fillRect (0, 0, 240, 80, CYAN); // Első oszlop rajzolása tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, FEKETE); tft.fillRect (0, 140, 60, 60, FEKETE); tft.fillRect (0, 80, 60, 60, FEKETE); // Harmadik oszlop rajzolása tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, FEKETE); tft.fillRect (120, 140, 60, 60, FEKETE); tft.fillRect (120, 80, 60, 60, FEKETE); // Secound & negyedik oszlop rajzolása a következőhöz: (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Vízszintes vonalak rajzolása (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, WHITE); // Függőleges vonalak rajzolása (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE); // A billentyűzet címkéinek megjelenítése (int j = 0; j <4; j ++) {esetén (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60*) j)); tft.setTextSize (3); tft.setTextColor (FEHÉR); tft.println (szimbólum [j] ); }}} A kód feltöltése után az enyémként láthatja a kijelzőn futó számológépet, és most elvégezheti az alapvető matematikai számításokat. Érezze jól magát, hogy saját számológépét készítse el az Arduino UNO segítségével.

Ajánlott: