Dans ce tutoriel nous allons voir comment afficher le sens de la direction de la manette Joystick sur un afficheur LCD avec Arduino:
carte Arduino
Une carte Arduino est une carte de développement électronique basée sur un microcontrôleur. Elle est conçue pour être facilement utilisable par les développeurs pour créer des projets électroniques.
Les cartes Arduino sont principalement utilisées pour contrôler des appareils électroniques en utilisant du code informatique, mais elles peuvent également être utilisées pour traiter et afficher des données. Elles sont souvent utilisées dans des projets de robotique, de domotique, de domaine de l’Internet des objets (IoT) et dans de nombreux autres domaines de l’électronique de loisir et professionnelle.
manette Joystick
Un joystick est un dispositif de contrôle utilisé dans de nombreux jeux vidéo et appareils de simulation. Il est généralement utilisé pour contrôler les mouvements d’un personnage ou d’un objet dans un jeu ou une simulation.
Un joystick est généralement constitué d’une poignée verticale sur laquelle est monté un stick mobile. Le stick peut être déplacé dans différentes directions pour contrôler les mouvements de l’objet dans le jeu.
Les fils de connexion sont des fils électriques utilisés pour connecter des composants électroniques. Il existe deux types de fils de connexion: les fils de connexion mâle-mâle et les fils de connexion mâle-femelle. Les fils de connexion mâle-mâle sont utilisés pour connecter des composants qui ont tous deux des broches mâles, tandis que les fils de connexion mâle-femelle sont utilisés pour connecter des composants avec une broche mâle et une broche femelle.
Les fils de connexion sont généralement fabriqués en cuivre ou en alliage de cuivre et sont revêtus d’un isolant en plastique pour protéger les fils électriques et empêcher les courts-circuits. Ils sont disponibles dans une variété de couleurs pour aider à identifier et organiser les différents fils dans un circuit.
Afficheur lcd i2c
Un afficheur LCD (Liquid Crystal Display) est un type d’écran qui utilise des cristaux liquides pour afficher des informations sous forme de texte ou d’images. Un afficheur LCD peut être utilisé dans de nombreux projets de programmation et de robotique, notamment pour afficher des informations sur une interface utilisateur ou pour fournir un feedback visuel lors de l’exécution d’un programme.
Un afficheur LCD I2C (Inter-Integrated Circuit) est un type d’afficheur LCD qui peut être connecté à un microcontrôleur ou à un autre appareil en utilisant le protocole de communication I2C. Le protocole I2C permet de connecter plusieurs périphériques à un seul bus de communication en utilisant deux fils, ce qui rend le câblage plus facile et plus propre.
Pour réaliser le montage on connecte:
Pour la manette joystick :
La broche +5V à 3.3V de l’Arduino
La broche GND au GND de l’Arduino
VRx à la borne analogique A0 de l’Arduino
VRy à la borne analogique A1 de l’Arduino
SW à la borne numérique N°2 de l’Arduino
Pour l’afficheur LCD :
La broche VCC à 5V de l’Arduino
La broche GND au GND de l’Arduino
la broche SDA à la borne analogique A4 de l’Arduino
La broche SCL à la borne analogique A5 de l’Arduino
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#include <LiquidCrystal_I2C.h> //—– Adressage matériel —– // En cas de non fonctionnement, mettez la ligne 8 en // commentaire et retirez le commentaire à la ligne 9. LiquidCrystal_I2C lcd(0x27, 20, 4); int VRx = A0; int VRy = A1; int SW = 2; int xPosition = 0; int yPosition = 0; int SW_state = 0; int mapX = 0; int mapY = 0; void setup() { lcd.init(); // initialisation de l’afficheur pinMode(VRx, INPUT); pinMode(VRy, INPUT); pinMode(SW, INPUT_PULLUP); } void loop() { lcd.backlight(); lcd.clear(); // effacer le contenu de l’Afficheur LCD xPosition = analogRead(VRx); yPosition = analogRead(VRy); SW_state = digitalRead(SW); mapX = map(xPosition, 0, 1023, -512, 512); mapY = map(yPosition, 0, 1023, -512, 512); if ((mapX>=-515)&& (mapX<=-510)&&(mapY>=-175)&& (mapY<=-168)) lcd.print("Avant"); if ((mapX>=168)&& (mapX<=175)&&(mapY>=-175)&& (mapY<=-168)) lcd.print("Arriere"); if ((mapX<=-166)&& (mapX>=-175)&&(mapY>=-515)&& (mapY<=-510)) lcd.print("Droite"); if ((mapX>=-175)&& (mapX<=-170)&&(mapY>=165)&& (mapY<=175)) lcd.print("Gauche"); if (SW_state==0) lcd.print("Bouton appuye"); delay(1000); } |
Remarque: il faut télécharger la bibliothèque LiquidCrystal_I2C (télécharger).