- Matériaux nécessaires:
- Apprendre à connaître le module d'écran LCD TFT:
- Calibrage de l'écran LCD TFT pour écran tactile:
- Connexions LCD TFT avec Arduino:
- Programmation de votre Arduino pour TFT LCD:
- Travail:
Arduino a toujours aidé à construire des projets facilement et à les rendre plus attrayants. La programmation d'un écran LCD avec l'option d'écran tactile peut sembler une tâche compliquée, mais les bibliothèques et les boucliers Arduino l'ont rendu vraiment facile. Dans ce projet, nous utiliserons un écran LCD Arduino TFT de 2,4 pouces pour construire notre propre calculatrice à écran tactile Arduino qui pourrait effectuer tous les calculs de base comme l'addition, la soustraction, la division et la multiplication.
Matériaux nécessaires:
- Arduino Uno
- Écran LCD TFT 2,4 pouces
- Batterie 9V.
Apprendre à connaître le module d'écran LCD TFT:
Avant de plonger dans le projet, il est important de savoir comment fonctionne ce module LCD TFT 2,4 pouces et quels sont les types qui y sont présents. Jetons un coup d'œil aux brochages de ce module d'écran LCD TFT 2,4 ”.
Comme vous pouvez le voir, il y a 28 broches qui s'intégreront parfaitement dans n'importe quelle carte Arduino Uno / Arduino Mega. Une petite classification de ces broches est donnée dans le tableau ci-dessous.
Comme vous pouvez le voir, les broches peuvent être classées en quatre classifications principales telles que les broches de commande LCD, les broches de données LCD, les broches de carte SD et les broches d'alimentation, nous n'avons pas besoin de savoir grand-chose sur le fonctionnement détaillé de ces broches car elles seront prises en charge par notre bibliothèque Arduino.
Vous pouvez également trouver un emplacement pour carte SD au bas du module illustré ci-dessus, qui peut être utilisé pour charger une carte SD avec des fichiers image bmp, et ces images peuvent être affichées sur notre écran LCD TFT à l'aide du programme Arduino.
Une autre chose importante à noter est votre CI d'interface. Il existe de nombreux types de modules TFT disponibles sur le marché, du module LCD TFT Adafruit original aux clones chinois bon marché. Un programme qui fonctionne parfaitement pour votre bouclier Adafruit peut ne pas fonctionner de la même manière pour les cartes de dérivation chinoises. Il est donc très important de savoir quels types d'écran LCD vous tenez en main. Ce détail doit être obtenu auprès du vendeur. Si vous avez un clone bon marché comme le mien, il utilise probablement le pilote IC ili9341. Vous pouvez suivre ce tutoriel d'interfaçage LCD TFT avec Arduino pour essayer quelques exemples de programmes de base et vous familiariser avec l'écran LCD. Découvrez également nos autres projets LCD TFT avec Arduino ici:
- Comment utiliser la bande LED NeoPixel avec Arduino et LCD TFT
- Verrouillage à code numérique contrôlé par téléphone intelligent à l'aide d'Arduino
Calibrage de l'écran LCD TFT pour écran tactile:
Si vous prévoyez d'utiliser la fonction d'écran tactile de votre module LCD TFT, vous devez le calibrer pour qu'il fonctionne correctement. Un écran LCD sans étalonnage peut fonctionner peu probable, par exemple vous pourriez toucher à un endroit et le TFT pourrait répondre à un toucher à un autre endroit. Ces résultats d'étalonnage ne seront pas similaires pour toutes les cartes et vous êtes donc laissé à vous-même pour le faire.
La meilleure façon de calibrer est d'utiliser le programme d'exemple de calibrage (fourni avec la bibliothèque) ou d'utiliser le moniteur série pour détecter votre erreur. Cependant pour ce projet puisque la taille des boutons est importante, le calibrage ne devrait pas être un gros problème et je vous expliquerai également comment vous pouvez calibrer votre écran dans la section programmation ci-dessous.
Connexions LCD TFT avec Arduino:
L'écran LCD TFT 2,4 ”est un bouclier Arduino parfait. Vous pouvez directement pousser l'écran LCD sur le dessus de l'Arduino Uno et il correspondra parfaitement aux broches et se glissera à travers. Cependant, pour des raisons de sécurité, couvrez le terminal de programmation de votre Arduino UNO avec un petit ruban isolant, juste au cas où le terminal entre en contact avec votre écran LCD TFT. L'écran LCD assemblé sur UNO ressemblera à ceci ci-dessous.
Programmation de votre Arduino pour TFT LCD:
Nous utilisons la bibliothèque SPFD5408 pour faire fonctionner ce code de calculatrice Arduino. Il s'agit d'une bibliothèque modifiée d'Adafruit et peut fonctionner de manière transparente avec notre module LCD TFT. Vous pouvez consulter le programme complet à la fin de cet article.
Remarque: Il est très important pour vous d'installer cette bibliothèque dans votre IDE Arduino ou ce programme pour compiler sans aucune 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, en cas de succès. Un guide détaillé pour faire de même est fourni dans le didacticiel d'interfaçage.
Maintenant, vous pouvez utiliser le code ci-dessous dans votre IDE Arduino et le télécharger sur votre Arduino UNO pour que la calculatrice à écran tactile fonctionne. Plus bas, j'ai expliqué le code en petits segments.
Nous avons besoin de trois bibliothèques pour que ce programme fonctionne; ces trois bibliothèques ont été fournies dans le fichier ZIP que vous avez téléchargé à partir du lien fourni ci-dessus. Je les ai simplement inclus dans le code comme indiqué ci-dessous.
#comprendre
Comme indiqué précédemment, nous devons calibrer l'écran LCD pour qu'il fonctionne comme prévu, mais ne vous inquiétez pas, les valeurs données ici sont presque universelles. Les variables TS_MINX, TS_MINY, TS_MAXX et TS_MAXY décident de l'étalonnage de l'écran. Vous pouvez jouer autour d'eux si vous pensez que l'étalonnage n'est pas satisfaisant.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Comme nous le savons, l'écran LCD TFT peut afficher beaucoup de couleurs, toutes ces couleurs doivent être entrées en valeur hexadécimale. Pour le rendre plus lisible par l'homme, nous attribuons ces valeurs à une variable comme indiqué ci-dessous.
#define WHITE 0x0000 // Noir-> Blanc #define YELLOW 0x001F // Bleu-> Jaune #define CYAN 0xF800 // Rouge-> Cyan #define PINK 0x07E0 // Vert-> Rose #define RED 0x07FF // Cyan -> Rouge #define GREEN 0xF81F // Rose -> Vert #define BLUE 0xFFE0 // Jaune-> Bleu #define BLACK 0xFFFF // Blanc-> Noir
Bon maintenant, nous pouvons entrer dans la partie programmation. Il y a trois sections impliquées dans ce programme. L'une consiste à créer une interface utilisateur d'une calculatrice avec des boutons et un affichage. Ensuite, détecter les boutons en fonction du toucher des utilisateurs et enfin calculer les résultats et les afficher. Laissez-nous les parcourir un par un.
1. Création d'une interface utilisateur de calculatrice:
C'est là que vous pouvez utiliser beaucoup de votre créativité pour concevoir l'interface utilisateur de la calculatrice. J'ai simplement fait une disposition de base d'une calculatrice avec 16 boutons et une unité d'affichage. Vous devez construire le design comme vous allez dessiner quelque chose sur MS Paint. Les bibliothèques ajoutées vous permettront de dessiner des lignes, des rectangles, des cercles, des caractères, des chaînes et bien plus encore de n'importe quelle couleur préférée. Vous pouvez comprendre les fonctions disponibles dans cet article.
J'ai utilisé les capacités de dessin de lignes et de boîtes pour concevoir une interface utilisateur qui ressemble beaucoup à la calculatrice des années 90. Chaque boîte a une largeur et une hauteur de 60 pixels.
// Dessine la boîte 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); // Dessine 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); // Dessine la deuxième et quatrième colonne pour (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60,60, BLUE); tft.fillRect (60, b, 60,60, BLACK);} // Trace des lignes horizontales pour (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WHITE); // Trace des lignes verticales pour (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, WHITE); // Affiche les étiquettes du clavier pour (int j = 0; j <4; j ++) {for (int i = 0; i <4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 * j)); tft.setTextSize (3); tft.setTextColor (BLANC); tft.println (symbole);
2. Détection des boutons:
Une autre tâche difficile consiste à détecter le toucher de l'utilisateur. Chaque fois que l'utilisateur touche quelque part, nous pourrons savoir où se trouvent les positions X et Y du pixel qu'il a touché. Cette valeur peut être affichée sur le moniteur série à l'aide de println comme indiqué ci-dessous.
TSPoint p = waitTouch (); X = py; Y = px; Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y);
Depuis que nous avons conçu la boîte avec une largeur et une hauteur de 60 pixels chacune et avons quatre lignes et pour les colonnes à partir de (0,0). La position de chaque boîte peut être prédite comme indiqué dans l'image ci-dessous.
Mais dans le cas pratique, ce ne sera pas le résultat. Il y aura une grande différence entre la valeur attendue et réelle, en raison du problème d'étalonnage.
Ainsi, pour prédire la position exacte de la box, il faut cliquer sur la ligne et vérifier sa position correspondante sur le moniteur série. Ce n'est peut-être pas la manière la plus professionnelle de le faire, mais cela fonctionne parfaitement. J'ai mesuré la position de toutes les lignes et obtenu les valeurs ci-dessous.
Maintenant, puisque nous connaissons la position de toutes les cases. Lorsqu'un utilisateur touche n'importe où, nous pouvons prédire où il a touché en comparant ses valeurs (X, Y) avec la valeur de chaque case comme indiqué ci-dessous.
if (X <105 && X> 50) // Détection des boutons sur la colonne 2 {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Le bouton 0 est enfoncé si (Number == 0) Number = 0; sinon Numéro = (Numéro * 10) + 0; // Pressé deux fois} if (Y> 85 && Y <140) {Serial.println ("Button 2"); if (Number == 0) Number = 2; sinon Numéro = (Numéro * 10) + 2; // Pressé deux fois}
3. Affichage des nombres et calcul du résultat:
La dernière étape consiste à calculer le résultat et à les afficher sur l'écran LCD TFT. Cette calculatrice Arduino peut effectuer des opérations avec 2 chiffres uniquement. Ces deux nombres sont nommés comme variables «Num1» et «Num2». La variable «Number» donne et prend la valeur de Num1 et Num2 et porte également le résultat.
Lorsqu'une utilisation appuie sur un bouton, un chiffre est ajouté au numéro. Lorsqu'un autre bouton est enfoncé, le chiffre précédent est multiplié par 10 et le nouveau numéro est ajouté avec lui. Par exemple, si nous appuyons sur 8, puis sur 5, puis sur 7. Ensuite, la variable contiendra d'abord 8 puis (8 * 10) + 5 = 85 puis (85 * 10) +7 = 857. Donc finalement la variable aura la valeur 857 avec elle.
if (Y> 192 && Y <245) {Serial.println ("Bouton 8"); if (Number == 0) Number = 8; sinon Numéro = (Numéro * 10) + 8; // Pressé à nouveau}
Lorsque nous effectuons une opération comme l'addition, lorsque les utilisateurs appuient sur le bouton d'addition, la valeur de Number sera transférée à Num1 , puis Number sera remise à zéro afin qu'il soit prêt à prendre l'entrée pour le deuxième nombre.
Lorsque vous appuyez sur Equal, la valeur de Number sera envoyée à Num2 , puis le calcul respectif (dans ce cas, l'addition) sera effectué et le résultat sera à nouveau stocké dans la variable «Number».
Enfin, cette valeur sera affichée sur l'écran LCD.
Travail:
Le fonctionnement de cette calculatrice à écran tactile Arduino est simple. Vous devez télécharger le code ci-dessous sur votre Arduino et le démarrer. Vous obtenez la calculatrice affichée sur votre écran LCD.
Maintenant, vous pouvez entrer n'importe quel nombre et effectuer vos calculs. Il est limité à seulement deux opérandes et seul opérateur pour l'instant. Mais, vous pouvez modifier le code pour lui donner beaucoup d'options.
Vous devez appuyer sur le «C» pour effacer la valeur à l'écran à chaque fois après avoir effectué un calcul. J'espère que vous avez compris le projet et aimé construire quelque chose de similaire. Si vous avez des doutes, n'hésitez pas à les publier sur les forums ou dans la section commentaires ci-dessous. A la prochaine fois avec un autre projet intéressant jusque-là happy computing !!
Consultez également la vidéo de démonstration ci-dessous.