Cuprins:
- Pasul 1: Lucruri de care aveți nevoie
- Pasul 2: Instalarea TFT Display Library în Arduino IDE
- Pasul 3: Încărcați codul calculatorului
Video: Calculator cu ecran tactil LCD Arduino TFT: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Bună, băieți, în acest instructable vom învăța cum să facem un calculator folosind Arduino Uno cu ecran tactil LCD TFT de 3,5 . Deci vom scrie un cod și îl vom încărca în arduino, care va afișa interfața calculatorului pe ecran și va prelua funcționalitatea tactilă și da rezultatul expresiilor matematice de bază.
Pasul 1: Lucruri de care aveți nevoie
Pentru acest proiect veți avea nevoie de următoarele lucruri: 3.5 TFT LCD DISPLAYARDUINO UNO
Pasul 2: Instalarea TFT Display Library în Arduino IDE
Folosim biblioteca SPFD5408:
pentru ca acest cod de calculator arduino să funcționeze. Aceasta este o bibliotecă modificată a Adafruit și poate funcționa perfect cu modulul nostru LCD TFT. Este foarte important pentru dvs. să instalați această bibliotecă în Arduino IDE sau în acest program pentru a compila fără nicio eroare. Pentru a instala această bibliotecă, puteți pur și simplu să faceți clic pe linkul de mai sus, care vă va duce la o pagină Github. Acolo faceți clic pe clonare sau descărcare și selectați „Descărcați ZIP”. Va fi descărcat un fișier zip. Acum, deschideți Arduino IDE și selectați Sketch -> Include Librarey -> Add. ZIP library. Se va deschide o fereastră de browser navigați la fișierul ZIP și faceți clic pe „OK”. Ar trebui să observați „Biblioteca adăugată bibliotecilor dvs.” în colțul din stânga jos al Arduino.
Pasul 3: Încărcați codul calculatorului
După instalarea bibliotecii, conectați afișajul la Arduino și copiați următorul cod și încărcați-l în Arduino. biblioteca # include „SPFD5408_TouchScreen.h” / * _ Sfârșitul bibliotecilor _ * // * _ Definiți pinii LCD (am atribuit valorile implicite) _ * / # definiți YP A1 // trebuie să fie un pin analogic, utilizați notația „O”! # define XM A2 // trebuie să fie un pin analogic, utilizați notația „An”! #define YM 7 // poate fi un pin digital # define XP 6 // poate fi un pin digital # define LCD_CS A3 # define LCD_CD A2 # define LCD_WR A1 # define LCD_RD A0 # define LCD_RESET A4 / * _ Sfârșitul defanițiilor _ * // * _ Atribuie nume culorilor și presiunii _ * / # define WHITE 0x0000 // Black-> White # define YELLOW 0x001F // Blue-> Yellow # define CYAN 0xF800 // Roșu-> Cyan # define PINK 0x07E0 // Verde-> Roz # define RED 0x07FF // Cyan -> Roșu # define VERDE 0xF81F // Roz -> Verde #define ALBASTRU 0xFFE0 // Galben- > Albastru # define NEGRU 0xFFFF // Alb-> Negru # define MINPRESSURE 10 # define MAXPRESSURE 1000 / * _ Atribuit _ * // * _ Calibrate TFT LCD _ * / # define TS_MINX 125 # define TS_MINY 85 # define TS_MAXX 965 # define TS_MAXY 905 / * _ Sfârșitul calibrării _ * / TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 este sensibilitateaAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Începeți comunicarea cu simbolul LCDString [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; Num1 lung, Num2, Număr; acțiune char; boolean result = false; void setup () {Serial.begin (9600); // Utilizați monitorul serial pentru depanarea tft.reset (); // Resetați întotdeauna la start tft.begin (0x9341); // LCD-ul meu utilizează IC-ul driverului de interfață LIL9341 tft.setRotation (2); // Tocmai am plecat astfel încât mufa de alimentare să fie orientată în sus - opțional 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 (); delay (300);} TSPoint waitTouch () {TSPoint p; faceți {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((p.z MAXPRESSURE)); p.x = hartă (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = hartă (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Detectarea butoanelor de pe coloana 1 {if (Y> 0 && Y <85) // Dacă butonul Cancel este apăsat {Serial.println ("Buton Cancel"); Număr = Num1 = Num2 = 0; result = false;} if (Y> 85 && Y <140) // Dacă butonul 1 este apăsat {Serial.println ("Butonul 1"); if (Număr == 0) Număr = 1; else Number = (Number * 10) + 1; // Apăsat de două ori} if (Y> 140 && Y <192) // Dacă butonul 4 este apăsat {Serial.println („Butonul 4”); if (Număr == 0) Număr = 4; else Number = (Number * 10) + 4; // Apăsat de două ori} if (Y> 192 && Y <245) // Dacă butonul 7 este apăsat {Serial.println („Butonul 7”); if (Număr == 0) Număr = 7; else Number = (Număr * 10) + 7; // Apăsat de două ori}} if (X50) // Detectarea butoanelor de pe coloana 2 {if (Y> 0 && Y <85) {Serial.println („Butonul 0”); // Butonul 0 este apăsat dacă (Număr == 0) Număr = 0; else Number = (Number * 10) + 0; // Apăsat de două ori} if (Y> 85 && Y <140) {Serial.println ("Butonul 2"); if (Număr == 0) Număr = 2; else Number = (Număr * 10) + 2; // Apăsat de două ori} if (Y> 140 && Y <192) {Serial.println ("Butonul 5"); if (Număr == 0) Număr = 5; else Number = (Number * 10) + 5; // Apăsat twic} if (Y> 192 && Y <245) {Serial.println ("Butonul 8"); if (Număr == 0) Număr = 8; else Number = (Number * 10) + 8; // Twic apăsat}} if (X105) // Detectarea butoanelor de pe coloana 3 {if (Y> 0 && Y <85) {Serial.println ("Buton egal"); Num2 = Număr; rezultat = adevărat; } if (Y> 85 && Y <140) {Serial.println ("Butonul 3"); if (Număr == 0) Număr = 3; else Number = (Number * 10) + 3; // Apăsat de două ori} if (Y> 140 && Y <192) {Serial.println ("Butonul 6"); if (Număr == 0) Număr = 6; else Number = (Number * 10) + 6; // Apăsat de două ori} if (Y> 192 && Y <245) {Serial.println ("Butonul 9"); if (Număr == 0) Număr = 9; else Number = (Number * 10) + 9; // Apăsat de două ori}} if (X165) // Butoane de detectare pe coloana 3 {Num1 = Număr; Număr = 0; tft.setCursor (200, 20); tft.setTextColor (RED); if (Y> 0 && Y <85) {Serial.println ("Adăugare"); actiune = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Subtraction"); actiune = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Multiplicare"); actiune = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); actiune = 4; tft.println ('/');} întârziere (300); }} void CalculateResult () {if (action == 1) Number = Num1 + Num2; if (action == 2) Number = Num1-Num2; if (action == 3) Number = Num1 * Num2; if (action == 4) Number = Num1 / Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // ștergeți caseta de rezultate tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (NEGRU); tft.println (Număr); // actualizați valoarea nouă} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (RED); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("CALCULATOR"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (ALBASTRU); tft.println ("- Circut Digest"); delay (1800);} void draw_BoxNButtons () {// Desenează caseta de rezultate tft.fillRect (0, 0, 240, 80, CYAN); // Desenați prima coloană tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, NEGRU); tft.fillRect (0, 140, 60, 60, NEGRU); tft.fillRect (0, 80, 60, 60, NEGRU); // Desenați a treia coloană tft.fillRect (120, 260, 60, 60, VERDE); tft.fillRect (120, 200, 60, 60, NEGRU); tft.fillRect (120, 140, 60, 60, NEGRU); tft.fillRect (120, 80, 60, 60, NEGRU); // Desenați coloana secundară și a patra pentru (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Desenați linii orizontale pentru (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WHITE); // Desenați linii verticale pentru (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, WHITE); // Afișați tastele pentru (int j = 0; j <4; j ++) {pentru (int i = 0; i <4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 * j)); tft.setTextSize (3); tft.setTextColor (ALB); tft.println (simbol [j] ); }}} După încărcarea codului, veți putea vedea calculatorul care rulează pe ecranul dvs. ca al meu și acum puteți efectua calcule matematice de bază în acest sens. Deci, distrează-te făcând propriul tău calculator cu Arduino UNO.
Recomandat:
Macintosh cu ecran tactil - Mac clasic cu un iPad Mini pentru ecran: 5 pași (cu imagini)
Macintosh cu ecran tactil | Mac clasic cu un iPad Mini pentru ecran: Aceasta este actualizarea și designul meu revizuit despre cum să înlocuiesc ecranul unui Macintosh de epocă cu un iPad mini. Acesta este al șaselea dintre acestea realizat de-a lungul anilor și sunt destul de mulțumit de evoluția și designul acestuia! În 2013, când am făcut
Calculator cu ecran tactil Arduino: 7 pași
Calculator cu ecran tactil Arduino: Bună ziua! Acesta este un proiect de realizare a unui calculator cu ecran tactil folosind un Arduino Uno și un ecran TFT LCD. Am venit cu conceptul pentru clasa mea de programare la domiciliu, iar experiența în construirea acestui proiect a fost foarte interesantă. Acest calculator poate
Modul ecran ecran LCD 1602 cu rucsac I2C: 6 pași
Modul ecran 1602 cu tastatură LCD cu rucsac I2C: Ca parte a unui proiect mai mare, am vrut să am un afișaj LCD și o tastatură pentru navigarea unor meniuri simple. Voi folosi o mulțime de porturi I / O de pe Arduino pentru alte joburi, așa că am dorit o interfață I2C pentru LCD. Așa că am cumpărat niște hardware
Trei circuite senzor tactil + circuit temporizator tactil: 4 pași
Trei circuite senzor tactil + circuit temporizator tactil: senzorul tactil este un circuit care pornește când detectează atingerea pinilor tactili. Funcționează pe o bază tranzitorie, adică încărcarea va fi ACTIVATĂ doar pentru momentul în care se face atingerea pe ace. Aici, vă voi arăta trei moduri diferite de a face o atingere sen
Încuietoare ușă Arduino TFT cu ecran tactil: 5 pași
Blocare ușă Arduino TFT cu ecran tactil: Acesta este primul meu instructabil. Acest proiect folosește Arduino și un motor de 2,8 " Ecran tactil TFT cu o schiță de parolă pentru a activa un releu care rupe circuitul de la o ușă de blocare