Bonjour,

Sujet: J'ai 4 LED et 3 boutons poussoir. Pour qu'une LED s'allume, il faut appuyer sur les 3 boutons en même temps.

Problème: La LED s'allume déjà lorsque j'appuie sur le bouton1 et non lorsque j'appuie simultanément sur bouton1 && bouton2 && bouton3.

Je n'arrive pas à résoudre ce problème... Que pensez-vous de mon code ?

Merci.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
 
 
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
 
int bouton1 = 6;
int bouton2 = 7;
int bouton3 = 8;
 
int led = 0;
int newled = 0;
 
static int etatprec=HIGH;
 
void setup() {
 
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
 
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
 
}
 
void loop() {
 
int etat = digitalRead(6) && digitalRead(7) && digitalRead(8);
 
if (etat == LOW && etatprec==HIGH)
 
  {
newled = led + 1;
 
led = newled;
  }
etatprec=etat;
 
 
if (led == 1) {
 
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW); 
 
  }
 
 
 
if (led == 2) {
 
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, LOW); 
 
  }
 
if (led == 3) {
 
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW); 
 
  }
 
  if (led == 3) {
 
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH); 
 
  }
 
}