Découvrez notre nouvelle Chaîne YouTube "Ingénierie & Bourse"

Objectifs

  1. Savoir le fonctionnement d’un  Joystick
  2. Savoir lire les voies X et Y et l’état de l’interrupteur d’un Joystick
  3. Savoir utiliser un Joystick avec Arduino
  4. Etc.

Fonctionnement

Le mini  projet consiste à la lecture des voies Vx, Vy ainsi l’état de l’interrupteur SW d’un Joystick avec Arduino. Ensuite, Controller l’allumage de 3 LEDS en fonction du Joystick

  • LED verte : Voie X
  • LED Bleus : Voie Y
  • LED blanche : Etat de l’interrupteur

Les voies analogiques Vx et Vy du Joystick sont branchées dans pins analogiques A0 et A1. Le pin digitale SW est branché le pin 5 de la carte Arduino. Les LED sont branchées dans les pins 3,4 et 6 de la carte Arduino (voir le code). Voir la vidéo pour plus de détails.

Joystick Avec Arduino

Programme Arduino

Lecture des voies X et Y et SW

Jx = analogRead(A0);
Jy = analogRead(A1);
SWState = !digitalRead(SW);

Conversion en Volt

Vx = (float)Jx * 5.0 / 1023.0;
Vy = (float)Jy * 5.0 / 1023.0;

Mise à jour de la luminosité des LEDs

analogWrite(LEDJx, Jx >> 2); // [0, 1023]=>[0, 255];
analogWrite(LEDJy, Jy >> 2);
digitalWrite(LEDSW,SWState);

Affichage des voies X et Y

Serial.print(Vx); Serial.print(",");
Serial.print(Vy); Serial.print(",");
Serial.println(5*SWState);

Programme complet

#define LEDJx   3
#define LEDJy   4
#define SW      5
#define LEDSW   6


int Jx, Jy, SWState = false;
float Vx, Vy;



void setup() {
  Serial.begin(9600);
  pinMode(SW, INPUT_PULLUP);
  pinMode(LEDJx, OUTPUT);
  pinMode(LEDJy, OUTPUT);
  pinMode(LEDSW, OUTPUT);
}

void loop() {
  // Lecture des voies X et Y et SW
  Jx = analogRead(A0);
  Jy = analogRead(A1);
  SWState = !digitalRead(SW);

  // Conversion en Volt
  Vx = (float)Jx * 5.0 / 1023.0;
  Vy = (float)Jy * 5.0 / 1023.0;

  // Mise à jour de la luminosité des LEDs
  analogWrite(LEDJx, Jx >> 2); // [0, 1023]=>[0, 255];
  analogWrite(LEDJy, Jy >> 2);
  digitalWrite(LEDSW,SWState); 
  
  // Affichage des voies X et Y
  Serial.print(Vx); Serial.print(",");
  Serial.print(Vy); Serial.print(",");
  Serial.println(5*SWState);
}

Tout les Projets Arduino


0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Anti-Robot *

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

FPGA | Arduino | Matlab | Cours will use the information you provide on this form to be in touch with you and to provide updates and marketing.