Sisällysluettelo:

Arduino TFT LCD -kosketusnäyttölaskin: 3 vaihetta
Arduino TFT LCD -kosketusnäyttölaskin: 3 vaihetta

Video: Arduino TFT LCD -kosketusnäyttölaskin: 3 vaihetta

Video: Arduino TFT LCD -kosketusnäyttölaskin: 3 vaihetta
Video: Особенности использования TFT Shield для Arduino Uno 2024, Heinäkuu
Anonim
Arduino TFT LCD -kosketusnäyttölaskin
Arduino TFT LCD -kosketusnäyttölaskin

Hei kaverit, tässä oppaassa opimme tekemään laskimen Arduino Unon avulla 3,5 tuuman TFT LCD -kosketusnäytöllä. Joten kirjoitamme koodin ja lähetämme sen arduinoon, joka näyttää laskimen käyttöliittymän näytöllä ja ottaa kosketustoiminnot ja antaa matemaattisten peruslausekkeiden tuloksen.

Vaihe 1: Tarvitsemasi asiat

Tarvitsemasi asiat
Tarvitsemasi asiat
Tarvitsemasi asiat
Tarvitsemasi asiat

Tätä projektia varten tarvitset seuraavat asiat: 3,5 TFT LCD DISPLAYARDUINO UNO

Vaihe 2: Asenna TFT -näyttökirjasto Arduino IDE: hen

TFT -näyttökirjaston asentaminen Arduino IDE: hen
TFT -näyttökirjaston asentaminen Arduino IDE: hen

Käytämme SPFD5408 -kirjastoa:

saada tämä arduino -laskimen koodi toimimaan. Tämä on modifioitu Adafruit -kirjasto, joka voi toimia saumattomasti LCD -TFT -moduulimme kanssa. On erittäin tärkeää, että asennat tämän kirjaston Arduino IDE -laitteeseesi tai tähän ohjelmaan, jotta voit kääntää sen ilman virheitä. Jos haluat asentaa tämän kirjaston, napsauta yllä olevaa linkkiä, joka vie sinut Github -sivulle. Napsauta siellä kloonausta tai lataa ja valitse "Lataa ZIP". Zip -tiedosto ladataan. Avaa nyt Arduino IDE ja valitse Luonnos -> Sisällytä Librarey -> Lisää. ZIP -kirjasto. Selainikkuna avautuu, siirry ZIP -tiedostoon ja napsauta "OK". Sinun pitäisi huomata "Kirjasto lisätty kirjastoihisi" Arduinon vasemmassa alakulmassa.

Vaihe 3: Lataa laskimen koodi

Lataa laskimen koodi
Lataa laskimen koodi
Lataa laskimen koodi
Lataa laskimen koodi

