Comment Connecter Un Joystick à Arduino

Table des matières:

Comment Connecter Un Joystick à Arduino
Comment Connecter Un Joystick à Arduino

Vidéo: Comment Connecter Un Joystick à Arduino

Vidéo: Comment Connecter Un Joystick à Arduino
Vidéo: How to connect and use an Analog Joystick with an Arduino - Tutorial 2024, Avril
Anonim

Il existe une grande variété de façons de transférer des informations d'une personne à un microcontrôleur ou à un ordinateur, et l'une d'entre elles utilise un joystick. Voyons comment connecter un joystick analogique à deux axes et un bouton à l'Arduino.

Joystick avec deux axes et un bouton
Joystick avec deux axes et un bouton

Il est nécessaire

  • -Arduino;
  • - joystick à deux axes;
  • - 3 résistances d'une valeur nominale de 220 Ohm;
  • - 1 RGB ou 3 LED conventionnelles.

Instructions

Étape 1

Le joystick est un appareil pratique et facile à utiliser pour transmettre des informations. Il existe un grand nombre de types de joysticks en termes de nombre de degrés de liberté, de principe de lecture des indications et de technologies utilisées. Les joysticks sont le plus souvent utilisés pour contrôler le mouvement de tous mécanismes, modèles contrôlés, robots. Le joystick analogique, que nous allons voir aujourd'hui, est une poignée fixée à une rotule avec deux axes perpendiculaires entre eux. Lorsque le bouton est incliné, l'axe fait tourner le contact mobile du potentiomètre, ce qui modifie la tension à sa sortie. De plus, le joystick analogique dispose d'un bouton tactile, qui se déclenche lorsque vous appuyez sur la poignée verticalement.

Schéma de principe du joystick
Schéma de principe du joystick

Étape 2

Connectez le joystick selon le schéma ci-dessous. Connectez les sorties analogiques X et Y du joystick aux entrées analogiques A1 et A2 de l'Arduino, la sortie du bouton SW à l'entrée numérique 8. Le joystick est alimenté par une tension de +5 V.

Schéma de câblage du joystick pour Arduino
Schéma de câblage du joystick pour Arduino

Étape 3

Afin de voir clairement comment fonctionne le joystick, écrivons un tel croquis. Déclarons les broches, définissons leurs modes de fonctionnement. Notez que dans la procédure setup(), nous définissons l'entrée switchPin à un niveau élevé. Cela active la résistance pull-up intégrée sur ce port. Si vous ne l'allumez pas, lorsque le bouton du joystick n'est pas enfoncé, le 8ème port Arduino se bloque dans les airs et attrape les micros. Cela conduira à des faux positifs indésirables et chaotiques.

Dans la procédure loop(), nous interrogeons constamment l'état du bouton et l'affichons à l'aide de la LED à la sortie 13. En raison de l'entrée switchPin tirée vers le haut, la LED est constamment allumée et lorsque le bouton est enfoncé, elle s'éteint, et non l'inverse.

Ensuite, nous lisons les lectures des deux potentiomètres du joystick - la sortie des axes X et Y. L'Arduino a un ADC 10 bits, donc les valeurs lues à partir du joystick se situent dans la plage de 0 à 1023. En position médiane du joystick, comme vous pouvez le voir sur l'illustration, les valeurs dans la région 500 se situent à peu près au milieu de la plage.

Un croquis pour démontrer le fonctionnement du joystick
Un croquis pour démontrer le fonctionnement du joystick

Étape 4

Habituellement, un joystick est utilisé pour contrôler les moteurs électriques. Mais pourquoi ne pas l'utiliser pour contrôler la luminosité d'une LED, par exemple ? Connectons une LED RVB (ou trois LED ordinaires) aux ports numériques 9, 10 et 11 de l'Arduino selon le schéma ci-dessus, sans oublier bien sûr les résistances.

Schéma de câblage du joystick et LED RVB vers Arduino
Schéma de câblage du joystick et LED RVB vers Arduino

Étape 5

Nous modifierons la luminosité des couleurs correspondantes lors du changement de position du joystick le long des axes, comme indiqué sur la figure. En raison du fait que le joystick peut ne pas être centré avec précision par le fabricant et que le milieu de l'échelle n'est pas aux alentours de 512, mais de 490 à 525, la LED peut s'allumer légèrement même lorsque le joystick est en position neutre. Si vous souhaitez qu'il soit complètement désactivé, apportez les modifications appropriées au programme.

Diagramme de la distribution de la luminosité des canaux R, V, B le long des axes X et Y
Diagramme de la distribution de la luminosité des canaux R, V, B le long des axes X et Y

Étape 6

Sur la base du schéma ci-dessus, nous allons écrire un croquis de l'Arduino pour contrôler la luminosité de la LED RVB à l'aide d'un joystick.

Tout d'abord, nous allons déclarer la correspondance des broches et de deux variables - ledOn et prevSw - pour travailler avec le bouton. Dans la procédure de configuration (), attribuez les fonctions aux broches et connectez la résistance de rappel à la broche du bouton avec la commande digitalWrite (swPin, HIGH).

Dans la boucle () nous définissons l'appui sur le bouton du joystick. Lorsque vous appuyez sur le bouton, nous basculons les modes de fonctionnement entre le mode "lampe de poche" et le mode "musique couleur".

En mode freeMode(), la luminosité des LED est contrôlée en inclinant le joystick dans différentes directions: plus l'inclinaison le long de l'axe est forte, plus la couleur correspondante brille. De plus, la transformation des valeurs est prise en charge par la fonction map (value, fromLower, fromUpper, toLower, toUpper). La fonction map () transfère les valeurs mesurées (de Low, à High) le long des axes du joystick vers la plage de luminosité souhaitée (à Low, à High). Vous pouvez faire la même chose avec des opérations arithmétiques ordinaires, mais cette notation est beaucoup plus courte.

En mode discoMode (), trois couleurs gagnent en luminosité et s'éteignent alternativement. Pour pouvoir sortir de la boucle lorsque le bouton est enfoncé, nous vérifions à chaque itération si le bouton a été enfoncé.

Croquis pour contrôler la luminosité de la LED à l'aide d'un joystick analogique
Croquis pour contrôler la luminosité de la LED à l'aide d'un joystick analogique

Étape 7

Le résultat est une lampe de poche composée d'une LED RVB tricolore, dont la luminosité de chaque couleur est réglée à l'aide d'un joystick. Et lorsque vous appuyez sur le bouton, le mode « musique couleur » est activé. Bien que je l'utilise, au contraire, comme veilleuse.

Ainsi, nous avons appris à connecter un joystick analogique à deux axes avec un bouton à l'Arduino et à lire les lectures à partir de celui-ci. Vous pouvez imaginer et mettre en œuvre une utilisation plus intéressante du joystick que notre exemple.

Conseillé: