Table des matières:

Calculatrice Arduino TFT LCD à écran tactile : 3 étapes
Calculatrice Arduino TFT LCD à écran tactile : 3 étapes

Vidéo: Calculatrice Arduino TFT LCD à écran tactile : 3 étapes

Vidéo: Calculatrice Arduino TFT LCD à écran tactile : 3 étapes
Vidéo: Учебное пособие по сенсорному TFT ЖК-экрану Arduino | 3,5-дюймовый TFT ЖК-дисплей с разрешением 480x320, SD-карта и сенсорный экран 2024, Juillet
Anonim
Calculatrice Arduino TFT LCD à écran tactile
Calculatrice Arduino TFT LCD à écran tactile

Salut les gars dans ces instructables, nous allons apprendre à faire une calculatrice à l'aide d'Arduino Uno avec un écran tactile LCD TFT de 3,5 . Nous allons donc écrire un code et le télécharger sur arduino qui affichera l'interface de la calculatrice sur l'écran et prendra la fonctionnalité tactile et donner la sortie d'expressions mathématiques de base.

Étape 1: choses dont vous avez besoin

Choses dont tu as besoin
Choses dont tu as besoin
Choses dont tu as besoin
Choses dont tu as besoin

Pour ce projet, vous aurez besoin des éléments suivants: AFFICHEUR LCD TFT 3,5 ARDUINO UNO

Étape 2: Installation de la bibliothèque d'affichage TFT dans Arduino IDE

Installation de la bibliothèque d'affichage TFT dans Arduino IDE
Installation de la bibliothèque d'affichage TFT dans Arduino IDE

Nous utilisons la bibliothèque SPFD5408:

pour que ce code de calculatrice arduino fonctionne. Il s'agit d'une bibliothèque modifiée d'Adafruit et peut fonctionner de manière transparente avec notre module LCD TFT. Il est très important pour vous d'installer cette bibliothèque dans votre IDE Arduino ou ce programme pour compiler sans erreur. Pour installer cette bibliothèque, vous pouvez simplement cliquer sur le lien ci-dessus qui vous mènera à une page Github. Là, cliquez sur cloner ou télécharger et sélectionnez "Télécharger ZIP". Un fichier zip sera téléchargé. Maintenant, ouvrez Arduino IDE et sélectionnez Sketch -> Inclure Librarey -> Ajouter une bibliothèque. ZIP. Une fenêtre de navigateur s'ouvrira, accédez au fichier ZIP et cliquez sur « OK ». Vous devriez remarquer "Bibliothèque ajoutée à vos bibliothèques" dans le coin inférieur gauche d'Arduino.

Étape 3: Téléchargez le code de la calculatrice

Téléchargez le code de la calculatrice
Téléchargez le code de la calculatrice
Téléchargez le code de la calculatrice
Téléchargez le code de la calculatrice

