Sisällysluettelo:
- Vaihe 1: Tarvitsemasi asiat
- Vaihe 2: Asenna TFT -näyttökirjasto Arduino IDE: hen
- Vaihe 3: Lataa laskimen koodi
Video: Arduino TFT LCD -kosketusnäyttölaskin: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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
Tätä projektia varten tarvitset seuraavat asiat: 3,5 TFT LCD DISPLAYARDUINO UNO
Vaihe 2: Asenna TFT -näyttökirjasto 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
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:
Sormenjälkimoduuli + STONE TFT-LCD: 3 vaihetta
Sormenjälkimoduuli + STONE TFT-LCD: Suunnittelin tässä kuussa, että kehitän sormenjälkilukon oven lukitusprojektin. Kun valitsin sormenjälkien tunnistusmoduulin, projekti keskeytettiin. Ajattelin kuitenkin, että koska sormenjälkien tunnistusmoduuli oli ostettu, yksinkertaistan
Jääkaapin ohjaus Tft LCD -näytöllä: 6 vaihetta
Jääkaapin ohjaus Tft LCD -laitteella: Tekniikan jatkuvan parantamisen myötä kodinkoneemme ovat yhä toimivampia ja helpompia käyttää. Elektroniikan harrastajana olen kiinnostunut kodinkoneiden ohjaamisesta. Jääkaapimme ei ole mahdollista kenenkään ihmisen koneen kanssa
Yksinkertainen ilmanlaadun valvonta TFT-LCD-näytöllä- Ameba Arduino: 3 vaihetta
Yksinkertainen ilmanlaadun valvonta TFT LCD -näytöllä-Ameba Arduino: Johdanto Nyt kun useimmat ihmiset jäävät kotiin välttämään läheistä kosketusta mahdolliseen COVID-19-viruksen kantajaan, ilmanlaadusta tulee tärkeä tekijä ihmisten hyvinvoinnille, etenkin trooppisissa maissa, joissa ilmastointilaitteiden käyttö on pakollista
Visuino LCD -TFT -näytön käyttö ST7735: 9 vaihetta
Visuino LCD TFT ST7735: n käyttäminen: Tässä opetusohjelmassa käytämme LCD TFT ST7735 -laitetta, joka on yhdistetty Arduino UNO: hon ja Visuinoon kuvan ja satunnaislukujen näyttämiseksi
Reaaliaikaisen kellon tekeminen Arduinon ja TFT -näytön avulla - Arduino Mega RTC 3,5 tuuman TFT -näytöllä: 4 vaihetta
Reaaliaikaisen kellon tekeminen Arduinon ja TFT-näytön avulla | Arduino Mega RTC 3,5 tuuman TFT-näytöllä: Vieraile Youtube-kanavallani. 2560 ja DS3231 RTC-moduuli…. Ennen kuin aloitat… tarkista YouTube-kanavani video. Huomautus:- Jos käytät Arduinia