Table des matières:
- Étape 1: choses dont vous avez besoin
- Étape 2: Installation de la bibliothèque d'affichage TFT dans Arduino IDE
- Étape 3: Téléchargez le code de la calculatrice
Vidéo: Calculatrice Arduino TFT LCD à écran tactile : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
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
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
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
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é:
Macintosh à écran tactile - Mac classique avec un IPad Mini pour l'écran : 5 étapes (avec photos)
Macintosh à écran tactile | Mac classique avec un IPad Mini pour l'écran : Ceci est ma mise à jour et ma conception révisée sur la façon de remplacer l'écran d'un Macintosh vintage par un iPad mini. C'est le 6ème d'entre eux que j'ai fait au fil des ans et je suis assez content de l'évolution et du design de celui-ci ! En 2013, quand j'ai fait
Calculatrice à écran tactile Arduino : 7 étapes
Calculatrice à écran tactile Arduino : Bonjour ! Il s'agit d'un projet de création d'une calculatrice à écran tactile utilisant un Arduino Uno et un shield LCD TFT. J'ai proposé le concept de mon cours de programmation pour l'école à la maison et l'expérience dans la construction de ce projet a été très intéressante. Cette calculatrice ca
Écran LCD I2C/IIC - Utilisez un écran LCD SPI vers l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : 5 étapes
Écran LCD I2C/IIC | Utilisez un écran LCD SPI sur l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : Salut les gars, car un SPI LCD 1602 normal a trop de fils à connecter, il est donc très difficile de l'interfacer avec arduino, mais il existe un module disponible sur le marché qui peut convertir l'affichage SPI en affichage IIC, vous n'avez donc besoin de connecter que 4 fils
Écran LCD I2C/IIC - Convertir un écran LCD SPI en écran LCD I2C : 5 étapes
Écran LCD I2C/IIC | Convertir un écran LCD SPI en écran LCD I2C : l'utilisation de l'écran lcd spi nécessite trop de connexions, ce qui est vraiment difficile à faire
Comment faire une horloge en temps réel à l'aide d'Arduino et d'un écran TFT - Arduino Mega RTC avec écran TFT de 3,5 pouces : 4 étapes
Comment faire une horloge en temps réel à l'aide d'Arduino et d'un écran TFT | Arduino Mega RTC avec un écran TFT de 3,5 pouces : visitez ma chaîne Youtube. Module RTC 2560 et DS3231….Avant de commencer…vérifiez la vidéo de ma chaîne YouTube..Remarque : - Si vous utilisez Arduin