Atelier 8 - Joystick et Leds

Pour vous aider

Matériel

Branchements joystick

GND

+5V

VRX

VRY

SW

GND

+5V

A2

A1

10

Branchements leds

+ led1

+led2

6

9

Ne pas oublier les résistances à 220 pour leur GND

Branchements complet

Haut

Centre

Bas

Gauche

Centre

Droite

> 514

514

< 514

< 494

494

< 494

Y

X

Lire ce que nous renvoit le joystick

Ce sont les valeurs qu'il m'a renvoyé à moi, attention à bien vous fier à votre moniteur.

Déclaration

On déclare toutes nos variables et le branchement de tous nos composants.

const char axeX = 2;
const char axeY = 1;
const char bouton = 10;
const char ledG = 6;
const char ledD = 9;

//on met les valeurs de X et de Y à 0
unsigned int valeurX = 0;
unsigned int valeurY = 0;

Initialisation

On initialise tous nos composants

 pinMode(axeX, INPUT);
 pinMode(axeY, INPUT);
 pinMode(bouton, INPUT);
 pinMode(ledG, OUTPUT);
 pinMode(ledD, OUTPUT);

 digitalWrite(bouton, HIGH); //par défaut, le bouton = 1, quand on appuie = 0

 Serial.begin(9600); // nous permet de voir dans le moniteur les effets du joystick et 
                    //d'établir nos X/Y min et max

Récupérer les valeurs numériques du joystick

Ouvrez votre moniteur et observez

 valeurX = analogRead(axeX);
 valeurY = analogRead(axeY);
 Serial.println(valeurY);
 delay(1000); //ne pas hésiter à ajouter un delay pour rendre l'info lisible

Joystick à gauche et à droite

Voici le début du code... à vous de faire la suite ! ;) N'oubliez pas de vous baser sur les valeurs que vous retourne le moniteur.

if(valeurX < 494){
    
    if(valeurX > 400){
      analogWrite(ledG, 25);
    }

    else if((valeurX > 300) && (valeurX < 400)){
      analogWrite(ledG, 50);
    }

    else if((valeurX > 200) && (valeurX < 300)){
      analogWrite(ledG, 150);
    }

    else if((valeurX > 100) && (valeurX < 200)){
      analogWrite(ledG, 200);
    }

    else if(valeurX > 100){
      analogWrite(ledG, 255);
    }

Joystick en haut et en bas

Voici le début du code... à vous de faire la suite ! ;) N'oubliez pas de vous baser sur les valeurs que vous retourne le moniteur.

if(valeurY > 514){

    if(valeurY < 600){
      digitalWrite(ledG, HIGH);
      delay(200);
      digitalWrite(ledG, LOW);
      delay(200);
      digitalWrite(ledD, HIGH);
      delay(200);
      digitalWrite(ledD, LOW);
      delay(200);
    }

Joystick en haut et en bas

Voici le début du code... à vous de faire la suite ! ;) N'oubliez pas de vous baser sur les valeurs que vous retourne le moniteur.

if(valeurY > 514){

    if(valeurY < 600){
      digitalWrite(ledG, HIGH);
      delay(200);
      digitalWrite(ledG, LOW);
      delay(200);
      digitalWrite(ledD, HIGH);
      delay(200);
      digitalWrite(ledD, LOW);
      delay(200);
    }

Position centrale du joystick

N'oubliez pas de vous baser sur les valeurs que vous retourne le moniteur.

  if((valeurX == 494) && (valeurY == 514)){
    digitalWrite(ledG, LOW);
    digitalWrite(ledD, LOW);
  }

Bouton du joystick

N'oubliez pas de vous baser sur les valeurs que vous retourne le moniteur.

  if(!digitalRead(bouton)){
    digitalWrite(ledG, HIGH);
    digitalWrite(ledD, HIGH);
  } 

Bien joué ! :)

Atelier 8 - Joystick et Leds

By juliegarnier

Atelier 8 - Joystick et Leds

  • 1,018