Exercice2
Définition : Exercice Sujet
1
/***************************
2
Exercice1
3
- Initialisation
4
- Affichez les valeurs des entrées
5
BP : 1 - POT0 : 1023 - POT1 : 982 - POT2 : 818
6
/***************************/
7
8
9
10
11
/***************************
12
Exercice2
13
- Initialisez trois variables : red = 50, green=150, blue=250
14
- Affichez les 8 leds avec ces valeurs de couleur
15
- Au clique sur le BP les valeurs sont tirées au hasard
16
et les leds sont mises à jour.
17
/***************************/
18
19
20
21
22
/***************************
23
Exercice3
24
- Réalisez une fonction tirage() qui tire au hasard red, green, blue et les applique aux leds
25
- Le tirage est effectué dans le setup et au clique sur le BP
26
/***************************/
27
28
29
30
31
/***************************
32
Exercice4
33
- Ajoutez dans la boucle trois variables rouge, vert et bleu
34
- Les variables contiennent les valeurs des trois potentiometres converties entre 0 et 255
35
- Appliquez les valeurs au leds de 4 à 8
36
/***************************/
37
38
39
40
41
/***************************
42
Exercice5
43
- Changement des leds de l'autre bande
44
- Si Rouge est inférieure à red, le premier pixel est bleu
45
- Si Rouge est supérieure à red, le premier pixel est rouge
46
- Si la différence est plus grande que -5 et plus petite que 5, le premier pixel est vert
47
- Idem pour vert et bleu avec les pixels suivants
48
49
/***************************/
50
51
52
53
54
55
/*****************
56
Supplément
57
- bool valide(int i, int couleur, int color)
58
- affichez en vert le quatrième pixel quand les trois autres sont verts
59
sinon rien
60
61
/****************/
62
63
Définition : Exercice Solution
1
/***************************
2
Exercice1 - Initialisation - Affichez les valeurs des entrées BP : 1 - POT0 : 1023 - POT1 : 982 - POT2 : 818
3
/***************************/
4
5
int BP = 10;
6
7
int POT0 = A0;
8
int POT1 = A1;
9
int POT2 = A2;
10
11
void setup()
12
{
13
pinMode(BP, INPUT_PULLUP);
14
15
Serial.begin(9600);
16
}
17
18
void loop()
19
{
20
Serial.print("BP : ");
21
Serial.print(digitalRead(BP));
22
Serial.print(" - POT0 : ");
23
Serial.print(analogRead(POT0));
24
Serial.print(" - POT1 : ");
25
Serial.print(analogRead(POT1));
26
Serial.print(" - POT2 : ");
27
Serial.println(analogRead(POT2));
28
}
29
30
/***************************
31
Exercice2 - Initialisez trois variables : red = 50, green = 150, bleu = 250 - Affichez les 8 leds avec ces valeurs de couleur - Au clique sur le BP les valeurs sont tirées au hasard et les leds sont mises à jour.
32
/***************************/
33
34
35
36
int BP = 10;
37
38
int POT0 = A0;
39
int POT1 = A1;
40
int POT2 = A2;
41
42
int LED2s = 13;
43
int NB2 = 8;
44
Adafruit_NeoPixel strip2(NB2, LED2s, NEO_GRB + NEO_KHZ800);
45
46
int red = 50;
47
int green = 150;
48
int blue = 250;
49
50
void setup()
51
{
52
pinMode(BP, INPUT_PULLUP);
53
54
strip2.begin();
55
56
strip2.fill(strip2.Color(red, green, blue));
57
strip2.show();
58
59
Serial.begin(9600);
60
}
61
62
void loop()
63
{
64
if (digitalRead(BP) == 0)
65
{
66
red = random(256);
67
blue = random(256);
68
green = random(256);
69
strip2.fill(strip2.Color(red, green, blue));
70
strip2.show();
71
}
72
}
73
74
/***************************
75
Exercice3 - Réalisez une fonction tirage qui tire au hasard red, green, blue et les applique aux leds - Le tirage est effectué dans le setup et au clique sur le BP
76
/***************************/
77
78
79
int BP = 10;
80
81
int POT0 = A0;
82
int POT1 = A1;
83
int POT2 = A2;
84
85
int LED2s = 13;
86
int NB2 = 8;
87
Adafruit_NeoPixel strip2(NB2, LED2s, NEO_GRB + NEO_KHZ800);
88
89
int red;
90
int green;
91
int blue;
92
93
void setup()
94
{
95
pinMode(BP, INPUT_PULLUP);
96
97
strip2.begin();
98
tirage();
99
Serial.begin(9600);
100
}
101
102
void loop()
103
{
104
if (digitalRead(BP) == 0)
105
tirage();
106
}
107
108
void tirage()
109
{
110
red = random(256);
111
blue = random(256);
112
green = random(256);
113
strip2.fill(strip2.Color(red, green, blue));
114
strip2.show();
115
}
116
117
/***************************
118
Exercice4 - Ajoutez dans la boucle trois variables rouge, vert et bleu - Les variables contiennent les valeurs des trois potentiometres converties entre 0 et 255 - Appliquez les valeurs au leds de 4 à 8
119
/***************************/
120
121
122
int BP = 10;
123
124
int POT0 = A0;
125
int POT1 = A1;
126
int POT2 = A2;
127
128
int LED2s = 13;
129
int NB2 = 8;
130
Adafruit_NeoPixel strip2(NB2, LED2s, NEO_GRB + NEO_KHZ800);
131
132
int red;
133
int green;
134
int blue;
135
136
void setup()
137
{
138
pinMode(BP, INPUT_PULLUP);
139
140
strip2.begin();
141
tirage();
142
Serial.begin(9600);
143
}
144
145
void loop()
146
{
147
if (digitalRead(BP) == 0)
148
tirage();
149
150
int rouge = map(analogRead(A0), 0, 1023, 0, 255);
151
int vert = map(analogRead(A1), 0, 1023, 0, 255);
152
int bleu = map(analogRead(A2), 0, 1023, 0, 255);
153
154
strip2.fill(strip2.Color(rouge, vert, bleu), 4, 4);
155
strip2.show();
156
}
157
158
void tirage()
159
{
160
red = random(256);
161
blue = random(256);
162
green = random(256);
163
strip2.fill(strip2.Color(red, green, blue));
164
strip2.show();
165
}
166
167
/***************************
168
Exercice5 - Changement des leds de l'autre bande - Si Rouge est inférieure à red, le premier pixel est bleu - Si Rouge est supérieure à red, le premier pixel est rouge - Si la différence est plus grande que - 5 et plus petite que 5, le premier pixel est vert - Idem pour vert et bleu avec les pixels suivants
169
170
/***************************/
171
172
173
174
int BP = 10;
175
176
int POT0 = A0;
177
int POT1 = A1;
178
int POT2 = A2;
179
180
int LED1s = 12;
181
int NB1 = 4;
182
Adafruit_NeoPixel strip1(NB1, LED1s, NEO_GRB + NEO_KHZ800);
183
184
int LED2s = 13;
185
int NB2 = 8;
186
Adafruit_NeoPixel strip2(NB2, LED2s, NEO_GRB + NEO_KHZ800);
187
188
int red;
189
int green;
190
int blue;
191
192
void setup()
193
{
194
pinMode(BP, INPUT_PULLUP);
195
196
strip1.begin();
197
strip2.begin();
198
tirage();
199
Serial.begin(9600);
200
}
201
202
void loop()
203
{
204
if (digitalRead(BP) == 0)
205
tirage();
206
207
int rouge = map(analogRead(A0), 0, 1023, 0, 255);
208
int vert = map(analogRead(A1), 0, 1023, 0, 255);
209
int bleu = map(analogRead(A2), 0, 1023, 0, 255);
210
211
strip2.fill(strip2.Color(rouge, vert, bleu), 4, 4);
212
strip2.show();
213
214
if (rouge < red)
215
strip1.setPixelColor(0, 255, 0, 0);
216
if (rouge > red)
217
strip1.setPixelColor(0, 0, 0, 255);
218
if (rouge - red < 5 && rouge - red > -5)
219
strip1.setPixelColor(0, 0, 255, 0);
220
221
if (vert < green)
222
strip1.setPixelColor(1, 255, 0, 0);
223
if (vert > green)
224
strip1.setPixelColor(1, 0, 0, 255);
225
if (vert - green < 5 && vert - green > -5)
226
strip1.setPixelColor(1, 0, 255, 0);
227
228
if (bleu < blue)
229
strip1.setPixelColor(2, 255, 0, 0);
230
if (bleu > blue)
231
strip1.setPixelColor(2, 0, 0, 255);
232
if (bleu - blue < 5 && bleu - blue > -5)
233
strip1.setPixelColor(2, 0, 255, 0);
234
235
strip1.show();
236
}
237
238
void tirage()
239
{
240
red = random(256);
241
blue = random(256);
242
green = random(256);
243
strip2.fill(strip2.Color(red, green, blue));
244
strip2.show();
245
}
246
247
/*****************
248
- bool valide(int i, int couleur, int color)
249
- affiche en vert le quatrième pixel quand les trois autres sont verts
250
sinon rien
251
252
/****************/
253
254
255
256
int BP = 10;
257
258
int POT0 = A0;
259
int POT1 = A1;
260
int POT2 = A2;
261
262
int LED1s = 12;
263
int NB1 = 4;
264
Adafruit_NeoPixel strip1(NB1, LED1s, NEO_GRB + NEO_KHZ800);
265
266
int LED2s = 13;
267
int NB2 = 8;
268
Adafruit_NeoPixel strip2(NB2, LED2s, NEO_GRB + NEO_KHZ800);
269
270
int red;
271
int blue;
272
int green;
273
274
void setup()
275
{
276
pinMode(BP, INPUT_PULLUP);
277
278
strip1.begin();
279
strip2.begin();
280
randomSeed(analogRead(0));
281
tirage();
282
283
Serial.begin(9600);
284
}
285
286
void loop()
287
{
288
if (digitalRead(BP) == 0)
289
tirage();
290
291
int rouge = map(analogRead(A0), 0, 1023, 0, 255);
292
int vert = map(analogRead(A1), 0, 1023, 0, 255);
293
int bleu = map(analogRead(A2), 0, 1023, 0, 255);
294
295
strip2.fill(strip2.Color(rouge, vert, bleu), 4, 4);
296
297
bool r = valide(0, rouge, red);
298
bool v = valide(1, vert, green);
299
bool b = valide(2, bleu, blue);
300
301
strip1.setPixelColor(3, 0, 0, 0);
302
if (r && v && b)
303
strip1.setPixelColor(3, 0, 255, 0);
304
305
strip1.show();
306
strip2.show();
307
}
308
309
bool valide(int i, int couleur, int color)
310
{
311
if (couleur < color)
312
strip1.setPixelColor(i, 255, 0, 0);
313
if (couleur > color)
314
strip1.setPixelColor(i, 0, 0, 255);
315
316
if (couleur - color < 5 && couleur - color > -5)
317
{
318
strip1.setPixelColor(i, 0, 255, 0);
319
return true;
320
}
321
return false;
322
}
323
324
void tirage()
325
{
326
red = random(256);
327
blue = random(256);
328
green = random(256);
329
strip2.fill(strip2.Color(red, green, blue), 0, 4);
330
}