[Non Réglé] Problème boutton / joystick 5 switch.

Bonjour à tous !

Voilà, je viens demander de l'aide en urgence la veille d'un exam' de bac, qui consistait à réaliser un projet en arduino.
Je possède une arduino uno R3 avec un 4Display Shield 160.

Pour le joystick, j'ai ce schéma : http://www.4dsystems.com.au/downloads/Arduino/Shields/4Display-Shield-160-sch.pdf

Mais pas moyen de savoir comment cela fonctionne !
Les 5 voies sur bouton sont reliées aux sorties digitales D2,3,4,5,6.
Je ne sais absolument pas quoi faire pour utiliser ce joystick.

J'ai bien tenté cela :

const int joy=4;

void setup()
{
Serial.begin(9600);
pinMode(joy, OUTPUT);
}

void loop()
{
digitalWrite(joy, HIGH);
Serial.println(digitalRead(joy));
delay(3000);
}

Logiquement, si il n'y a pas de connexion dans le switch, entre D4 et la masse, il ne peut pas y avoir de tension, or, il m'en trouve une ! Le digitalRead me donne 1 !
Même si je presse le bouton dans les autres sens.

Je ne sais absolument PAS ce que je dois faire pour utiliser ce joystick, comment le déclarer...
Quelqu'un pourrait-il m'éclairer ? C'est vraiment urgent et ce serait adorable, merci !

Bonjour
qu'est ce que le joystick est sensé faire : actionner des relais, afficher up, down, left, right sur un écran, ... ?
A+

Je ne sais absolument pas quoi faire pour utiliser ce joystick.

Ouai d'accord mais t'as un cerveau.
Réflechissons un peu.
Un joystick c'est un organe d'entrée il me semble.....
Donc:

const int joy=4;

void setup()
{
  Serial.begin(9600);
  pinMode(joy, OUTPUT);
}

void loop()
{
  digitalWrite(joy, HIGH);
  Serial.println(digitalRead(joy));
  delay(3000);
}

n'a aucun sens puisque tu places la broche en sortie et qu'en plus tu appliques un niveau haut sur celle-ci.

Tu ne penses pas que si tu déclarais les broches en entrée cela aurait plus de sens

const int joy=4;

void setup()
{
  Serial.begin(9600);
  pinMode(joy, INPUT);
  digitalWrite(joy, HIGH); // pour activer le pullup
}

void loop()
{
  Serial.println(digitalRead(joy)); // si le bouton est appuyé tu lis 0 sinon 1
  delay(3000);
}

Après il ne reste plus qu'à faire la même chose pour les 4 autres broches afin de lire toute les directions du joystick.

Je sais qu'à première vue, le code que j'ai fournis semble totalement stupide et irréfléchit.
Bien sûr, j'ai un cerveau, je sais très bien qu'un bouton poussoir n'est qu'un simple contact ouvert ou fermé.

Cela dit, le code que tu as fournis, je l'ai déjà essayé. Et j'ai eu la surprise de voir qu'il... Ne marchait pas.
Alors j'ai commencé à tester tout un tas de trucs... Avant de me rendre compte que c'était simplement des contacts normalement fermés. --"

Merci et bonne journée ! :slight_smile: