Certaines parties de ce site Web ne sont pas encore disponibles dans votre langue. Nous travaillons à résoudre ce problème et nous nous excusons pour tout inconvénient.
Tutoriel ESP32 26/55 - Utiliser un joystick avec Arduino Prendre des mesures | Kit IoT ESP32 de SunFounder
Dans ce tutoriel, nous allons apprendre comment interfacer un joystick XY avec le microcontrôleur ESP32 de SunFounder, ce qui nous permettra de détecter sa position et d'agir en fonction de son entrée. Nous intégrerons également un buzzer qui s'active lorsque le joystick est déplacé à une position spécifique. Cette combinaison nous permettra de créer des projets interactifs qui réagissent aux entrées des utilisateurs en temps réel.
ESP32-26-xy-joystick-principal
Le joystick XY fournit deux sorties analogiques correspondant aux positions X et Y et un interrupteur qui peut être pressé pour déclencher une action. En lisant les valeurs du joystick, nous pouvons contrôler divers éléments de notre projet, tels que l'activation d'un buzzer ou l'affichage de valeurs à l'écran. Pour bien comprendre le processus, n'hésitez pas à consulter la vidéo pour des informations supplémentaires (dans la vidéo à 00:00).
Matériel expliqué
Les composants principaux de ce projet comprennent le microcontrôleur ESP32, le joystick XY et un buzzer. L'ESP32 est une carte polyvalente qui prend en charge le Wi-Fi et le Bluetooth, ce qui la rend idéale pour les projets IoT. Le joystick XY consiste en deux résistances variables pour les axes X et Y, ainsi qu'un interrupteur à bouton-poussoir pour une entrée supplémentaire.
schéma_de_joystickESP32-26-xy-schéma-de-joystick
Le joystick émet des signaux analogiques correspondant à sa position, qui sont lus par les broches analogiques de l'ESP32. Le bouton-poussoir fournit un signal numérique lorsqu'il est enfoncé. Le buzzer est connecté à une broche de sortie numérique de l'ESP32, ce qui permet de l'activer ou de le désactiver en fonction de la position du joystick.
Détails de la fiche technique
Fabricant
SunFounder
Numéro de pièce
Module de joystick XY
Tension de fonctionnement
3,3 V - 5 V
Valeur de la résistance
10 kΩ (chaque axe)
Courant maximum
20 mA
Type de commutateur
Bouton poussoir momentané
Dimensions
Environ 50 mm x 50 mm
Assurez-vous que le joystick est alimenté en 3,3 V pour être compatible avec l'ESP32.
Utilisez des résistances de tirage pour l'interrupteur afin d'éviter des entrées flottantes.
Connectez les sorties analogiques aux broches ADC de l'ESP32 (34 pour X, 35 pour Y).
Utilisez un mécanisme de temporisation pour l'interrupteur afin d'éviter les déclenchements erronés.
Surveillez les niveaux de tension pour vous assurer qu'ils restent dans des limites de fonctionnement sûres.
Instructions de câblage
ESP32-26-xy-joystick-wiring
Pour câbler le joystick à l'ESP32, commencez par connecter la broche de masse du joystick à une broche de masse sur l'ESP32. Ensuite, connectez la broche VCC du joystick à la broche 3,3 V de l'ESP32. Le joystick a deux broches de sortie analogique : connectez la sortie de l'axe X (étiquetée commeVRX) épingler34sur l'ESP32 et la sortie de l'axe Y (étiquetée commeVRY) pour épingler35.
Pour la sortie du commutateur, connectez la broche du commutateur à la broche.33sur l'ESP32. Cette broche lira la pression du bouton comme une entrée numérique. Assurez-vous que les connexions sont sécurisées pour éviter des problèmes intermittents. Si votre câblage diffère de la vidéo (dans la vidéo à 02:30), adaptez-vous en conséquence tout en suivant les mêmes principes pour les connexions analogiques et numériques.
Exemples de code et guide étape par étape
Dans le code, nous commençons par définir des constantes pour les broches du joystick. Les identifiantsxAxis,yAxis, etbtnsont prêts à34,35, et33, respectivement. Cela facilite la référence à ces broches tout au long du programme.
#define xAxis 34
#define yAxis 35
#define btn 33
Dans lesetup()fonction, nous initialisons la communication série et définissons le mode de la broche du bouton sur entrée. Cela prépare l'ESP32 à lire les données du stick analogique et à les envoyer au moniteur série.
À l'intérieur duloop(), nous lisons les valeurs analogiques pour les axes X et Y du joystick en utilisantanalogRead()et les stocker dansxValueetyValue. L'état du bouton est lu à l'aide dedigitalRead()et stocké dansbtnValue. Enfin, nous imprimons ces valeurs sur le moniteur série.
void loop() {
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
int btnValue = digitalRead(btn);
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
Cette boucle met continuellement à jour les valeurs, fournissant un retour d'information en temps réel sur le mouvement du joystick et les appuis sur les boutons. Pour le code complet, veuillez vous référer au code complet chargé en dessous de l'article.
Démonstration / Ce à quoi s'attendre
Une fois la configuration terminée et le code téléchargé, le moniteur série devrait afficher les valeurs X et Y ainsi que l'état du bouton. Au fur et à mesure que vous déplacez le joystick, les valeurs changeront en conséquence, reflétant sa position. En appuyant sur le bouton, son état basculera entre haut et bas.
Les pièges courants incluent un câblage incorrect, ce qui peut entraîner des entrées flottantes ou aucune réponse du joystick. Assurez-vous d'utiliser les bonnes broches et que les résistances de tirage sont mises en œuvre pour l'interrupteur. Regardez la vidéo pour des démonstrations pratiques de ces comportements (dans la vidéo à 13:00).
Horodatages vidéo
00:00 Début
1:47 Introduction au joystick XY
7:32 Mesure des valeurs du joystick
Câblage expliqué à 8:40
11:06 Code Arduino pour Joystick avec ESP32 expliqué
14:43 Sélection de la carte ESP32 et du port COM dans l'IDE Arduino
16:24 Démonstration de l'utilisation simple du joystick
19:20 Détection de la position du code du joystick avec buzzer
21:16 Démonstration de la détection de position
Images
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick