Outils pour utilisateurs

Outils du site


start:arduino:joystick

Ceci est une ancienne révision du document !


Joystick et Arduino

Comment fonctionne un joystick ?

Le joystick est composé de deux potentiomètres. Un potentiomètre pour le mouvement de l'axe X et l'autre pour le mouvement de l'axe Y. Comment fonctionne un joystick

Les potentiomètres reposent toujours en position centrale. Si le potentiomètre est alimenté en 5 V, la valeur analogique mesurée au centre du potentiomètre sera de 2,5 V.

Dans l'image ci-dessous, vous pouvez voir les parties internes du joystick.

Parties internes du joystick Source : https://www.ifixit.com/News/48944/heres-why-ps5-joysticks-drift-and-why-theyll-only-get-worse

Vous avez besoin de deux broches d'entrée analogiques sur l'Arduino UNO pour lire les données du joystick. J'ai créé des graphiques simples qui montrent les valeurs analogiques attendues que vous lisez sur les deux potentiomètres.

Les deux potentiomètres tournent automatiquement au ralenti en position centrale. Cela signifie que la valeur lue sera la moitié de la résolution maximale de l'ADC.

Par exemple, si le bit ADC est de 10 bits, alors la valeur par défaut lue par les entrées analogiques sera 512.

La valeur ADC sera de 512 pour le potentiomètre en position de repos.

Dans l'image ci-dessus, vous pouvez voir le nombre d'ADC auquel vous pouvez vous attendre à différentes positions de l'arbre.

Lorsque vous avancez l'arbre, le potentiomètre de l'axe X reste inactif, mais le potentiomètre de l'axe Y avance complètement.

Par conséquent, les valeurs ADC pour les axes X et Y sont respectivement de 512 et 1024.

Les joysticks auront également un interrupteur momentané que vous pourrez utiliser pour des applications spécifiques.

Ainsi, un seul joystick suffit parfois pour effectuer diverses tâches.

Représentation électrique d'un joystick à deux axes Source : https://www.store-ino.com/?attachment_id=698

L'image ci-dessus montre une représentation électrique d'un joystick à deux axes. Vous pouvez également voir l’option de commutation.

Notez qu'il y a un potentiomètre de dix kOhms à l'intérieur du joystick. Tous les joysticks n'auront pas dix kOhms.

Cela n'a pas d'importance puisque ce que nous lisons comme tension analogique n'est que la différence relative de tension.

Voyons le brochage d'un joystick couramment disponible.

Sl. NonÉtiquette d'épingleFonction de broche
1GNDConnexion à la terre
25VAlimentation pour le joystick. Le 5 V fournit une tension de polarisation pour les potentiomètres
3VRxSortie de tension analogique pour le potentiomètre de l'axe X
4VRySortie de tension analogique pour le potentiomètre de l'axe Y
5SWSortie de commutation. La broche devient Bas ( O V ) lorsque l'interrupteur est enfoncé

Vous avez besoin de deux broches d'entrée analogiques et d'une broche d'entrée numérique sur l'Arduino pour terminer la connexion.

Vous pouvez utiliser l'une des deux entrées analogiques de l'Arduino UNO.

Arduino UNO dispose de six broches d'entrée analogiques étiquetées A0, A1, A2, A3, A4 et A5.

Bien que j'aie dit que l'ADC lirait 512 points lorsque le potentiomètre est inactif, ce ne sera pas précisément à mi-chemin. Vous pouvez voir un décalage de 5 ou 10 valeurs. Par conséquent, vous pouvez calibrer les trois positions : extrême gauche, extrême droite et ralenti.

Lors du calibrage du joystick, prenez suffisamment de valeurs et faites-en la moyenne pour trouver le décalage.

Je recommande de prendre au moins 100 valeurs. Cela permet de supprimer le bruit et de choisir une meilleure valeur de correction de décalage.

Voyons l'étalonnage du potentiomètre de l'axe X.

  • Gardez le joystick au ralenti (position centrale)
  • Lisez la valeur analogique de l'ADC.
  • Assurez-vous que la lecture est comprise entre 500 et 520. Ceci permet de garantir que la position de l'arbre est dans la position/l'état attendu.
  • Continuez à ajouter les lectures à une variable.
  • Répétez les étapes de 2 à 4 100 fois
  • Calculer la moyenne (Somme totale / 100)
  • Stockez la nouvelle valeur « moyenne ».

De même, vous pouvez calibrer le potentiomètre de l'axe X pour les positions finales. Suivez également les mêmes étapes pour le potentiomètre de l’axe Y.

Comment connecter le module joystick avec Arduino UNO 

-1- Connectez l'une des broches GND de l'Arduino à la broche étiquetée « GND » sur le module joystick.

J'insiste toujours pour démarrer les connexions en connectant d'abord les connexions GND.

-2- La broche SEL peut également être étiquetée SW. Il s'agit de l'interrupteur momentané présent dans le module.

N'oubliez pas d'activer le pullup interne sur cette broche. Connectez la broche SEL à la broche 6 de l'Arduino UNO.

-3- Connectez la broche d'entrée analogique A1 de l'Arduino UNO à la broche marquée « HOR » du module. L'étiquette HOR est également connue sous le nom d'axe X/VRx,

/home/chanteri/www/fablab37110/data/attic/start/arduino/joystick.1712048381.txt.gz · Dernière modification : 2024/04/02 10:59 de gerardadmin