Taula de continguts:
- Pas 1: coses que necessiteu
- Pas 2: Instal·lació de la biblioteca de visualització TFT a Arduino IDE
- Pas 3: pengeu el codi de la calculadora
Vídeo: Calculadora de pantalla tàctil TFT LCD Arduino: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Hola nois, en aquest instructiu, aprendrem a fer una calculadora amb Arduino Uno amb pantalla tàctil TFT LCD de 3,5 . Així, escriurem un codi i el penjarem a arduino, que mostrarà la interfície de la calculadora a la pantalla i tindrà funcionalitat tàctil i donar la sortida d'expressions matemàtiques bàsiques.
Pas 1: coses que necessiteu
Per a aquest projecte necessitareu els següents aspectes: TFT LCD de 3,5 DISPLAYARDUINO UNO
Pas 2: Instal·lació de la biblioteca de visualització TFT a Arduino IDE
Estem utilitzant la biblioteca SPFD5408:
perquè aquest codi de la calculadora arduino funcioni. Es tracta d’una biblioteca modificada d’Adafruit i pot funcionar perfectament amb el nostre mòdul LCD TFT. És molt important que instal·leu aquesta biblioteca al vostre IDE Arduino o aquest programa per compilar-lo sense cap error. Per instal·lar aquesta biblioteca, només cal que feu clic a l’enllaç superior que us portarà a una pàgina de Github. Allà feu clic a clona o descarregueu i seleccioneu "Descarregar ZIP". Es descarregarà un fitxer zip. Ara, obriu Arduino IDE i seleccioneu Sketch -> Include Librarey -> Add. ZIP library. S'obrirà una finestra del navegador, aneu al fitxer ZIP i feu clic a "D'acord". Haureu de notar "La biblioteca s'ha afegit a les vostres biblioteques" a l'extrem inferior esquerre d'Arduino.
Pas 3: pengeu el codi de la calculadora
Després d'instal·lar la biblioteca, connecteu la pantalla a Arduino i copieu el codi següent i pengeu-lo a Arduino. biblioteca # inclou "SPFD5408_TouchScreen.h" / * _ Fi de les biblioteques _ * // * _ Definiu pins LCD (he assignat els valors predeterminats) _ * / # defineu YP A1 // ha de ser un pin analògic, utilitzeu la notació "Una"! # defineix XM A2 // ha de ser un pin analògic, utilitza una notació "# define YM 7 // pot ser un pin digital # defineix XP 6 // pot ser un pin digital # defineix LCD_CS A3 # defineix LCD_CD A2 # defineix LCD_WR A1 # defineix LCD_RD A0 # defineix LCD_RESET A4 / * _ Final de defanicions _ * // * _ Assigna noms a colors i pressió _ * / # defineix BLANC 0x0000 // Negre-> Blanc # defineix GROC 0x001F // Blau-> Groc # defineix CIAN 0xF800 // Vermell-> Cian # definir PINK 0x07E0 // Verd-> Rosa # definir VERMELL 0x07FF // Cian -> Vermell # definir VERD 0xF81F // Rosa -> Verd # definir BLAU 0xFFE0 // Groc- > Blau # defineix NEGRE 0xFFFF // Blanc-> Negre # defineix MINPRESSURE 10 # defineix MAXPRESSURE 1000 / * _ Assignat _ * // * _ Calibra TFT LCD _ * / # define TS_MINX 125 # define TS_MINY 85 # define TS_MAXX 965 # define TS_MAXY 905 / * _ Fi de la calibració _ * / Pantalla tàctil ts = Pantalla tàctil (XP, YP, XM, YM, 300); // 300 és la sensibilitat Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Inicieu la comunicació amb el símbol LCDString [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; llarg Num1, Num2, Nombre; acció char; resultat booleà = false; void setup () {Serial.begin (9600); // Utilitzeu el monitor sèrie per depurar tft.reset (); // Restableix sempre a l'inici tft.begin (0x9341); // La meva pantalla LCD utilitza el controlador d'interfície LIL9341 IC tft.setRotation (2); // Acabo de desplaçar-me perquè la presa de corrent estigui cap amunt - opcional tft.fillScreen (BLANC); IntroScreen (); draw_BoxNButtons (); } bucle buit () {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; fer {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((p.z MAXPRESSURE)); p.x = mapa (p.x, TS_MINX, TS_MAXX, 0, 320); py = mapa (py, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Detecció de botons a la columna 1 {if (Y> 0 && Y <85) // Si es prem el botó Cancel·la {Serial.println ("Cancel·la el botó"); Nombre = Num1 = Num2 = 0; result = false;} if (Y> 85 && Y <140) // Si es prem el botó 1 {Serial.println ("Botó 1"); if (Nombre == 0) Nombre = 1; else Nombre = (Nombre * 10) + 1; // Es prem dues vegades} if (Y> 140 && Y <192) // Si es prem el botó 4 {Serial.println ("Botó 4"); if (Nombre == 0) Nombre = 4; else Nombre = (Nombre * 10) + 4; // Es prem dues vegades} if (Y> 192 && Y <245) // Si es prem el botó 7 {Serial.println ("Botó 7"); if (Nombre == 0) Nombre = 7; else Nombre = (Nombre * 10) + 7; // Es prem dues vegades}} if (X50) // Detecció de botons a la columna 2 {if (Y> 0 && Y <85) {Serial.println ("Botó 0"); // Es prem el botó 0 si (Nombre == 0) Nombre = 0; else Nombre = (Nombre * 10) + 0; // Es prem dues vegades} if (Y> 85 && Y <140) {Serial.println ("Botó 2"); if (Nombre == 0) Nombre = 2; else Nombre = (Nombre * 10) + 2; // Es prem dues vegades} if (Y> 140 && Y <192) {Serial.println ("Botó 5"); if (Nombre == 0) Nombre = 5; else Nombre = (Nombre * 10) + 5; // Twic premut} if (Y> 192 && Y <245) {Serial.println ("Botó 8"); if (Nombre == 0) Nombre = 8; else Nombre = (Nombre * 10) + 8; // Twic premut}} if (X105) // Detecció de botons a la columna 3 {if (Y> 0 && Y <85) {Serial.println ("Botó igual"); Num2 = Nombre; resultat = cert; } if (Y> 85 && Y <140) {Serial.println ("Botó 3"); if (Nombre == 0) Nombre = 3; else Nombre = (Nombre * 10) + 3; // Es prem dues vegades} if (Y> 140 && Y <192) {Serial.println ("Botó 6"); if (Nombre == 0) Nombre = 6; else Nombre = (Nombre * 10) + 6; // Es prem dues vegades} if (Y> 192 && Y <245) {Serial.println ("Botó 9"); if (Nombre == 0) Nombre = 9; else Nombre = (Nombre * 10) + 9; // Es prem dues vegades}} if (X165) // Detecció de botons a la columna 3 {Num1 = Nombre; Nombre = 0; tft.setCursor (200, 20); tft.setTextColor (VERMELL); if (Y> 0 && Y <85) {Serial.println ("Addició"); acció = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Resta"); acció = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Multiplicació"); acció = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesió"); acció = 4; tft.println ('/');} demora (300); }} void CalculateResult () {if (action == 1) Number = Num1 + Num2; if (acció == 2) Nombre = Num1-Num2; if (action == 3) Number = Num1 * Num2; if (acció == 4) Nombre = Num1 / Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // esborra el quadre de resultats tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (NEGRE); tft.println (Nombre); // actualitza el valor nou} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (VERMELL); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("CALCULADOR"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (BLAU); tft.println ("- Circut Digest"); delay (1800);} void draw_BoxNButtons () {// Dibuixa el quadre de resultats tft.fillRect (0, 0, 240, 80, CYAN); // Dibuixa la primera columna tft.fillRect (0, 260, 60, 60, VERMELL); tft.fillRect (0, 200, 60, 60, NEGRE); tft.fillRect (0, 140, 60, 60, NEGRE); tft.fillRect (0, 80, 60, 60, NEGRE); // Dibuixa la tercera columna tft.fillRect (120, 260, 60, 60, VERD); tft.fillRect (120, 200, 60, 60, NEGRE); tft.fillRect (120, 140, 60, 60, NEGRE); tft.fillRect (120, 80, 60, 60, NEGRE); // Dibuixa la columna secunda i quarta per a (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLAU); tft.fillRect (60, b, 60, 60, NEGRE);} // Dibuixa línies horitzontals per a (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, BLANC); // Dibuixa línies verticals per a (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, BLANC); // Mostra les funcions del teclat per a (int j = 0; j <4; j ++) {per a (int i = 0; i <4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 * j)); tft.setTextSize (3); tft.setTextColor (BLANC); tft.println (símbol [j] ); }}} Després de penjar el codi, podreu veure la calculadora funcionant a la pantalla com a meva i ara podeu fer càlculs matemàtics bàsics sobre això. Així que diverteix-te fent la teva pròpia calculadora amb Arduino UNO.
Recomanat:
Pantalla tàctil Macintosh - Mac clàssic amb un iPad Mini per a la pantalla: 5 passos (amb imatges)
Pantalla tàctil Macintosh | Mac clàssic amb un iPad Mini per a la pantalla: Aquesta és la meva actualització i disseny revisat sobre com substituir la pantalla d'un Macintosh vintage per un iPad mini. Aquest és el sisè d'aquests que he fet al llarg dels anys i estic bastant content de l'evolució i el disseny d'aquest! El 2013, quan vaig fer
Calculadora de pantalla tàctil Arduino: 7 passos
Calculadora de pantalla tàctil Arduino: Hola! Es tracta d’un projecte per fer una calculadora de pantalla tàctil mitjançant un Arduino Uno i un escut TFT LCD. Vaig arribar al concepte de la meva classe de programació d’escola domèstica i l’experiència en la construcció d’aquest projecte va ser molt interessant. Aquesta calculadora pot
Arduino Flappy Bird - Pantalla tàctil Arduino TFT de 2,4 "SPFD5408 Projecte Bird Game: 3 passos
Arduino Flappy Bird | Pantalla tàctil Arduino de 2,4 "TFT SPFD5408 Projecte de joc d'ocells: Flappy Bird va ser un joc massa popular d'aquí a pocs anys i molta gent el va crear de la seva manera, jo també, vaig crear la meva versió de Flappy Bird amb Arduino i el barat 2.4" TFT Pantalla tàctil SPFD5408, així que comencem
Com fer un rellotge en temps real amb la pantalla Arduino i TFT - Arduino Mega RTC amb pantalla TFT de 3,5 polzades: 4 passos
Com fer un rellotge en temps real amb pantalla Arduino i TFT | Arduino Mega RTC amb pantalla TFT de 3,5 polzades: visiteu el meu canal de Youtube. Introducció: - En aquest post vaig a fer "Rellotge en temps real" amb LCD TFT tàctil de 3,5 polzades, Arduino Mega Mòdul RTC 2560 i DS3231 … Abans de començar … comproveu el vídeo del meu canal de YouTube … Nota: - Si utilitzeu Arduin
Arduino Uno: Animació de mapa de bits en pantalla de pantalla tàctil ILI9341 TFT amb visuino: 12 passos (amb imatges)
Arduino Uno: Animació de mapa de bits a la pantalla tàctil ILI9341 amb pantalla tàctil TFT amb Visuino: els pantalles tàctils TFT basats en ILI9341 són pantalles de pantalla molt populars per a Arduino. Visuino els ha donat suport des de fa força temps, però mai no vaig tenir l'oportunitat d'escriure un tutorial sobre com utilitzar-los. Recentment, però, poca gent va preguntar