Catégories
Arduino capteur électronique Projets Arduino Projets électroniques

Projet Joystick avec Arduino

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

Laisser un commentaire