Joystick pour arduino (KY-023)

Joystick pour arduino (KY-023)

Code produit: KY-023
Qté en Stock : 17
  • $4.49


La position X et Y du joystick est sortie sous forme de tension analogique sur les broches de sortie.

Dans ce joystick, un potentiomètre séparé a été installé pour l'axe X et pour l'axe Y. On obtient ainsi un diviseur de tension comme celui de l'image suivante.

A l'état de repos, le potentiomètre est au milieu, de sorte que la résistance 1=résistance 2, ce qui signifie que la tension appliquée est répartie de manière égale entre les deux - par exemple, la valeur mesurée à +V=5V -> 2,5V.

Si maintenant la position de l'axe X, par exemple, est modifiée, les résistances respectives changent en fonction de la position actuelle - par exemple, si elle va dans une direction, la résistance 1 devient plus petite et la résistance 2 plus grande, si elle va dans l'autre direction, la résistance 1 devient plus grande et la résistance 2 plus petite.

Selon la façon dont les résistances sont réparties entre elles, il en résulte une valeur de tension respective qui peut être mesurée entre les résistances (dans le cas du potentiomètre, ce que l'on appelle des curseurs) et ainsi déterminer la position de l'axe.

Affectation des broches

Exemple de code Arduino

Affectation des broches Arduino

Arduino Capteur
5V +V
Masse GND
Pin A1 VRy
Pin A0 VRx
Pin 3 Bouton

Le programme lit les valeurs actuelles des broches d'entrée, les convertit en une tension (0-1023 -> 0V-5V) et la sort sur la sortie série.

// Déclaration et initialisation des broches d'entrées
int JoyStick_X = A0; // Signal de l'axe X
int JoyStick_Y = A1; // Signal de l'axe Y
int Button = 3; // Bouton
 
void setup ()
{
  pinMode (JoyStick_X, INPUT);
  pinMode (JoyStick_Y, INPUT);
  pinMode (Button, INPUT);
   
  // Lorsqu'on pousse sur le bouton, la mise à la masse
  // active la résistance de PullUp.
  digitalWrite(Button, HIGH);  
   
  Serial.begin (9600); // Sortie série à 9600 bauds
}
 
// Le programme lit les valeurs des broches d'entrée et les envoie à la sortie série
void loop ()
{
  float x, y;
  int Knopf;
   
  //Les valeurs sont lues, sont converties en tension...
  x = analogRead (JoyStick_X) * (5.0 / 1023.0); 
  y = analogRead (JoyStick_Y) * (5.0 / 1023.0);
  Knopf = digitalRead (Button);
   
  //... et envoyées à la sortie série.
  Serial.print ("Axe X:"); Serial.print (x, 4);  Serial.print ("V, ");
  Serial.print ("Axe Y:"); Serial.print (y, 4);  Serial.print ("V, ");
  Serial.print ("Bouton:");
 
  if(Knopf==1)
  {
      Serial.println (" pas de pression sur le bouton");
  }
  else
  {
      Serial.println (" pression sur le bouton");
  }
  delay (200);
}
C++

Écrire une critique

Remarque: HTML n`est pas traduit!
    Mal           Bien
Captcha