Kun olet asentanut kirjaston, yhdistä näyttö Arduinoon ja kopioi seuraava koodi ja lataa se Arduinoon. kirjasto#include "SPFD5408_TouchScreen.h"/*_ Kirjastojen loppu _*//*_ Määritä LCD -nastat (olen määrittänyt oletusarvot) _*/#define YP A1 // on oltava analoginen nasta, käytä "An" -merkintää!# define XM A2 // on oltava analoginen pin, käytä "An" -merkintää! #define YM 7 // voi olla digitaalinen pin#define XP 6 // voi olla digitaalinen pin#define LCD_CS A3#define LCD_CD A2#define LCD_WR A1#määritä LCD_RD A0#määritä LCD_RESET A4/*_ Epäonnistumisten loppu _*//*_ Määritä nimet väreille ja paineille _*/#määritä VALKOINEN 0x0000 // Musta-> Valkoinen#määritä KELTAINEN 0x001F // Sininen-> keltainen#määritä CYAN 0xF800 // Punainen-> Syaani#määritä PINK 0x07E0 // Vihreä-> Vaaleanpunainen#määritä PUNAINEN 0x07FF // Syaani-> Punainen#määritä VIHREÄ 0xF81F // Vaaleanpunainen-> Vihreä #määrittele SININEN 0xFFE0 // Keltainen- > Sininen#määritä MUSTA 0xFFFF // Valkoinen-> Musta#määritä MINPRESSURE 10#define MAXPRESSURE 1000/*_ Määritetty _*//*_ Kalibroi TFT-nestekidenäyttö _*/#define TS_MINX 125#define TS_MINY 85#define TS_MAXX 965#define TS_MAXY 905/* _Kalibroinnin loppu _*/Kosketusnäyttö ts = Kosketusnäyttö (XP, YP, XM, YM, 300); // 300 on herkkyysAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Aloita viestintä LCDString -symbolilla [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; pitkä Num1, Num2, Number; char -toiminta; boolen tulos = false; void setup () {Serial.begin (9600); // Käytä sarjamonitoria virheenkorjaukseen tft.reset (); // Nollaa aina alussa tft.begin (0x9341); // Nestekidenäytöni käyttää LIL9341 -liitäntäohjainta IC tft.setRotation (2); // Paistoin juuri niin, että virtaliitin on ylöspäin - valinnainen tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Sarjanjälki (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); delay (300);} TSPoint waitTouch () {TSPoint p; tee {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((s. MAXPRESSURE)); p.x = kartta (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = kartta (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Tunnistuspainikkeet sarakkeessa 1 {if (Y> 0 && Y <85) // Jos peruutuspainiketta painetaan {Serial.println ("Button Cancel"); Luku = Num1 = Num2 = 0; result = false;} if (Y> 85 && Y <140) // Jos painiketta 1 painetaan {Serial.println ("Button 1"); jos (luku == 0) luku = 1; else Luku = (luku*10) + 1; // Painamalla kahdesti} if (Y> 140 && Y <192) // Jos painiketta 4 painetaan {Serial.println ("Button 4"); jos (luku == 0) luku = 4; else Luku = (luku*10) + 4; // Painamalla kahdesti} if (Y> 192 && Y <245) // Jos painiketta 7 painetaan {Serial.println ("Button 7"); jos (luku == 0) luku = 7; else Luku = (luku*10) + 7; // Painamalla kahdesti}} if (X50) // Painikkeiden havaitseminen sarakkeessa 2 {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Painiketta 0 painetaan, jos (luku == 0) numero = 0; else Luku = (luku*10) + 0; // Painamalla kahdesti} if (Y> 85 && Y <140) {Serial.println ("Button 2"); jos (luku == 0) luku = 2; else Luku = (luku*10) + 2; // Painamalla kahdesti} if (Y> 140 && Y <192) {Serial.println ("Button 5"); jos (luku == 0) luku = 5; muu Luku = (luku*10) + 5; // Painamalla kahdesti} if (Y> 192 && Y <245) {Serial.println ("Button 8"); jos (luku == 0) luku = 8; muu Luku = (luku*10) + 8; // Painamalla kahdesti}} if (X105) // Painikkeiden havaitseminen sarakkeessa 3 {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = luku; tulos = totta; } if (Y> 85 && Y <140) {Serial.println ("Button 3"); jos (luku == 0) luku = 3; else Luku = (luku*10) + 3; // Painamalla kahdesti} if (Y> 140 && Y <192) {Serial.println ("Button 6"); jos (luku == 0) luku = 6; muu Luku = (luku*10) + 6; // Painamalla kahdesti} if (Y> 192 && Y <245) {Serial.println ("Button 9"); jos (luku == 0) luku = 9; muu Luku = (luku*10) + 9; // Painamalla kahdesti}} if (X165) // Tunnistuspainikkeet sarakkeessa 3 {Num1 = Number; Luku = 0; tft.setCursor (200, 20); tft.setTextColor (PUNAINEN); if (Y> 0 && Y <85) {Serial.println ("Lisäys"); toiminta = 1; tft.println ('+');} jos (Y> 85 && Y <140) {Serial.println ("Vähennys"); toiminta = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Kertolasku"); toiminta = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); toiminta = 4; tft.println ('/');} viive (300); }} mitätön CalculateResult () {if (action == 1) Number = Num1+Num2; jos (toiminta == 2) luku = numero1-numero2; jos (toiminta == 3) luku = numero1*numero2; jos (toiminta == 4) luku = numero1/numero2; } mitätön DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // tyhjennä tulosruutu tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (MUSTA); tft.println (luku); // päivitä uusi arvo} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (PUNAINEN); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("LASKIN"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (SININEN); tft.println ("-Circut Digest"); delay (1800);} void draw_BoxNButtons () {// Piirrä tuloslaatikko tft.fillRect (0, 0, 240, 80, CYAN); // Piirrä ensimmäinen sarake tft.fillRect (0, 260, 60, 60, PUNAINEN); tft.fillRect (0, 200, 60, 60, MUSTA); tft.fillRect (0, 140, 60, 60, MUSTA); tft.fillRect (0, 80, 60, 60, MUSTA); // Piirrä kolmas sarake tft.fillRect (120, 260, 60, 60, VIHREÄ); tft.fillRect (120, 200, 60, 60, MUSTA); tft.fillRect (120, 140, 60, 60, MUSTA); tft.fillRect (120, 80, 60, 60, MUSTA); // Piirrä Secound & neljäs sarake kohteelle (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Piirrä vaakasuorat viivat (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, WHITE); // Piirrä pystysuoria viivoja (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE); // Näyttää näppäimistön otsikot kohteelle (int j = 0; j <4; j ++) {for (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60*) j)); tft.setTextSize (3); tft.setTextColor (VALKOINEN); tft.println (symboli [j] ); }}} Kun olet ladannut koodin, näet laskimen käynnissä näytölläsi omana ja voit nyt suorittaa matematiikan peruslaskut. Joten pidä hauskaa tehdä oma laskin Arduino UNO: n avulla.

Suositeltava: