Sadržaj:
- Korak 1: Stvari koje trebate
- Korak 2: Instaliranje TFT Display Library u Arduino IDE
- Korak 3: Otpremite kôd kalkulatora
Video: Arduino TFT LCD kalkulator ekrana osjetljivog na dodir: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Zdravo dečki, u ovim uputama naučit ćemo kako napraviti kalkulator pomoću Arduino Uno sa 3,5 TFT LCD ekranom osjetljivim na dodir. Zato ćemo napisati kôd i prenijeti ga na arduino koji će prikazati sučelje kalkulatora na ekranu i preuzeti funkcije dodira i dati izlaz osnovnih matematičkih izraza.
Korak 1: Stvari koje trebate
Za ovaj projekat trebat će vam sljedeće: 3.5 TFT LCD DISPLAYARDUINO UNO
Korak 2: Instaliranje TFT Display Library u Arduino IDE
Koristimo biblioteku SPFD5408:
kako bi ovaj kod arduino kalkulatora funkcionirao. Ovo je modifikovana biblioteka Adafruit -a i može besprekorno raditi sa našim LCD TFT modulom. Za vas je vrlo važno da instalirate ovu biblioteku u svoj Arduino IDE ili ovaj program za kompajliranje bez greške. 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 "Biblioteka je dodana vašim bibliotekama" u donjem lijevom kutu Arduina.
Korak 3: Otpremite kôd kalkulatora
Nakon instaliranja biblioteke, 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"/*_ Kraj biblioteka _*//*_ 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#define 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 = TouchScreen (XP, YP, XM, YM, 300); // 300 je osjetljivostAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Započni komunikaciju sa LCDString simbolom [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; long Num1, Num2, Broj; char action; boolean result = false; void setup () {Serial.begin (9600); // Koristi serijski monitor za otklanjanje grešaka tft.reset (); // Uvijek resetiraj pri pokretanju tft.begin (0x9341); // Moj LCD koristi LIL9341 upravljački program sučelja IC 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.print (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 = mapa (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = mapa (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Otkrivanje dugmadi u stupcu 1 {if (Y> 0 && Y <85) // Ako se pritisne dugme Cancel {Serial.println ("Button Cancel"); Broj = Num1 = Num2 = 0; result = false;} if (Y> 85 && Y <140) // Ako je pritisnuto dugme 1 {Serial.println ("dugme 1"); if (Broj == 0) Broj = 1; else Number = (Broj*10) + 1; // dvaput pritisnuto} if (Y> 140 && Y <192) // Ako je pritisnuto dugme 4 {Serial.println ("dugme 4"); if (Broj == 0) Broj = 4; else Number = (Broj*10) + 4; // dvaput pritisnuto} if (Y> 192 && Y <245) // Ako je pritisnuto dugme 7 {Serial.println ("dugme 7"); if (Broj == 0) Broj = 7; else Number = (Broj*10) + 7; // Dvaput pritisnuto}} if (X50) // Otkrivanje dugmadi 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 ("Button 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 ("Button 8"); if (Broj == 0) Broj = 8; else Number = (Broj*10) + 8; // Pritisnuti twic}} if (X105) // Otkrivanje dugmadi u koloni 3 {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = Broj; rezultat = istina; } if (Y> 85 && Y <140) {Serial.println ("Dugme 3"); if (Broj == 0) Broj = 3; else Number = (Broj*10) + 3; // Dvaput pritisnuto} if (Y> 140 && Y <192) {Serial.println ("Dugme 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 dugmadi 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 ("-Circular Digest"); delay (1800);} void draw_BoxNButtons () {// Nacrtaj okvir rezultata tft.fillRect (0, 0, 240, 80, CYAN); // Crtanje prve kolone tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, CRNO); tft.fillRect (0, 140, 60, 60, CRNO); tft.fillRect (0, 80, 60, 60, CRNO); // Crtanje treće kolone 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 drugu i četvrtu kolonu 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); // Crtanje okomitih linija za (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, BIJELO); // Prikaz oznaka tastature za (int j = 0; j <4; j ++) {za (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 učitavanja koda moći ćete vidjeti kako kalkulator radi na vašem ekranu kao moj, a sada možete izvršiti osnovne matematičke proračune o tome. Zato se zabavite izrađujući vlastiti kalkulator s Arduino UNO.
Preporučuje se:
Pokretanje bez ekrana / ekrana (bez glave) na Raspberry Pi -u ili drugim Linux / unix računarima: 6 koraka
Pokretanje bez ekrana / ekrana (bez glave) na Raspberry Pi -u ili drugim računarima zasnovanim na Linux / unix -u: Kada većina ljudi kupi Raspberry PI, misle da im je potreban ekran računara. Ne trošite novac na nepotrebne računarske ekrane i tastature. Ne gubite vreme pomeranjem tastature i monitora između računara. Ne vežite televizor kada nema
Raspberry Pi Hi-Fi audio strimer sa kontrolom ekrana osjetljivim na dodir i Max2Play: 9 koraka
Raspberry Pi Hi-Fi audio strimer sa kontrolom ekrana osjetljivim na dodir i Max2Play: Ovdje ćemo detaljno opisati montažu novog Raspberry Pi Streamera na dodir. 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 ekrana osjetljivog na dodir: 7 koraka
Arduino kalkulator ekrana osjetljivog na dodir: Zdravo! Ovo je projekt izrade kalkulatora ekrana osjetljivog na dodir pomoću Arduino Uno i TFT LCD ekrana. Došao sam do koncepta za svoj čas programiranja 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 ekrana - Arduino Mega RTC sa 3,5 -inčnim TFT ekranom: 4 koraka
Kako napraviti sat u stvarnom vremenu koristeći Arduino i TFT ekran | Arduino Mega RTC sa 3,5-inčnim TFT ekranom: Posjetite moj Youtube kanal. Uvod:- U ovom postu ću napraviti „Sat u stvarnom vremenu“koristeći 3,5-inčni TFT LCD ekran osjetljiv na dodir, Arduino Mega 2560 i DS3231 RTC modul … .Prije početka … provjerite video sa mog YouTube kanala..Napomena:- Ako koristite Arduin
Zagrli & Robot zakrpa osjetljiva na dodir osjetljiva na dodir: 10 koraka (sa slikama)
Zagrli & Robot zakrpa osetljiva na dodir osetljiva na dodir: Uvek sam želeo da napravim jednostavan, ali pristojan projekat sa ovom zakrpom i „džepnom veličinom“Takmičenje je izgledalo kao savršena prilika da se napravi maskota robota. Ovaj momak sjedi u džepu moje majice, baš kao na ikoni takmičenja, i ide