ESP32 C3 Super Mini - Joystick
Apprenez à connecter et programmer un module joystick avec votre carte ESP32 C3 Super Mini. Ce didacticiel convivial pour les débutants couvre tout, du câblage à la lecture des valeurs analogiques et à leur conversion en commandes de contrôle.
Dans ce didacticiel joystick ESP32 C3 Super Mini, vous apprendrez:
- Ce qu'est un capteur joystick et comment il génère les coordonnées X/Y
- Comment câbler le module joystick à l'ESP32 C3 Super Mini
- Comment programmer l'ESP32 C3 Super Mini pour lire les valeurs analogiques du joystick
- Comment convertir les lectures du joystick en commandes directionnelles
- Comment lire l'état du bouton-poussoir intégré

Matériel requis
| 1 | × | ESP32 C3 Super Mini | |
| 1 | × | Câble USB Type-C | |
| 1 | × | Joystick | |
| 1 | × | Plaque d'essai | |
| 1 | × | Câbles Jumper | |
| 1 | × | (Optionnel) Connecteur d'alimentation CC |
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du capteur joystick
Le capteur joystick est un module d'entrée analogique qui détecte la position dans deux dimensions et inclut un bouton-poussoir intégré.
Caractéristiques clés du module joystick:
- Deux potentiomètres internes positionnés perpendiculairement l'un à l'autre
- Génère la coordonnée X en valeur analogique (0 à 4095 sur l'ESP32)
- Génère la coordonnée Y en valeur analogique (0 à 4095 sur l'ESP32)
- Bouton-poussoir intégré pour la détection de clic
- Crée des coordonnées 2D basées sur la position du joystick
- Les valeurs de position centrale représentent l'état de repos
- Couramment utilisé dans les contrôleurs de jeux, les jouets RC et les contrôles de machines
- Parfait pour l'entrée directionnelle dans les projets Arduino et ESP32
- Convivial pour les débutants avec des fonctions de lecture analogique simples
Brochage
Le module joystick possède 5 broches pour se connecter à votre ESP32 C3 Super Mini:
- GND: Connectez à la masse (0V)
- VCC: Connectez à l'alimentation (3.3V)
- VRX: Sortie analogique pour la position horizontale (axe X)
- VRY: Sortie analogique pour la position verticale (axe Y)
- SW: Sortie numérique du bouton-poussoir interne (normalement HIGH avec résistance pull-up, LOW lorsqu'il est enfoncé)

Fonctionnement
Mouvement de l'axe X (gauche/droite):
- Le déplacement du joystick à gauche/droite modifie la tension sur la broche VRX
- La tension varie de 0V (gauche) à 3.3V (droite)
- L'ESP32 C3 Super Mini lit les valeurs analogiques de 0 à 4095
- La valeur est proportionnelle à la position horizontale du pouce
Mouvement de l'axe Y (haut/bas):
- Le déplacement du joystick vers le haut/bas modifie la tension sur la broche VRY
- La tension varie de 0V (haut) à 3.3V (bas)
- L'ESP32 C3 Super Mini lit les valeurs analogiques de 0 à 4095
- La valeur est proportionnelle à la position verticale du pouce
Mouvement diagonal:
- Les tensions VRX et VRY changent simultanément
- Chaque axe génère proportionnellement à la projection de position
- Crée des coordonnées 2D fluides pour n'importe quelle direction
Fonction du bouton-poussoir:
- Appuyez sur le joystick vers le bas pour activer le bouton interne
- Avec une résistance pull-up, la broche SW génère 3.3V normalement
- L'appui sur le bouton tire la broche SW à 0V (GND)
- L'ESP32 lit HIGH lorsqu'il est relâché, LOW lorsqu'il est enfoncé
Schéma de câblage
Connectez votre module joystick à l'ESP32 C3 Super Mini en suivant ce schéma de câblage:

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Tableau de connexion:
| Joystick Pin | ESP32 C3 Super Mini Pin |
|---|---|
| GND | GND |
| VCC | 3.3V |
| VRX | A1 |
| VRY | A0 |
| SW | D10 |
Comment programmer pour le joystick
Le joystick comporte deux composants de programmation à gérer avec votre ESP32 C3 Super Mini:
Lecture des axes analogiques (coordonnées X, Y):
- Utilisez la fonction analogRead() pour les broches VRX et VRY
- Retourne des valeurs de 0 à 4095 sur l'ESP32 C3 Super Mini
- Lecture simple d'une ligne pour chaque axe
Lecture du bouton numérique (broche SW):
- Traitez comme une entrée de bouton-poussoir standard
- Utilisez la bibliothèque ezButton pour le débottage facile
- La bibliothèque active automatiquement la résistance pull-up interne
- Voir ESP32 C3 Super Mini - Bouton pour les détails
- Les exemples de code de bouton sont fournis dans les sections suivantes
Conversion des valeurs en commandes:
- Les valeurs analogiques brutes peuvent nécessiter une conversion pour les applications de contrôle
- Convertissez en commandes directionnelles (HAUT, BAS, GAUCHE, DROITE)
- Mappez à des angles de servo pour les mécanismes pan-tilt
- Mettez à l'échelle les valeurs de vitesse du moteur
- Les codes d'exemple de conversion sont fournis ci-dessous
Code ESP32 C3 Super Mini
Cette section fournit plusieurs exemples de joystick ESP32 C3 Super Mini:
Ce que ces exemples de code démontrent:
- Lecture des valeurs analogiques X et Y depuis le joystick
- Lecture des valeurs analogiques plus l'état du bouton-poussoir
- Conversion des lectures analogiques en commandes directionnelles
- Mappage de la position du joystick aux angles du servo moteur
- Applications pratiques pour le contrôle de jeux et de robots
Lit les valeurs analogiques du joystick
Étapes rapides
- Nouveau sur ESP32 C3 Mini? Complétez d'abord notre didacticiel ESP32 C3 Super Mini - Premiers pas pour configurer votre environnement de développement.
- Câblez les composants: Suivez le schéma de câblage ci-dessus pour connecter le joystick à votre ESP32 C3 Super Mini.
- Connectez la carte: Branchez votre ESP32 C3 Super Mini sur votre ordinateur à l'aide d'un câble USB Type-C.
- Ouvrez l'IDE Arduino: Lancez l'IDE Arduino sur votre ordinateur.
- Sélectionnez la carte et le port: Choisissez l'ESP32 C3 Super Mini dans le menu des cartes et sélectionnez le port COM correct.
- Téléchargez le code: Copiez le code ci-dessus, collez-le dans l'IDE Arduino et cliquez sur le bouton Télécharger.
- Testez le joystick: Poussez le pouce du joystick au maximum dans toutes les directions.
- Faites pivoter le joystick: Déplacez le pouce en cercle complet (sens des aiguilles d'une montre ou inversement).
- Ouvrez le Moniteur série: Vérifiez la sortie pour voir les valeurs des coordonnées X et Y.
- Identifiez les directions: Regardez le Moniteur série pendant la rotation pour identifier les positions correspondant à gauche/droite/haut/bas (X=0 est gauche, Y=0 est haut).
- Conseil professionnel: Marquez la base du joystick avec des flèches indiquant les directions des coordonnées pour une référence facile dans les projets futurs.
※ Note:
Vous remarquerez peut-être que les valeurs analogiques ne sont pas parfaitement linéaires avec le mouvement du joystick. Ceci est dû aux caractéristiques du convertisseur analogique-numérique de l'ESP32 C3 Super Mini, et non du joystick lui-même. Voir la note d'étalonnage du convertisseur analogique-numérique à la fin de ce didacticiel pour plus d'informations.
Lit les valeurs analogiques et lit l'état du bouton depuis un joystick
Étapes rapides
- Installez la bibliothèque ezButton: Cliquez sur l'icône du Gestionnaire de bibliothèques dans la barre de navigation gauche de l'IDE Arduino.
- Recherchez la bibliothèque: Tapez "ezButton" dans la zone de recherche.
- Trouvez la bibliothèque: Localisez la bibliothèque de boutons par ArduinoGetStarted.com.
- Installez: Cliquez sur le bouton Installer pour ajouter la bibliothèque ezButton à votre IDE Arduino.
- Search for ezButton created by ArduinoGetStarted.com and click the Install button.
- Téléchargez le code: Copiez le code ci-dessus dans l'IDE Arduino et cliquez sur Télécharger.
- Testez le mouvement X/Y: Poussez le pouce du joystick à gauche, à droite, vers le haut et vers le bas.
- Testez le bouton: Appuyez sur le pouce du joystick vers le bas par le haut pour activer le bouton.
- Affichez les résultats: Ouvrez le Moniteur série pour voir les valeurs X, Y et les changements d'état du bouton.
- Conseil professionnel: La bibliothèque ezButton gère automatiquement le débottage, vous donnant une détection de pression de bouton nette sans code supplémentaire.
Convertit la valeur analogique en commandes DÉPLACER GAUCHE/DROITE/HAUT/BAS
Étapes rapides
- Téléchargez le code: Copiez le code de conversion de commande dans l'IDE Arduino et cliquez sur Télécharger.
- Déplacez le joystick: Poussez le pouce dans différentes directions - gauche, droite, haut, bas et diagonal.
- Vérifiez le Moniteur série: Ouvrez le Moniteur série pour voir les sorties de commande directionnelles.
- Testez les diagonales: Déplacez-vous aux coins pour voir plusieurs commandes simultanées (par exemple, "HAUT + GAUCHE").
- Conseil professionnel: Ajustez les valeurs de seuil dans le code pour rendre le joystick plus ou moins sensible à vos mouvements.
※ Note:
Le joystick peut générer zéro, une ou deux commandes simultanément. Par exemple, lorsqu'il est poussé vers le coin supérieur gauche, il génère à la fois "DÉPLACER HAUT" et "DÉPLACER GAUCHE" en même temps, idéal pour le mouvement diagonal dans les jeux et les robots.
Convertit les valeurs analogiques en angles pour contrôler deux servo moteurs
Pour des instructions détaillées sur le contrôle des servo moteurs avec votre joystick ESP32 C3 Super Mini, voir le didacticiel complet: ESP32 C3 Super Mini - Joystick contrôle Servo Motor
Ce que vous apprendrez dans le didacticiel du servo:
- Mappage des valeurs X/Y du joystick aux angles du servo (0-180 degrés)
- Contrôle des mécanismes de caméra pan-tilt
- Construction de commandes de bras robotique interactif
- Réponse du servo en temps réel au mouvement du joystick
※ Note:
Informations importantes sur la précision du convertisseur analogique-numérique:
Ce didacticiel utilise la fonction analogRead() pour lire les valeurs d'un convertisseur analogique-numérique (ADC) connecté à un capteur ou à un composant. Le convertisseur analogique-numérique de l'ESP32 C3 Super Mini convient aux projets qui ne nécessitent pas une haute précision. Cependant, pour les projets nécessitant des mesures précises, gardez à l'esprit les points suivants:
- Le convertisseur analogique-numérique de l'ESP32 C3 Super Mini n'est pas parfaitement précis et peut nécessiter un étalonnage pour les résultats corrects. Chaque carte ESP32 C3 Super Mini peut varier légèrement, donc un étalonnage est nécessaire pour chaque carte individuelle.
- L'étalonnage peut être difficile, surtout pour les débutants, et ne donne pas toujours les résultats exacts que vous souhaitez.
Pour les projets nécessitant une haute précision, envisagez d'utiliser un convertisseur analogique-numérique externe (par exemple ADS1115) avec l'ESP32 C3 Super Mini ou d'utiliser un autre Arduino, tel que l'Arduino Uno R4 WiFi, qui dispose d'un convertisseur analogique-numérique plus fiable. Si vous souhaitez toujours étalonner le convertisseur analogique-numérique de l'ESP32 C3 Super Mini, consultez le pilote d'étalonnage du convertisseur analogique-numérique ESP32.
Idées d'application et de projet
Utilisez votre configuration joystick ESP32 C3 Super Mini dans ces projets passionnants:
- Construisez une voiture RC sans fil avec contrôle directionnel
- Créez un système de caméra pan-tilt pour le suivi vidéo
- Concevez un contrôleur de jeu pour les jeux basés sur Arduino
- Contrôlez un bras robotique avec des mouvements intuitifs du joystick
- Fabriquez une interface de contrôleur de drone de vol
- Construisez un système de contrôle de joystick pour fauteuil roulant électrique
- Créez une console de jeu de style arcade
- Concevez un slider de caméra avec contrôle de positionnement précis
Didacticiel vidéo
Regardez la vidéo ci-dessous pour une démonstration visuelle de ce projet.
Défiez-vous
Testez vos compétences en joystick ESP32 C3 Super Mini avec ces défis:
- Facile: Ajoutez des indicateurs LED qui s'allument en fonction de la direction du joystick (4 LED pour haut/bas/gauche/droite).
- Facile: Affichez les valeurs X et Y du joystick sur un écran OLED ou LCD au lieu du Moniteur série.
- Moyen: Créez un programme de dessin qui trace les mouvements du joystick sur un affichage OLED en temps réel.
- Moyen: Ajoutez un contrôle de vitesse en mappant la distance du joystick par rapport au centre aux valeurs de vitesse du moteur.
- Avancé: Construisez un contrôleur joystick sans fil utilisant ESP-NOW pour contrôler un autre ESP32 à distance.
- Avancé: Implémentez la reconnaissance de gestes qui détecte les modèles de mouvement de joystick spécifiques (cercles, figure-8s, etc.).