Satura rādītājs:

Arduino TFT LCD skārienekrāna kalkulators: 3 soļi
Arduino TFT LCD skārienekrāna kalkulators: 3 soļi

Video: Arduino TFT LCD skārienekrāna kalkulators: 3 soļi

Video: Arduino TFT LCD skārienekrāna kalkulators: 3 soļi
Video: RAMPS 1.6 - A4988/DRV8825 configuration 2024, Jūlijs
Anonim
Arduino TFT LCD skārienekrāna kalkulators
Arduino TFT LCD skārienekrāna kalkulators

Sveiki, puiši, šajā pamācībā mēs iemācīsimies izveidot kalkulatoru, izmantojot Arduino Uno ar 3,5 collu TFT LCD skārienekrāna displeju. Tāpēc mēs uzrakstīsim kodu un augšupielādēsim to arduino, kas displejā parādīs kalkulatora saskarni un izmantos skārienfunkcijas. sniedz matemātisko pamata izteiksmju rezultātu.

1. darbība. Nepieciešamās lietas

Nepieciešamās lietas
Nepieciešamās lietas
Nepieciešamās lietas
Nepieciešamās lietas

Šim projektam jums būs nepieciešamas šādas lietas: 3,5 collu TFT LCD DISPLAYARDUINO UNO

2. darbība: TFT displeja bibliotēkas instalēšana Arduino IDE

TFT displeja bibliotēkas instalēšana Arduino IDE
TFT displeja bibliotēkas instalēšana Arduino IDE

Mēs izmantojam SPFD5408 bibliotēku:

lai šis arduino kalkulatora kods darbotos. Šī ir modificēta Adafruit bibliotēka, un tā var nevainojami strādāt ar mūsu LCD TFT moduli. Jums ir ļoti svarīgi instalēt šo bibliotēku savā Arduino IDE vai šajā programmā, lai apkopotu bez kļūdām. Lai instalētu šo bibliotēku, varat vienkārši noklikšķināt uz iepriekš esošās saites, kas jūs aizvedīs uz Github lapu. Tur noklikšķiniet uz klona vai lejupielādējiet un atlasiet “Lejupielādēt ZIP”. Tiks lejupielādēts zip fails. Tagad atveriet Arduino IDE un atlasiet Skice -> Iekļaut Librarey -> Pievienot. ZIP bibliotēku. Tiks atvērts pārlūkprogrammas logs, dodieties uz ZIP failu un noklikšķiniet uz “Labi”. Jums vajadzētu pamanīt “Bibliotēka pievienota jūsu bibliotēkām” Arduino apakšējā kreisajā stūrī.

3. darbība: augšupielādējiet kalkulatora kodu

Augšupielādējiet kalkulatora kodu
Augšupielādējiet kalkulatora kodu
Augšupielādējiet kalkulatora kodu
Augšupielādējiet kalkulatora kodu

