Innholdsfortegnelse:
- Trinn 1: Ting du trenger
- Trinn 2: Installere TFT -skjermbibliotek i Arduino IDE
- Trinn 3: Last opp kalkulator -koden
Video: Arduino TFT LCD berøringsskjermkalkulator: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Hei Gutter i denne instruksjonene lærer vi hvordan du lager en kalkulator ved hjelp av Arduino Uno med 3,5 TFT LCD berøringsskjerm. Så vi skriver en kode og laster den opp til arduino som viser kalkulatorgrensesnittet på displayet og tar berøringsfunksjonalitet og gi produksjonen av grunnleggende matematiske uttrykk.
Trinn 1: Ting du trenger
For dette prosjektet trenger du følgende ting: 3,5 TFT LCD DISPLAYARDUINO UNO
Trinn 2: Installere TFT -skjermbibliotek i Arduino IDE
Vi bruker SPFD5408 -biblioteket:
for å få denne arduino -kalkulatorkoden til å fungere. Dette er et modifisert bibliotek av Adafruit og kan fungere sømløst med vår LCD TFT -modul. Det er veldig viktig for deg å installere dette biblioteket i Arduino IDE eller dette programmet for å kompilere uten feil. For å installere dette biblioteket, kan du bare klikke på lenken ovenfor som tar deg til en Github -side. Der klikker du på klone eller laster ned og velger "Last ned ZIP". En zip -fil vil bli lastet ned. Nå åpner du Arduino IDE og velger Sketch -> Include Librarey -> Add. ZIP library. Et nettleservindu åpnes, naviger til ZIP -filen og klikk "OK". Du bør legge merke til "Bibliotek lagt til bibliotekene dine" nederst til venstre på Arduino.
Trinn 3: Last opp kalkulator -koden
Etter at du har installert biblioteket, kobler du skjermen til Arduino og kopierer følgende kode og laster den opp til Arduino. bibliotek#inkluderer "SPFD5408_TouchScreen.h"/*_ End of Libraries _*//*_ Definer LCD -pins (jeg har tilordnet standardverdiene) _*/#definer YP A1 // må være en analog pin, bruk "En" notasjon!# definere XM A2 // må være en analog pin, bruk "En" notasjon! #define YM 7 // kan være en digital pin#definere XP 6 // kan være en digital pin#definere LCD_CS A3#definere LCD_CD A2#definere LCD_WR A1#definere LCD_RD A0#definere LCD_RESET A4/*_ Slutt på definisjoner _*//*_ Tilordne navn til farger og trykk _*/#definere HVIT 0x0000 // Svart-> Hvit#definere GUL 0x001F // Blå-> Gul#definere CYAN 0xF800 // Rød-> Cyan#definere ROSE 0x07E0 // Grønn-> Rosa#definere RØD 0x07FF // Cyan-> Rød#definere GRØNN 0xF81F // Rosa-> Grønn #define BLÅ 0xFFE0 // Gul- > Blå#definere SVART 0xFFFF // Hvit-> Svart#definere MINPRESSURE 10#definere MAXPRESSURE 1000/*_ Tildelt _*//*_ Kalibrer TFT LCD _*/#definere TS_MINX 125#definere TS_MINY 85#definere TS_MAXX 965#definere TS_MAXY 905/* _ Slutt på kalibrering _*/TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 er sensitivitetenAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Start kommunikasjonen med LCDString -symbolet [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; lang Num1, Num2, Number; røye handling; boolsk resultat = usant; ugyldig oppsett () {Serial.begin (9600); // Bruk seriell skjerm for feilsøking av tft.reset (); // Tilbakestill alltid ved start tft.begin (0x9341); // LCD -skjermen min bruker LIL9341 Interface driver IC tft.setRotation (2); // Jeg har nettopp roated slik at strømkontakten vender opp - valgfritt tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); forsinkelse (300);} TSPoint waitTouch () {TSPoint p; gjør {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } mens ((s. MAXPRESSURE)); p.x = kart (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = map (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Detecting Buttons on Column 1 {if (Y> 0 && Y <85) // If cancel button is try {Serial.println ("Button Cancel"); Tall = Num1 = Num2 = 0; result = false;} hvis (Y> 85 && Y <140) // Hvis knapp 1 trykkes {Serial.println ("Knapp 1"); hvis (tall == 0) tall = 1; annet Nummer = (Antall*10) + 1; // Trykk to ganger} hvis (Y> 140 && Y <192) // Hvis knapp 4 trykkes på {Serial.println ("knapp 4"); hvis (tall == 0) tall = 4; annet tall = (tall*10) + 4; // Trykk to ganger} hvis (Y> 192 && Y <245) // Hvis knapp 7 trykkes på {Serial.println ("knapp 7"); hvis (tall == 0) tall = 7; annet Nummer = (Antall*10) + 7; // Trykket to ganger}} hvis (X50) // Oppdager knapper på kolonne 2 {if (Y> 0 && Y <85) {Serial.println ("Knapp 0"); // Knapp 0 trykkes hvis (tall == 0) tall = 0; annet tall = (tall*10) + 0; // Trykket to ganger} hvis (Y> 85 && Y <140) {Serial.println ("Knapp 2"); hvis (tall == 0) tall = 2; annet Nummer = (Antall*10) + 2; // Trykt to ganger} hvis (Y> 140 && Y <192) {Serial.println ("Knapp 5"); hvis (tall == 0) tall = 5; annet Nummer = (Antall*10) + 5; // Trykket to ganger} hvis (Y> 192 && Y <245) {Serial.println ("Knapp 8"); hvis (tall == 0) tall = 8; annet tall = (tall*10) + 8; // Trykket to ganger}} hvis (X105) // Oppdager knapper på kolonne 3 {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = Antall; resultat = sant; } hvis (Y> 85 && Y <140) {Serial.println ("Knapp 3"); hvis (tall == 0) tall = 3; annet Nummer = (Antall*10) + 3; // Trykket to ganger} hvis (Y> 140 && Y <192) {Serial.println ("Knapp 6"); hvis (tall == 0) tall = 6; annet Nummer = (Antall*10) + 6; // Trykt to ganger} hvis (Y> 192 && Y <245) {Serial.println ("Knapp 9"); hvis (tall == 0) tall = 9; annet tall = (tall*10) + 9; // Trykk to ganger}} hvis (X165) // Oppdager knapper på kolonne 3 {Num1 = Number; Antall = 0; tft.setCursor (200, 20); tft.setTextColor (RØD); hvis (Y> 0 && Y <85) {Serial.println ("tillegg"); handling = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Subtraksjon"); handling = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Multiplikasjon"); handling = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); handling = 4; tft.println ('/');} forsinkelse (300); }} void CalculateResult () {if (action == 1) Number = Num1+Num2; if (action == 2) Number = Num1-Num2; hvis (handling == 3) Tall = Num1*Num2; hvis (handling == 4) Antall = Num1/Num2; } ugyldig DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // tøm resultatboksen tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (SVART); tft.println (Antall); // oppdater ny verdi} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (RØD); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("CALCULATOR"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (BLÅ); tft.println ("-Circut Digest"); forsinkelse (1800);} void draw_BoxNButtons () {// Tegn resultatboksen tft.fillRect (0, 0, 240, 80, CYAN); // Tegn første kolonne tft.fillRect (0, 260, 60, 60, RØD); tft.fillRect (0, 200, 60, 60, SVART); tft.fillRect (0, 140, 60, 60, SVART); tft.fillRect (0, 80, 60, 60, SVART); // Tegn tredje kolonne tft.fillRect (120, 260, 60, 60, GRØNN); tft.fillRect (120, 200, 60, 60, SVART); tft.fillRect (120, 140, 60, 60, SVART); tft.fillRect (120, 80, 60, 60, SVART); // Tegn sekund og fjerde kolonne for (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLÅ); tft.fillRect (60, b, 60, 60, SVART);} // Tegn horisontale linjer for (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, WHITE); // Tegn vertikale linjer for (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE); // Vis tastaturetiketter for (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 (HVIT); tft.println (symbol [j] ); }}} Etter at du har lastet opp koden, kan du se kalkulatoren kjøre på skjermen som min, og nå kan du utføre grunnleggende matematikkberegninger på dette. Så gøy å lage din egen kalkulator med Arduino UNO.
Anbefalt:
Enkel overvåking av luftkvalitet med TFT LCD-skjerm- Ameba Arduino: 3 trinn
Enkel luftkvalitetsovervåking med TFT LCD-skjerm-Ameba Arduino: Innledning Nå som de fleste blir hjemme for å unngå nær kontakt med potensiell COVID-19-virusbærer, blir luftkvalitet en viktig faktor for folks velvære, spesielt i tropiske land der å bruke air-con er et must i løpet av dagen
Arduino berøringsskjermkalkulator: 7 trinn
Arduino berøringsskjermkalkulator: Hei! Dette er et prosjekt for å lage en berøringsskjermkalkulator med en Arduino Uno og et TFT LCD -skjerm. Jeg kom på konseptet for programmeringsklassen min i hjemmeskolen, og erfaringen med å bygge dette prosjektet var veldig interessant. Denne kalkulatoren kan
I2C / IIC LCD -skjerm - Bruk en SPI LCD til I2C LCD -skjermen Bruke SPI til IIC -modulen med Arduino: 5 trinn
I2C / IIC LCD -skjerm | Bruk en SPI LCD til I2C LCD -skjermen Bruke SPI til IIC -modulen med Arduino: Hei folkens siden en vanlig SPI LCD 1602 har for mange ledninger å koble til, så det er veldig vanskelig å koble den til arduino, men det er en modul tilgjengelig på markedet som kan konverter SPI -skjerm til IIC -skjerm, så da trenger du bare å koble til 4 ledninger
I2C / IIC LCD -skjerm - Konverter en SPI LCD til I2C LCD -skjermen: 5 trinn
I2C / IIC LCD -skjerm | Konverter en SPI LCD til I2C LCD -skjermen: bruk av spi lcd -skjerm trenger for mange tilkoblinger å gjøre, noe som er veldig vanskelig å gjøre, så jeg fant en modul som kan konvertere i2c lcd til spi lcd, så la oss komme i gang
Hvordan lage sanntidsklokke ved hjelp av Arduino og TFT -skjerm - Arduino Mega RTC med 3,5 tommers TFT -skjerm: 4 trinn
Hvordan lage sanntidsklokke ved hjelp av Arduino og TFT-skjerm | Arduino Mega RTC med 3,5 tommers TFT-skjerm: Besøk min Youtube-kanal. Introduksjon:- I dette innlegget skal jeg lage “Real time Clock” ved å bruke 3,5 tommers TFT touch LCD, Arduino Mega 2560 og DS3231 RTC-modul …. Før du starter … sjekk videoen fra YouTube-kanalen min..Merk:- Hvis du bruker Arduin