Arduino Problème de Bouton

Bonjour,
Je suis entrain de faire un code arduino, mais je n'arrive pas à créer un bouton de secours. Je m'explique.

J'ai 12 switch magnétiques qui au contact d'un aimant sur chaque switch me fait monter un vérin.
Jusqu'à la mon code marche et le vérin s'active au contact des 12 aimants sur les switch.

Hors j'aurais voulais avoir un bouton poussoir de secours en plus, qui me permettrait de faire monter le vérin au cas ou un switch ne fonctionne pas ou soit mal placé.

Voici le code que j'ai crée de base :

void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  pinMode(6, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
  pinMode(10, INPUT_PULLUP);
  pinMode(11, INPUT_PULLUP);
  pinMode(12, INPUT_PULLUP);
  pinMode(13, INPUT_PULLUP);
  pinMode(A0, INPUT_PULLUP);
  pinMode(A1, INPUT_PULLUP);

  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);

}

void loop() {
if(digitalRead(2) == LOW & digitalRead(3) == LOW & digitalRead(4) == LOW & digitalRead(5) == LOW & digitalRead(6) == LOW & digitalRead(7) == LOW & digitalRead(10) == LOW & digitalRead(11) == LOW & digitalRead(12) == LOW & digitalRead(13) == LOW & digitalRead(A0) == LOW & digitalRead(A1) == LOW){
  digitalWrite(8, LOW);
  digitalWrite(9, HIGH);
}
  else {
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
}
}

et voici le code avec le bouton de secours qui ne fonctionne pas...

void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  pinMode(6, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
  pinMode(10, INPUT_PULLUP);
  pinMode(11, INPUT_PULLUP);
  pinMode(12, INPUT_PULLUP);
  pinMode(13, INPUT_PULLUP);
  pinMode(A0, INPUT_PULLUP);
  pinMode(A1, INPUT_PULLUP);
  pinMode(A2, INPUT);

  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);

}

void loop() {
if(digitalRead(2) == LOW & digitalRead(3) == LOW & digitalRead(4) == LOW & digitalRead(5) == LOW & digitalRead(6) == LOW & digitalRead(7) == LOW & digitalRead(10) == LOW & digitalRead(11) == LOW & digitalRead(12) == LOW & digitalRead(13) == LOW & digitalRead(A0) == LOW & digitalRead(A1) == LOW){
  digitalWrite(8, LOW);
  digitalWrite(9, HIGH);
}
  else if(digitalRead(A2) == HIGH) {
  digitalWrite(8, LOW);
  digitalWrite(9, HIGH);
}
  else {
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
}
}

Merci d'avance pour vos conseils !

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Bonjour,

Essaye ça:

void loop() {
if(digitalRead(2) == LOW & digitalRead(3) == LOW & digitalRead(4) == LOW & digitalRead(5) == LOW & digitalRead(6) == LOW & digitalRead(7) == LOW & digitalRead(10) == LOW & digitalRead(11) == LOW & digitalRead(12) == LOW & digitalRead(13) == LOW & digitalRead(A0) == LOW & digitalRead(A1) == LOW){
  digitalWrite(8, LOW);
  digitalWrite(9, HIGH);
}
  
if(digitalRead(A2) == HIGH) {
  digitalWrite(8, LOW);
  digitalWrite(9, HIGH);
}

else {
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
}
}

Je n'ai pas testé

Merci mais non cela ne fonctionne pas. Plus rien ne marche.

Salut.
Le ET logique s'écrit &&, et non pas &.

Bonjour,

Ton programme avec le bouton de secours doit fonctionner. As tu bien mis une résistance de pull down?

Il aurait été plus simple de l'écrire comme ça

void loop() {
  if((digitalRead(2) == LOW && digitalRead(3) == LOW && digitalRead(4) == LOW && digitalRead(5) == LOW && digitalRead(6) == LOW && digitalRead(7) == LOW && digitalRead(10) == LOW && digitalRead(11) == LOW && digitalRead(12) == LOW && digitalRead(13) == LOW && digitalRead(A0) == LOW && digitalRead(A1) == LOW)
    || digitalRead(A2) == HIGH){
    digitalWrite(8, LOW);
    digitalWrite(9, HIGH);
  }
  else {
    digitalWrite(8, HIGH);
    digitalWrite(9, LOW);
  }
}

Pourquoi ne pas avoir utilisé INPUT_PULLUP pour le bouton de secours comme pour les switchs?

Au top ! Ca marche super. Merci pour les astuces et le code c'est super gentil !

Content que ça fonctionne, mais je pense que ton programme devrait fonctionner aussi.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.