Sadržaj:
- Korak 1: Stvari koje trebate
- Korak 2: Instaliranje knjižnice TFT zaslona u Arduino IDE
- Korak 3: Prenesite kôd kalkulatora
Video: Arduino TFT LCD kalkulator zaslona osjetljivog na dodir: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Bok dečki, u ovim uputama naučit ćemo kako napraviti kalkulator koristeći Arduino Uno sa 3,5 TFT LCD zaslonom osjetljivim na dodir. Dakle, napisat ćemo kôd i prenijeti ga na arduino koji će prikazati sučelje kalkulatora na zaslonu te će uzeti funkcije dodira i dati izlaz osnovnih matematičkih izraza.
Korak 1: Stvari koje trebate
Za ovaj projekt trebat će vam sljedeće: 3.5 TFT LCD DISPLAYARDUINO UNO
Korak 2: Instaliranje knjižnice TFT zaslona u Arduino IDE
Koristimo biblioteku SPFD5408:
kako bi ovaj kod arduino kalkulatora funkcionirao. Ovo je modificirana biblioteka Adafruit -a i može besprijekorno raditi s našim LCD TFT modulom. Za vas je vrlo važno instalirati ovu knjižnicu u svoj Arduino IDE ili ovaj program za kompajliranje bez ikakvih grešaka. Da biste instalirali ovu biblioteku, jednostavno kliknite gornju vezu koja će vas odvesti na stranicu Github. Tamo kliknite na kloniranje ili preuzimanje i odaberite "Preuzmi ZIP". Zip datoteka će se preuzeti. Sada otvorite Arduino IDE i odaberite Sketch -> Include Librarey -> Add. ZIP library. Otvorit će se prozor preglednika, dođite do ZIP datoteke i kliknite "U redu". Trebali biste primijetiti "Knjižnica dodana vašim knjižnicama" u donjem lijevom kutu Arduina.
Korak 3: Prenesite kôd kalkulatora
Nakon instaliranja knjižnice, spojite zaslon na Arduino i kopirajte sljedeći kôd te ga prenesite na Arduino./*_Import Libraries _*/#include "SPFD5408_Adafruit_GFX.h" // Core graphics library#include "SPFD5408_Adafruit_TFTLCD.h" // Specifično za hardver library#include "SPFD5408_TouchScreen.h"/*_ End of Libraries _*//*_ Definirajte LCD pinove (ja sam dodijelio zadane vrijednosti) _*/#definirajte YP A1 // mora biti analogni pin, koristite oznaku "An"! define XM A2 // mora biti analogni pin, koristiti oznaku "An"! #define YM 7 // može biti digitalni pin#definirati XP 6 // može biti digitalni pin#definirati LCD_CS A3#definirati LCD_CD A2#definirati LCD_WR A1#definirati LCD_RD A0#definirati LCD_RESET A4/*_ Kraj defankcija _*//*_ Dodijeliti imena bojama i pritisku _*/#definirati BIJELO 0x0000 // Crno-> Bijelo#definirati ŽUTO 0x001F // Plavo-> Žuto#definirati CYAN 0xF800 // Crveno-> Cijan#definiraj PINK 0x07E0 // Zeleno-> Ružičasto#definiraj CRVENO 0x07FF // Cijan-> Crveno#definiraj ZELENO 0xF81F // Ružičasto-> Zeleno#definiraj PLAVO 0xFFE0 // Žuto- > Plavo#definiraj CRNO 0xFFFF // Bijelo-> Crno#definiraj MINPRESSURE 10#definiraj MAXPRESSURE 1000/*_ Dodijeljeno _*//*_ Kalibriraj TFT LCD _*/#definiraj TS_MINX 125#definiraj TS_MINY 85#definiraj TS_MAXX 965#definiraj TS_MAXY 905* _ Kraj kalibracije _*/TouchScreen ts = Zaslon osjetljiv na dodir (XP, YP, XM, YM, 300); // 300 je osjetljivostAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Započni komunikaciju sa simbolom LCDString [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; dugo Num1, Num2, Broj; akcija char; boolean result = false; void setup () {Serial.begin (9600); // Koristi serijski monitor za ispravljanje pogrešaka tft.reset (); // Uvijek resetiraj pri pokretanju tft.begin (0x9341); // Moj LCD koristi IC upravljački program sučelja LIL9341 tft.setRotation (2); // Upravo sam se okrenuo tako da utičnica za napajanje gleda prema gore - opcionalno tft.fillScreen (BIJELO); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serijski.ispis (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 = karta (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = karta (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Otkrivanje gumba u stupcu 1 {if (Y> 0 && Y <85) // Ako se pritisne gumb Cancel {Serial.println ("Button Cancel"); Broj = Num1 = Num2 = 0; result = false;} if (Y> 85 && Y <140) // Ako je pritisnuta tipka 1 {Serial.println ("tipka 1"); if (Broj == 0) Broj = 1; else Number = (Broj*10) + 1; // Dvaput pritisnut} if (Y> 140 && Y <192) // Ako je pritisnuta tipka 4 {Serial.println ("Tipka 4"); if (Broj == 0) Broj = 4; else Number = (Broj*10) + 4; // Dvaput pritisnut} if (Y> 192 && Y <245) // Ako je pritisnuta tipka 7 {Serial.println ("Tipka 7"); if (Broj == 0) Broj = 7; else Number = (Broj*10) + 7; // Dvaput pritisnut}} if (X50) // Otkrivanje gumba u stupcu 2 {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Tipka 0 je pritisnuta ako (Broj == 0) Broj = 0; else Number = (Broj*10) + 0; // Dvaput pritisnuto} if (Y> 85 && Y <140) {Serial.println ("Gumb 2"); if (Broj == 0) Broj = 2; else Number = (Broj*10) + 2; // Dvaput pritisnuto} if (Y> 140 && Y <192) {Serial.println ("Button 5"); if (Broj == 0) Broj = 5; else Number = (Broj*10) + 5; // Pritisnuti twic} if (Y> 192 && Y <245) {Serial.println ("Gumb 8"); if (Broj == 0) Broj = 8; else Number = (Broj*10) + 8; // Pritisnuti twic}} if (X105) // Otkrivanje gumba u stupcu 3 {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = Broj; rezultat = istina; } if (Y> 85 && Y <140) {Serial.println ("Gumb 3"); if (Broj == 0) Broj = 3; else Number = (Broj*10) + 3; // Dvaput pritisnuto} if (Y> 140 && Y <192) {Serial.println ("Gumb 6"); if (Broj == 0) Broj = 6; else Number = (Broj*10) + 6; // Dvaput pritisnuto} if (Y> 192 && Y <245) {Serial.println ("Button 9"); if (Broj == 0) Broj = 9; else Number = (Broj*10) + 9; // Dvaput pritisnuto}} if (X165) // Otkrivanje gumba u stupcu 3 {Num1 = Number; Broj = 0; tft.setCursor (200, 20); tft.setTextColor (CRVENO); if (Y> 0 && Y <85) {Serial.println ("Dodatak"); akcija = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Oduzimanje"); akcija = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Množenje"); akcija = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); akcija = 4; tft.println ('/');} kašnjenje (300); }} void CalculateResult () {if (akcija == 1) Broj = Num1+Num2; if (akcija == 2) Broj = Num1-Num2; if (akcija == 3) Broj = Num1*Num2; if (akcija == 4) Broj = Num1/Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // očisti okvir rezultata tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (CRNO); tft.println (Broj); // ažuriranje nove vrijednosti} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (CRVENO); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("KALKULATOR"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (PLAVO); tft.println ("-Kružni sažetak"); delay (1800);} void draw_BoxNButtons () {// Nacrtaj okvir s rezultatima tft.fillRect (0, 0, 240, 80, CYAN); // Nacrtaj prvi stupac tft.fillRect (0, 260, 60, 60, CRVENO); tft.fillRect (0, 200, 60, 60, CRNO); tft.fillRect (0, 140, 60, 60, CRNO); tft.fillRect (0, 80, 60, 60, CRNO); // Nacrtaj treći stupac tft.fillRect (120, 260, 60, 60, ZELENO); tft.fillRect (120, 200, 60, 60, CRNO); tft.fillRect (120, 140, 60, 60, CRNO); tft.fillRect (120, 80, 60, 60, CRNO); // Nacrtajte drugi i četvrti stupac za (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, PLAVO); tft.fillRect (60, b, 60, 60, BLACK);} // Crtanje vodoravnih linija za (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, BIJELO); // Nacrtajte okomite crte za (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, BIJELO); // Prikaz oznaka tipkovnice za (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 (BIJELO); tft.println (simbol [j] ); }}} Nakon što učitate kôd, moći ćete vidjeti kako kalkulator radi na vašem zaslonu kao moj, a sada možete izvesti osnovne matematičke izračune o tome. Zato se zabavite izrađujući vlastiti kalkulator s Arduino UNO.
Preporučeni:
Zakretanje Raspberry Pi zaslona i zaslona osjetljivog na dodir: 4 koraka
Rotiranje Raspberry Pi zaslona i zaslona osjetljivog na dodir: Ovo je osnovno uputstvo koje će vam pokazati kako rotirati unos zaslona i zaslona osjetljivog na dodir za bilo koji Raspberry Pi koji radi na Buster Raspbian operativnom sustavu, ali ovu metodu koristim od Jessie. Slike korištene u ovome su s Raspberry Pi
Pokretanje bez zaslona / zaslona (bez glave) na Raspberry Pi ili drugim računalima temeljenim na Linuxu / unixu: 6 koraka
Pokretanje bez zaslona / zaslona (bez glave) na Raspberry Pi ili drugim računalima sa sustavom Linux / unix: Kada većina ljudi kupi Raspberry PI, misle da im je potreban zaslon računala. Ne trošite novac na nepotrebne računalne monitore i tipkovnice. Ne gubite vrijeme na premještanje tipkovnica i monitora između računala. Ne vežite televizor kad nema
Raspberry Pi Hi-Fi audio strimer s kontrolom zaslona osjetljivim na dodir i Max2Play: 9 koraka
Raspberry Pi Hi-Fi audio streamer s kontrolom zaslona osjetljivim na dodir i Max2Play: Ovdje ćemo detaljno opisati montažu novog Raspberry Pi Touch streamera. Odgovarajući paket sa svim potrebnim komponentama za ovu postavku može se pronaći u Max2Play trgovini. Ako već posjedujete ove dijelove, kućište se može kupiti i zasebno
Arduino kalkulator zaslona osjetljivog na dodir: 7 koraka
Arduino kalkulator zaslona osjetljivog na dodir: Zdravo! Ovo je projekt izrade kalkulatora ekrana osjetljivog na dodir pomoću Arduino Uno i TFT LCD ekrana. Osmislio sam koncept za programiranje kod kuće, a iskustvo u izgradnji ovog projekta bilo je vrlo zanimljivo. Ovaj kalkulator može
Kako napraviti sat u stvarnom vremenu pomoću Arduino i TFT zaslona - Arduino Mega RTC s 3,5 -inčnim TFT zaslonom: 4 koraka
Kako napraviti sat u stvarnom vremenu koristeći Arduino i TFT zaslon | Arduino Mega RTC sa 3,5-inčnim TFT zaslonom: Posjetite moj Youtube kanal. Uvod:- U ovom postu napravit ću "Sat u stvarnom vremenu" koristeći 3,5-inčni TFT LCD zaslon osjetljiv na dodir, Arduino Mega 2560 i DS3231 RTC modul … .Prije početka … provjerite videozapis s mog YouTube kanala..Napomena:- Ako koristite Arduin