Le Joystick

joystick

Le joystick est un capteur de position actionnant 2 potentiomètres de 10KOhm qui renvoie deux valeurs analogiques représentant sa position X,Y. Un bouton poussoir permet d'envoyer un contact (digital)

Il peut servir pour naviguer dans un menu ou bien pour piloter un objet en direction ou en vitesse.

Il peut etre facilement utilisé avec une carte Arduino et/ou un Raspberry Pi




Brochage

Masse
Alimentation
Axe X
Axe Y
Bouton poussoir
GND
Vcc (+5v)
VRx
VRy
SW
Analogique
Analogique
Digital


Joystick
brochage


Utilisation avec un Arduino

joystick_2-Servo_1-Led

Utilisation du joystick pour commander 2 servomoteurs et l'allumage d'une LED avec un Arduino Uno

  • Servomoteur X en D9 (PWM)
  • Servomoteur Y en D10 (PWM)
  • LED en D2
  • Joystick Vertical en A0
  • Joystick Horizontal en A1
  • Joystick SW en D4

Code Arduino

joystick_code


Le code est disponible sur le simulateur Wokwi  (Paragraphe précédent)

/*
 * Claude EMERY
 * 13/04/2024
 * 2 servomoteur + 1 joystick + Arduino Uno
 */

#include <Servo.h>
 
Servo servoX;  //Servomotor
Servo servoY;
int joyX = A0;  //Horizontal - VRx sur A0
int joyY = A1;  //Vertical - VRy sur A1
int joySw = 4;  //Joystick SW sur D4
int led = 2;  //LED sur D2
int valServoX;
int valServoY;
 
void setup()
{
  servoX.attach(9);
  servoY.attach(10);
  pinMode(led, OUTPUT);  //Pin LED en INPUT
  pinMode(joySw, INPUT_PULLUP);  //Pin SW en OUTPUT
}
 
void loop() {
  ServoX_Run();
  ServoY_Run();
  LedOnOff();
}
 void ServoX_Run(){  //Rotation ServoX
  valServoX = analogRead(joyX);  //Lecture de la valeur analogique ServoX
  valServoX = map(valServoX, 0, 1023, 0, 180);  //Conversion la valeur analogique en angle
  servoX.write(valServoX);  //Rotation du servomoteur ServoX
  delay(15);
 }
 void ServoY_Run(){ //Rotation ServoY
  valServoY = analogRead(joyY);  //Lecture de la valeur analogique ServoY
  valServoY = map(valServoY, 0, 1023, 0, 180);  //Conversion la valeur analogique en angle
  servoY.write(valServoY);  //Rotation du servomoteur ServoY
  delay(15);
 }
void LedOnOff(){ //Allumer/Eteindre la Led avec appui sur SW
  if (digitalRead(joySw) == LOW) {  //Si SW est appuyé ....
    digitalWrite(led, HIGH);  //Allumer la Led
    }
  else{
  digitalWrite(led,LOW);  //Eteindre la Led
  }
}



Personnaliser

Google Analytics

Google Analytics est un service utilisé sur notre site Web qui permet de suivre, de signaler le trafic et de mesurer la manière dont les utilisateurs interagissent avec le contenu de notre site Web afin de l’améliorer et de fournir de meilleurs services.

Facebook

Notre site Web vous permet d’aimer ou de partager son contenu sur le réseau social Facebook. En l'utilisant, vous acceptez les règles de confidentialité de Facebook: https://www.facebook.com/policy/cookies/

Twitter

Les tweets intégrés et les services de partage de Twitter sont utilisés sur notre site Web. En activant et utilisant ceux-ci, vous acceptez la politique de confidentialité de Twitter: https://help.twitter.com/fr/rules-and-policies/twitter-cookies