Bonsoir,

Dans mon code C++ pour Arduino qui suit, j'ai une erreur qui me génère ce message lors de la compilation: "expected unqualified-id before 'if'"

L'erreur émane de la ligne 161. Lorsque je supprime "clignotement2" et les lignes qui lui succède, le code refonctionne correctement. D'où vient l'erreur ?

Le but du code étant de faire clignoter plusieurs LED qui s'allument les unes après les autres après appuie sur des boutons poussoir bien préçis. Tout fonctionne très bien, mais que pour les LED de "clignotement" et "clignotement1".

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#include <Wire.h>
#include "Adafruit_MCP23017.h"
 
Adafruit_MCP23017 mcp;
Adafruit_MCP23017 mcp1;
 
int etat; 
int compteur = 0; 
 
int etat1; 
int compteur1 = 0; 
 
bool clignotement = true; 
const unsigned long Intervaldeclignotement = 150; 
unsigned long Millisactuel; 
unsigned long Millisprecedent;
 
 
bool clignotement1 = true; 
const unsigned long Intervaldeclignotement1 = 150; 
unsigned long Millisactuel1; 
unsigned long Millisprecedent1;
 
bool clignotement2 = true; 
const unsigned long Intervaldeclignotement2 = 150; 
unsigned long Millisactuel2; 
unsigned long Millisprecedent2;
 
 
void setup() {
 
 mcp.begin();
 mcp1.begin(1);
 
 mcp.pinMode(0, OUTPUT);
 mcp.pinMode(1, OUTPUT);
 mcp.pinMode(2, OUTPUT);
 mcp.pinMode(3, OUTPUT);
 mcp.pinMode(4, OUTPUT);
 mcp.pinMode(5, OUTPUT);
 mcp.pinMode(6, OUTPUT);
 mcp.pinMode(7, OUTPUT);
 mcp.pinMode(8, OUTPUT);
 mcp.pinMode(9, OUTPUT);
 mcp.pinMode(10,OUTPUT);
 mcp.pinMode(11,OUTPUT);
 mcp.pinMode(12,OUTPUT);
 mcp.pinMode(13,OUTPUT);
 mcp.pinMode(14,OUTPUT);
 
 
mcp.digitalWrite(1, HIGH);
mcp.digitalWrite(2, HIGH);
mcp.digitalWrite(3, HIGH);
mcp.digitalWrite(4, HIGH);
mcp.digitalWrite(5, HIGH);
mcp.digitalWrite(6, HIGH);
mcp.digitalWrite(7, HIGH);
mcp.digitalWrite(8, HIGH);
mcp.digitalWrite(9, HIGH);
mcp.digitalWrite(10,LOW);
mcp.digitalWrite(11,LOW);
mcp.digitalWrite(12,LOW);
mcp.digitalWrite(13,LOW);
mcp.digitalWrite(14,LOW);
 
 
mcp1.pinMode(0,OUTPUT);
mcp1.pinMode(1,OUTPUT);
mcp1.pinMode(2,OUTPUT);
mcp1.pinMode(3,OUTPUT);
mcp1.pinMode(4,OUTPUT);
mcp1.pinMode(5,OUTPUT);
mcp1.pinMode(6,OUTPUT);
mcp1.pinMode(7,OUTPUT);
 
mcp1.digitalWrite(0, HIGH);
mcp1.digitalWrite(1, HIGH);
mcp1.digitalWrite(2, HIGH);
mcp1.digitalWrite(3, HIGH);
mcp1.digitalWrite(4, HIGH);
mcp1.digitalWrite(5, HIGH);
mcp1.digitalWrite(6, HIGH);
 
 
 
mcp1.pinMode(7,INPUT);
mcp1.pinMode(8,INPUT);
mcp1.pinMode(9,INPUT);
mcp1.pinMode(10,INPUT);
mcp1.pinMode(11,INPUT);
mcp1.pinMode(12,INPUT);
mcp1.pinMode(13,INPUT);
mcp1.pinMode(14,INPUT);
mcp1.pinMode(15,INPUT);
 
mcp1.pullUp(7, HIGH);
mcp1.pullUp(8, HIGH);
mcp1.pullUp(9, HIGH);
mcp1.pullUp(10, HIGH);
mcp1.pullUp(11, HIGH);
mcp1.pullUp(12, HIGH);
mcp1.pullUp(13, HIGH);
mcp1.pullUp(14, HIGH);
mcp1.pullUp(15, HIGH);
 
}
 
void loop() {
 
etat = mcp.digitalRead(7);
 
  if(etat==LOW) { 
    compteur++; 
  }
 
etat1 = mcp.digitalRead(8);
 
  if(etat1==LOW) { 
    compteur1++; 
  }
 
 if (clignotement) {
  Millisactuel = millis();
  if ((unsigned long)(Millisactuel - Millisprecedent) >= Intervaldeclignotement) {
   mcp.digitalWrite(9, !mcp.digitalRead(9));
   Millisprecedent = Millisactuel; 
  }
 } else {
  mcp.digitalWrite(9, HIGH);
 }
 
 int lecturebouton = mcp1.digitalRead(7);
 delay(50); 
 
 if (lecturebouton==LOW){
  clignotement=false;
  compteur++;
   }
 
 
 if (clignotement1) {
  Millisactuel1 = millis();
   if (((unsigned long)(Millisactuel1 - Millisprecedent1) >= Intervaldeclignotement1) && (compteur>=1)) {
   mcp.digitalWrite(10, !mcp.digitalRead(10)); 
   Millisprecedent1 = Millisactuel1; 
  }
 } else {
  mcp.digitalWrite(10, HIGH);
 
  }
 
 int lecturebouton1 = mcp1.digitalRead(8);
 delay(50); 
 
 if ((lecturebouton1==LOW) && (compteur>=1))
  clignotement1=false;
  compteur1++;
   }
 
  if (clignotement2) {
  Millisactuel2 = millis();
   if (((unsigned long)(Millisactuel2 - Millisprecedent2) >= Intervaldeclignotement2) && (compteur1>=1)) {
   mcp.digitalWrite(11, !mcp.digitalRead(11)); 
   Millisprecedent2 = Millisactuel2; 
  }
 }
 
 else {
  mcp.digitalWrite(11, HIGH);
 
  }
 
 int lecturebouton2 = mcp1.digitalRead(9);
 delay(50); 
 
 if ((lecturebouton2==LOW) && (compteur>=1))
  clignotement2=false;
   }