Exercice2

Exercice

DéfinitionExercice 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éfinitionExercice 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
#include <Adafruit_NeoPixel.h>
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
#include <Adafruit_NeoPixel.h>
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
#include <Adafruit_NeoPixel.h>
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
#include <Adafruit_NeoPixel.h>
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
#include <Adafruit_NeoPixel.h>
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
}