Pēc bibliotēkas instalēšanas savienojiet displeju ar Arduino un nokopējiet šo kodu un augšupielādējiet to programmā Arduino. bibliotēka#include "SPFD5408_TouchScreen.h"/*_ Bibliotēku beigas _*//*_ Definējiet LCD tapas (esmu piešķīris noklusējuma vērtības) _*/#define YP A1 // jābūt analogajai tapai, izmantojiet apzīmējumu "An"!# definēt XM A2 // jābūt analogajai tapai, izmantojiet apzīmējumu "An"! #define YM 7 // var būt digitālā tapa#definēt XP 6 // var būt digitālā tapa#definēt LCD_CS A3#definēt LCD_CD A2#definēt LCD_WR A1#definēt LCD_RD A0#definēt LCD_RESET A4/*_ Defamācijas beigas _*//*_ Piešķirt nosaukumus krāsām un spiedienam _*/#define WHITE 0x0000 // Black-> White#define YELLOW 0x001F // Blue-> Yellow#define CYAN 0xF800 // Sarkans-> Ciāns#definēt RŪZĪGU 0x07E0 // Zaļš-> Rozā#definēt RED 0x07FF // Ciāns-> Sarkans#definēt GREEN 0xF81F // Rozā-> Zaļš #define BLUE 0xFFE0 // Dzeltens- > Zils#definēt MELNU 0xFFFF // Balts-> Melns#definēt MINPRESSURE 10#definēt MAXPRESSURE 1000/*_ Piešķirts _*//*_ TFT LCD kalibrēšana _*/#definēt TS_MINX 125#definēt TS_MINY 85#definēt TS_MAXX 965#definēt TS_MAXY 905/* _Kalibrēšanas beigas _*/skārienekrāns ts = skārienekrāns (XP, YP, XM, YM, 300); // 300 ir sensitivitāteAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Sāciet saziņu ar LCDString simbolu [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; garš Num1, Num2, Skaitlis; char darbība; Būla rezultāts = nepatiess; void setup () {Serial.begin (9600); // Atkļūdošanai izmantojiet seriālo monitoru tft.reset (); // Vienmēr atiestatīt sākumā tft.begin (0x9341); // Mans LCD izmanto LIL9341 saskarnes draiveri IC tft.setRotation (2); // Es tikko rosinājos tā, lai strāvas ligzda būtu vērsta uz augšu - pēc izvēles tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Sērijas nospiedums (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); ja (rezultāts == true) CalculateResult (); DisplayResult (); kavēšanās (300);} TSPoint waitTouch () {TSPoint p; do {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((p.z MAXPRESSURE)); p.x = karte (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = karte (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Pogas noteikšana 1. slejā {if (Y> 0 && Y <85) // Ja atcelšanas poga tiek nospiesta {Serial.println ("Button Cancel"); Skaitlis = Num1 = Num2 = 0; rezultāts = nepatiess;} ja (Y> 85 && Y <140) // Ja tiek nospiesta poga 1 {Serial.println ("Button 1"); ja (Skaitlis == 0) Skaitlis = 1; cits Skaitlis = (Skaitlis*10) + 1; // Nospiež divreiz}, ja (Y> 140 && Y <192) // Ja tiek nospiesta poga 4 {Serial.println ("Poga 4"); ja (Skaitlis == 0) Skaitlis = 4; cits Skaitlis = (Skaitlis*10) + 4; // Nospiež divreiz}, ja (Y> 192 && Y <245) // Ja tiek nospiesta 7. poga {Serial.println ("7. poga"); ja (Skaitlis == 0) Skaitlis = 7; cits Skaitlis = (Skaitlis*10) + 7; // Divreiz nospiests}} if (X50) // Pogas noteikšana 2. slejā {if (Y> 0 && Y <85) {Serial.println ("Poga 0"); // Poga 0 tiek nospiesta, ja (Skaitlis == 0) Skaitlis = 0; cits Skaitlis = (Skaitlis*10) + 0; // Divreiz nospiests} if (Y> 85 && Y <140) {Serial.println ("Poga 2"); ja (Skaitlis == 0) Skaitlis = 2; cits Skaitlis = (Skaitlis*10) + 2; // Divreiz nospiests} if (Y> 140 && Y <192) {Serial.println ("Poga 5"); ja (Skaitlis == 0) Skaitlis = 5; cits Skaitlis = (Skaitlis*10) + 5; // Nospiests divreiz}, ja (Y> 192 && Y <245) {Serial.println ("8. poga"); ja (Skaitlis == 0) Skaitlis = 8; cits Skaitlis = (Skaitlis*10) + 8; // Nospiests divreiz}} if (X105) // Pogas noteikšana 3. slejā {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = skaitlis; rezultāts = taisnība; } ja (Y> 85 && Y <140) {Serial.println ("Poga 3"); ja (Skaitlis == 0) Skaitlis = 3; cits Skaitlis = (Skaitlis*10) + 3; // Divreiz nospiests} if (Y> 140 && Y <192) {Serial.println ("6. poga"); ja (Skaitlis == 0) Skaitlis = 6; cits Skaitlis = (Skaitlis*10) + 6; // Divreiz nospiests} if (Y> 192 && Y <245) {Serial.println ("Poga 9"); ja (Skaitlis == 0) Skaitlis = 9; cits Skaitlis = (Skaitlis*10) + 9; // Divreiz nospiests}} if (X165) // Pogas noteikšana 3. slejā {Num1 = Number; Skaitlis = 0; tft.setCursor (200, 20); tft.setTextColor (RED); ja (Y> 0 && Y <85) {Serial.println ("Papildinājums"); darbība = 1; tft.println ('+');} ja (Y> 85 && Y <140) {Serial.println ("Atņemšana"); darbība = 2; tft.println ('-');} ja (Y> 140 && Y <192) {Serial.println ("Reizināšana"); darbība = 3; tft.println ('*');} ja (Y> 192 && Y <245) {Serial.println ("Devesion"); darbība = 4; tft.println ('/');} aizkave (300); }} void CalculateResult () {if (action == 1) Number = Num1+Num2; ja (darbība == 2) Skaitlis = Num1-Num2; ja (darbība == 3) Skaitlis = Num1*Num2; ja (darbība == 4) Skaitlis = Num1/Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // notīrīt rezultātu lodziņu tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (BLACK); tft.println (Skaitlis); // atjaunināt jaunu vērtību} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (RED); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("KALKULATORS"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (ZILA); tft.println ("-Circut Digest"); delay (1800);} void draw_BoxNButtons () {// Uzzīmējiet rezultātu lodziņu tft.fillRect (0, 0, 240, 80, CYAN); // Zīmēt pirmo kolonnu tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, BLACK); tft.fillRect (0, 140, 60, 60, BLACK); tft.fillRect (0, 80, 60, 60, BLACK); // Zīmēt trešo kolonnu tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, BLACK); tft.fillRect (120, 140, 60, 60, BLACK); tft.fillRect (120, 80, 60, 60, BLACK); // Zīmēt Secound & Ceturto kolonnu (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Zīmēt horizontālās līnijas (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, WHITE); // Zīmēt vertikālas līnijas (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE); // Parādīt tastatūras etiķetes (int j = 0; j <4; j ++) {priekš (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60*) j)); tft.setTextSize (3); tft.setTextColor (BALTS); tft.println (simbols [j] ); }}} Pēc koda augšupielādes displejā darbosies kā manējais kalkulators, un tagad jūs varat veikt matemātikas pamata aprēķinus. Tāpēc izklaidējieties izveidot savu kalkulatoru, izmantojot Arduino UNO.

Ieteicams: