Bonsoir,
Essayant de faire un programme contenant la boucle while,celle ci ne fait pas ce que je veux.
la variable est la lecture d'un bouton , 0 si enfoncé, 1 si appuyé .
Avec digitalRead, j'ai constaté que la valeur passait bien de 0 à1 , mais elle ne sort pas de la boucle infinie.
Alors que si j'appuie sur le bouton dès le départ , elle lit bien 1 et ne rentre pas dans la boucle; mais si je relâche, alors le 0 est lu, ça rentre dans la boucle, mais impossible d'en sortir ( malgré que j'enfonce le bouton , ça lit bien 1 , mais ça reste dans la boucle )
Où ai-je fait une erreur ?
Merci
// Constantes
// les relais
const int relais1 = 2;
const int relais2 = 4;
const int relais3 = 7;
const int relais4 = 8;
const int relais6 = 11;
const int relais5 = 12;
const int boutonBas = 9;
const int boutonHaut = 10;
// variable qui enregistre l'état du bouton
int etatBoutonBas;
int L = analogRead(A0);
int N = 100;
int J = 400;
unsigned long T = 1500;
int LN1 = 5;
int LN2 = 6;
int LN3 = 7;
int LJ1 = 915;
int LJ2 = 916;
int LJ3 = 917;
void setup() {
Serial.begin(115200);
//declaration des pins pour les relais en sortie=
pinMode (relais1, OUTPUT);
pinMode (relais2, OUTPUT);
pinMode (relais3, OUTPUT);
pinMode (relais4, OUTPUT);
pinMode (relais5, OUTPUT);
//declaration de la pin pour la photoresistance en entrée=
pinMode (A0, INPUT);
pinMode(boutonBas, INPUT_PULLUP);
etatBoutonBas = HIGH; // on initialise l'état du bouton comme "relaché"
}
void loop() {
digitalWrite(relais1, HIGH);
digitalWrite(relais2, HIGH);
digitalWrite(relais3, HIGH);
digitalWrite(relais4, HIGH);
digitalWrite(relais5, LOW);
Serial.println(" 111111111111111111111111111111111 DEBUT");
L = analogRead(A0);
Serial.println(L);
if (L < N) {
Serial.println(" N 1");
L == LN1;
delay (T);
Serial.print("Analog reading = ");
}
L = analogRead(A0);
Serial.println(L);
if (L < N) {
Serial.println(" N 2");
L = LN2;
delay (T);
Serial.print("Analog reading = ");
}
L = analogRead(A0);
Serial.println(L);
if (L < N) {
L == LN3;
delay (T);
L == LN3 ;
digitalRead(9);
Serial.println ( digitalRead(9));
Serial.println("vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv");
digitalWrite(relais3, HIGH);
digitalWrite(relais4, HIGH);
digitalWrite(relais1, LOW);
digitalWrite(relais2, LOW);
delay (1500);
digitalWrite(relais1, HIGH);
digitalWrite(relais2, HIGH);
digitalWrite(relais5, HIGH); // allumé
delay (500);
digitalWrite(relais5, LOW); // éteint
etatBoutonBas = digitalRead(boutonBas); // Rappel : boutonBas = 9 PERMET DE SAVOIR SI OUI OU NON ON EST EN BAS
digitalRead(boutonBas);
Serial.println ( digitalRead(9));
Serial.println("00000000000000000000000 ");
while ( etatBoutonBas == 0 ) {
Serial.println("ZZZZZZZZZZZZZZZ ");
digitalWrite(relais3, LOW); // PORTE DESCENT LOW == ALLUMER
digitalWrite(relais4, LOW); // PORTE DESCENT LOW == ALLUMER
digitalRead(etatBoutonBas);
Serial.println ( digitalRead(9));
Serial.println(" BOUTON ETEINT");
}
digitalRead(boutonBas);
Serial.println ( digitalRead(9));
Serial.println ( "kkkkkkkkkkkkkkkkkkkkk");
}
}