Après avoir installé la bibliothèque, connectez l'écran à Arduino et copiez le code suivant et téléchargez-le sur Arduino./*_Importer les bibliothèques_*/#include "SPFD5408_Adafruit_GFX.h" // Bibliothèque graphique principale#include "SPFD5408_Adafruit_TFTLCD.h" // Spécifique au matériel library#include "SPFD5408_TouchScreen.h"/*_End of Libraries_*//*_Définissez les broches LCD (j'ai attribué les valeurs par défaut)_*/#define YP A1 // doit être une broche analogique, utilisez la notation "An" !# define XM A2 // doit être une broche analogique, utilisez la notation "An"!#define YM 7 // peut être une broche numérique#define XP 6 // peut être une broche numérique#define LCD_CS A3#define LCD_CD A2#define LCD_WR A1#define LCD_RD A0#define LCD_RESET A4/*_Fin des définitions_*//*_Attribuer des noms aux couleurs et à la pression_*/#define WHITE 0x0000 //Noir->Blanc#define YELLOW 0x001F //Bleu->Jaune#define CYAN 0xF800 //Rouge->Cyan#define PINK 0x07E0 //Vert-> Pink#define RED 0x07FF //Cyan -> Red#define GREEN 0xF81F //Rose -> Green #define BLUE 0xFFE0 //Jaune- >Bleu#define BLACK 0xFFFF //Blanc-> Noir#define MINPRESSURE 10#define MAXPRESSURE 1000/*_Attribué_*//*_Calibrate TFT LCD_*/#define TS_MINX 125#define TS_MINY 85#define TS_MAXX 965#define TS_MAXY 905/* _Fin de l'étalonnage_*/TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); //300 est la sensibilitéAdafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); //Démarrer la communication avec le symbole LCDString[4][4] = { { "7", "8", "9", "/" }, { "4", "5", "6", "*" }, { "1", "2", "3", "-" }, { "C", "0", "=", "+" }}; entier X, Y; long Num1, Num2, Nombre; action de char; boolean result = false;void setup() { Serial.begin(9600); //Utiliser le moniteur série pour le débogage tft.reset(); //Toujours réinitialiser au démarrage tft.begin(0x9341); // Mon écran LCD utilise le pilote d'interface LIL9341 IC tft.setRotation(2); // Je viens de tourner pour que la prise d'alimentation soit tournée vers le haut - facultatif tft.fillScreen(WHITE); Écran d'introduction(); draw_BoxNButtons(); }boucle vide() {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; faire { p = ts.getPoint(); pinMode(XM, SORTIE); pinMode(YP, SORTIE); } while((p.z PRESSION MAXI)); p.x = map(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) //Détection des boutons sur la colonne 1 { if (Y>0 && Y<85) //Si le bouton Annuler est enfoncé {Serial.println ("Bouton Annuler"); Nombre=Num1=Num2=0; result=false;} if (Y>85 && Y<140) //Si le bouton 1 est pressé {Serial.println ("Bouton 1"); si (Nombre==0) Nombre=1; sinon Nombre = (Nombre*10) + 1; //Appuyé deux fois } if (Y>140 && Y<192) //Si le bouton 4 est appuyé {Serial.println ("Bouton 4"); si (Nombre==0) Nombre=4; sinon Nombre = (Nombre*10) + 4; //Appuyé deux fois } if (Y>192 && Y<245) //Si le bouton 7 est appuyé {Serial.println ("Bouton 7"); si (Nombre==0) Nombre=7; sinon Nombre = (Nombre*10) + 7; //Appuyé deux fois } } if (X50) //Détection des boutons sur la colonne 2 { if (Y>0 && Y<85) {Serial.println ("Bouton 0"); //Le bouton 0 est enfoncé si (Nombre==0) Nombre=0; sinon Nombre = (Nombre*10) + 0; //Appuyé deux fois } if (Y>85 && Y<140) {Serial.println ("Bouton 2"); si (Nombre==0) Nombre=2; sinon Nombre = (Nombre*10) + 2; //Appuyé deux fois } if (Y>140 && Y<192) {Serial.println ("Bouton 5"); si (Nombre==0) Nombre=5; sinon Nombre = (Nombre*10) + 5; //Appuyé deux fois sur } if (Y>192 && Y<245) {Serial.println ("Bouton 8"); si (Nombre==0) Nombre=8; sinon Nombre = (Nombre*10) + 8; //Appuyé twic } } if (X105) //Détection des boutons sur la colonne 3 { if (Y>0 && Y<85) {Serial.println ("Bouton égal"); Num2=Nombre; résultat = vrai; } if (Y>85 && Y<140) {Serial.println ("Bouton 3"); si (Nombre==0) Nombre=3; sinon Nombre = (Nombre*10) + 3; //Appuyé deux fois } if (Y>140 && Y<192) {Serial.println ("Bouton 6"); si (Nombre==0) Nombre=6; sinon Nombre = (Nombre*10) + 6; //Appuyé deux fois } if (Y>192 && Y<245) {Serial.println ("Bouton 9"); si (Nombre==0) Nombre=9; sinon Nombre = (Nombre*10) + 9; //Appuyé deux fois } } if (X165) //Détection des boutons sur la colonne 3 { Num1 = Number; Nombre =0; tft.setCursor(200, 20); tft.setTextColor(RED); if (Y>0 && Y<85) {Serial.println ("Ajout"); action = 1; tft.println('+');} if (Y>85 && Y<140) {Serial.println ("Soustraction"); action = 2; tft.println('-');} if (Y>140 && Y<192) {Serial.println ("Multiplication"); action = 3; tft.println('*');} if (Y>192 && Y<245) {Serial.println ("Devesion"); action = 4; tft.println('/');} délai(300); } }void CalculateResult(){ if (action==1) Number = Num1+Num2; si (action==2) Nombre = Num1-Num2; si (action==3) Nombre = Num1*Num2; si (action==4) Nombre = Num1/Num2; }void DisplayResult(){ tft.fillRect(0, 0, 240, 80, CYAN); //effacer la zone de résultat tft.setCursor(10, 20); tft.setTextSize(4); tft.setTextColor(NOIR); tft.println(Nombre); //mettre à jour la nouvelle valeur}void IntroScreen(){ tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor(RED); tft.println("ARDUINO"); tft.setCursor (30, 160); tft.println("CALCULATRICE"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor(BLUE); tft.println("-Circut Digest"); delay(1800);}void draw_BoxNButtons(){ //Dessiner la zone de résultat tft.fillRect(0, 0, 240, 80, CYAN); // Dessiner la première colonne tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, NOIR); tft.fillRect (0, 140, 60, 60, NOIR); tft.fillRect (0, 80, 60, 60, NOIR); // Dessiner la troisième colonne tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, NOIR); tft.fillRect (120, 140, 60, 60, NOIR); tft.fillRect (120, 80, 60, 60, NOIR); // Dessiner la deuxième et la quatrième colonne pour (int b=260; b>=80; b-=60) { tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, NOIR);} //Tracer des lignes horizontales pour (int h=80; h<=320; h+=60) tft.drawFastHLine(0, h, 240, WHITE); //Dessiner des lignes verticales pour (int v=0; v<=240; v+=60) tft.drawFastVLine(v, 80, 240, WHITE); //Afficher les étiquettes du clavier pour (int j=0;j<4;j++) { pour (int i=0;i<4;i++) { tft.setCursor(22 + (60*i), 100 + (60* j)); tft.setTextSize(3); tft.setTextColor(BLANC); tft.println(symbole[j]); } }}Après avoir téléchargé le code, vous pourrez voir la calculatrice fonctionner sur votre écran comme la mienne et maintenant vous pouvez effectuer des calculs mathématiques de base à ce sujet. Alors amusez-vous à créer votre propre calculatrice avec Arduino UNO.

Conseillé: