Subversion Repositories Projects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1768 - 1
//*******************************************************************
2
// Definition of color pattern and sequences
3
//*******************************************************************
4
void flashingCircle( uint8_t r, uint8_t g, uint8_t b, uint8_t wait) {
5
  uint8_t ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8;
6
 
7
  for (uint8_t j=0; j< riggerSize ; j++){
8
        strip.setPixelColor(j, r, g, b, 1, 1, 1, 1, 1, 1, 1, 1);
9
        strip.show();
10
        delay ( wait );
11
        strip.setPixelColor(j, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1);
12
        strip.show();
13
        delay ( wait/2 );
14
 
15
  }
16
}
17
 
18
void flashingCircleRev( uint8_t r, uint8_t g, uint8_t b, uint8_t wait) {
19
  uint8_t ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8;
20
 
21
  for (uint8_t j = riggerSize; j > 0 ; j--){
22
        strip.setPixelColor(j-1, r, g, b, 1, 1, 1, 1, 1, 1, 1, 1);
23
        strip.show();
24
        delay ( wait );
25
        strip.setPixelColor(j-1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1);
26
        strip.show();
27
        delay ( wait/2 );
28
 
29
  }
30
}
31
 
32
void spiral( uint8_t r, uint8_t g, uint8_t b, uint8_t wait) {
33
  uint8_t ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8;
34
 
35
  for (uint8_t j=0; j< riggerSize ; j++){
36
     for (uint8_t i=1; i<= rigger ; i++){
37
        if (i == 1){
38
        strip.setPixelColor(j, r, g, b, 1, 0, 0, 0, 0, 0, 0, 0);
39
        strip.show();
40
        delay ( wait );
41
        strip.setPixelColor(j, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0);
42
        strip.show();
43
        delay ( wait );
44
        }
45
 
46
        if (i == 2){
47
        strip.setPixelColor(j, r, g, b, 0, 1, 0, 0, 0, 0, 0, 0);
48
        strip.show();
49
        delay ( wait );
50
        strip.setPixelColor(j, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
51
        strip.show();
52
        delay ( wait );
53
        }
54
 
55
        if (i == 3){
56
        strip.setPixelColor(j, r, g, b, 0, 0, 1, 0, 0, 0, 0, 0);
57
        strip.show();
58
        delay ( wait );
59
        strip.setPixelColor(j, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0);
60
        strip.show();
61
        delay ( wait );
62
        }
63
 
64
        if (i == 4){
65
        strip.setPixelColor(j, r, g, b, 0, 0, 0, 1, 0, 0, 0, 0);
66
        strip.show();
67
        delay ( wait );
68
        strip.setPixelColor(j, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0);
69
        strip.show();
70
        delay ( wait );
71
        }
72
 
73
        if (i == 5){
74
        strip.setPixelColor(j, r, g, b, 0, 0, 0, 0, 1, 0, 0, 0);
75
        strip.show();
76
        delay ( wait );
77
        strip.setPixelColor(j, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0);
78
        strip.show();
79
        delay ( wait );
80
        }
81
 
82
        if (i == 6){
83
        strip.setPixelColor(j, r, g, b, 0, 0, 0, 0, 0, 1, 0, 0);
84
        strip.show();
85
        delay ( wait );
86
        strip.setPixelColor(j, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0);
87
        strip.show();
88
        delay ( wait );
89
        }
90
 
91
        if (i == 7){
92
        strip.setPixelColor(j, r, g, b, 0, 0, 0, 0, 0, 0, 1, 0);
93
        strip.show();
94
        delay ( wait );
95
        strip.setPixelColor(j, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0);
96
        strip.show();
97
        delay ( wait );
98
        }
99
 
100
         if (i == 8){
101
        strip.setPixelColor(j, r, g, b, 0, 0, 0, 0, 0, 0, 0, 1);
102
        strip.show();
103
        delay ( wait );
104
        strip.setPixelColor(j, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
105
        strip.show();
106
        delay ( wait );
107
         }
108
     }
109
  }
110
}
111
 
112
void spiralRev( uint8_t r, uint8_t g, uint8_t b, uint8_t wait) {
113
  uint8_t ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8;
114
 
115
  for (uint8_t j = riggerSize; j > 0 ; j--){
116
     for (uint8_t i = 1 ; i <= rigger ; i++){
117
        if (i == 1){
118
        strip.setPixelColor(j-1, r, g, b, 1, 0, 0, 0, 0, 0, 0, 0);
119
        strip.show();
120
        delay ( wait );
121
        strip.setPixelColor(j-1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0);
122
        strip.show();
123
        delay ( wait );
124
        }
125
 
126
        if (i == 2){
127
        strip.setPixelColor(j-1, r, g, b, 0, 1, 0, 0, 0, 0, 0, 0);
128
        strip.show();
129
        delay ( wait );
130
        strip.setPixelColor(j-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
131
        strip.show();
132
        delay ( wait );
133
        }
134
 
135
        if (i == 3){
136
        strip.setPixelColor(j-1, r, g, b, 0, 0, 1, 0, 0, 0, 0, 0);
137
        strip.show();
138
        delay ( wait );
139
        strip.setPixelColor(j-1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0);
140
        strip.show();
141
        delay ( wait );
142
        }
143
 
144
        if (i == 4){
145
        strip.setPixelColor(j-1, r, g, b, 0, 0, 0, 1, 0, 0, 0, 0);
146
        strip.show();
147
        delay ( wait );
148
        strip.setPixelColor(j-1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0);
149
        strip.show();
150
        delay ( wait );
151
        }
152
 
153
        if (i == 5){
154
        strip.setPixelColor(j-1, r, g, b, 0, 0, 0, 0, 1, 0, 0, 0);
155
        strip.show();
156
        delay ( wait );
157
        strip.setPixelColor(j-1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0);
158
        strip.show();
159
        delay ( wait );
160
        }
161
 
162
        if (i == 6){
163
        strip.setPixelColor(j-1, r, g, b, 0, 0, 0, 0, 0, 1, 0, 0);
164
        strip.show();
165
        delay ( wait );
166
        strip.setPixelColor(j-1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0);
167
        strip.show();
168
        delay ( wait );
169
        }
170
 
171
        if (i == 7){
172
        strip.setPixelColor(j-1, r, g, b, 0, 0, 0, 0, 0, 0, 1, 0);
173
        strip.show();
174
        delay ( wait );
175
        strip.setPixelColor(j-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0);
176
        strip.show();
177
        delay ( wait );
178
        }
179
 
180
         if (i == 8){
181
        strip.setPixelColor(j-1, r, g, b, 0, 0, 0, 0, 0, 0, 0, 1);
182
        strip.show();
183
        delay ( wait );
184
        strip.setPixelColor(j-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
185
        strip.show();
186
        delay ( wait );
187
         }
188
     }
189
  }
190
}
191
 
192
 
193
// Fade In
194
void fadein( uint8_t r, uint8_t g, uint8_t b, uint8_t wait, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
195
 
196
 uint8_t r2, g2, b2;
197
 
198
for (uint8_t j = 127; j > 10; j--){
199
  uint8_t rh = r-(j*r/127);
200
   if((r || rh) && rh <= r) r2 = rh;
201
   if(rh > r) r2 = r;
202
   if(r == 0) r2 = 0;
203
  uint8_t gh = g-(j*g/127);
204
   if((g || gh) && gh <= g) g2 = gh;
205
   if(gh > g) g2 = g;
206
   if(g == 0) g2 = 0;
207
  uint8_t bh = b-(j*b/127);
208
   if((b || bh) && bh <= b) b2 = bh;
209
   if(bh > b) b2 = b;
210
   if(b == 0) b2 = 0;
211
 for(uint8_t i=0; i<riggerSize; i++) {
212
 strip.setPixelColor(i, r2, g2, b2, ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
213
 }
214
  strip.show();
215
  delay(wait);
216
 }
217
}
218
 
219
// Fade Out
220
void fadeout(uint8_t r, uint8_t g, uint8_t b, uint8_t wait, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
221
 
222
 uint8_t r2, g2, b2;
223
 
224
for (uint8_t j = 10; j < 127; j++){
225
  uint8_t rh = r-(j*r/127);
226
   if((r || 0) && rh < r) r2 = rh;
227
   if(r == 0) r2 = 0;
228
  uint8_t gh = g-(j*g/127);
229
   if((g || 0) && gh < g) g2 = gh;
230
   if(g == 0) g2 = 0;
231
  uint8_t bh = b-(j*b/127);
232
   if((b || 0) && bh < b) b2 = bh;
233
   if(b == 0) b2 = 0;
234
for(int i=0; i<riggerSize; i++) {
235
 strip.setPixelColor(i, r2, g2, b2,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
236
 }
237
  strip.show();
238
  delay(wait);
239
 }
240
for(int i=0; i<riggerSize; i++) {
241
 strip.setPixelColor(i, 0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
242
 }
243
}
244
 
245
// Flashing Light
246
void flashLight(uint8_t wait, uint8_t cyl, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
247
 
248
  for (int j=0; j < cyl; j++) {
249
  for (int x = 0; x<2; x++){
250
    for (int i = 0; i < riggerSize; i++){
251
     strip.setPixelColor(i, 0, 127,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
252
    }
253
   strip.show();
254
   delay(wait);
255
    for (int i = 0; i < riggerSize; i++){
256
     strip.setPixelColor(i, 0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
257
    }
258
   strip.show();
259
   delay(wait);
260
  }
261
  }
262
}
263
 
264
// Two colors flashing on left and right.
265
void police(uint8_t wait, uint8_t cyl, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
266
 
267
  for (int j=0; j < cyl; j++) {
268
  for (int x = 0; x<2; x++){
269
    for (int i = 0; i < (riggerSize/2); i++){
270
     strip.setPixelColor(i, 127,0,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
271
    }
272
   strip.show();
273
   delay(wait);
274
    for (int i = 0; i < (riggerSize/2); i++){
275
     strip.setPixelColor(i, 0, 0,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
276
    }
277
   strip.show();
278
   delay(wait);
279
  }
280
  for (int x = 0; x<2; x++){
281
    for (int i = (riggerSize/2); i < riggerSize; i++){
282
     strip.setPixelColor(i, 0, 0,127,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
283
     }
284
   strip.show();
285
    delay(wait);
286
  for (int i = (riggerSize/2); i < riggerSize; i++){
287
     strip.setPixelColor(i, 0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
288
     }
289
   strip.show();
290
   delay(wait);
291
   }
292
 }
293
}
294
 
295
// Cycle through two colors, equally spaced around the Strip
296
void circlinglights(uint8_t wait, uint8_t cyl, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
297
 uint16_t b=0;
298
 uint16_t r=riggerSize-1;
299
 
300
 for (int j=0; j < stripSize * cyl; j++) {
301
    strip.setPixelColor(b%riggerSize,0,2,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
302
    strip.setPixelColor((b+1)%riggerSize,1,16,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
303
    strip.setPixelColor((b+2)%riggerSize,0,55,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
304
    strip.setPixelColor((b+3)%riggerSize,0,127,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
305
    strip.setPixelColor(r%riggerSize,2,1,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
306
    strip.setPixelColor((r+riggerSize-1)%riggerSize,16,3,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
307
    strip.setPixelColor((r+riggerSize-2)%riggerSize,55,15,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
308
    strip.setPixelColor((r+riggerSize-3)%riggerSize,127,20,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
309
    strip.show();
310
    delay(wait);
311
    strip.setPixelColor(b%riggerSize,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
312
    strip.setPixelColor(r%riggerSize,0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
313
    strip.show();
314
    if (b++==riggerSize) b=0;
315
    if (r--==0) r=riggerSize;
316
    strip.show(); // write all the pixels out
317
  }
318
 clearstrip ();
319
}
320
 
321
 
322
// fill strip dots by dot with selected color
323
void colorWipe( uint8_t r, uint8_t g, uint8_t b, uint8_t wait, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
324
 int i;
325
 
326
 for (i=0; i < riggerSize; i++) {
327
 strip.setPixelColor(i , r, g, b ,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
328
 strip.show();
329
 delay(wait);
330
 }
331
}
332
 
333
// Chase a dot down the strip
334
// good for testing purposes
335
void colorChase( uint8_t r, uint8_t g, uint8_t b, uint8_t wait, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
336
 int pix;
337
 
338
 clearstrip ();
339
 
340
 for (pix=0; pix < riggerSize; pix++) {
341
 strip.setPixelColor(pix , r, g, b ,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8); // set one pixel
342
 strip.show(); // refresh strip display
343
 delay(wait); // hold image for a moment
344
 strip.setPixelColor(pix,0,0, 0, ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8); // erase pixel (but don't refresh yet)
345
 }
346
 strip.show(); // for last erased pixel
347
}
348
 
349
// Chase a dot reverse up the strip
350
// good for testing purposes
351
void colorChaseRev( uint8_t r, uint8_t g, uint8_t b, uint8_t wait, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
352
 int i;
353
 
354
 clearstrip ();
355
 
356
 for (i=riggerSize-1; i >= 0; i--) {
357
 strip.setPixelColor(i,  r, g, b ,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8); // set one pixel
358
 strip.show(); // refresh strip display
359
 delay(wait); // hold image for a moment
360
 strip.setPixelColor(i,0,0, 0,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8); // erase pixel (but don't refresh yet)
361
 }
362
 strip.show(); // for last erased pixel
363
}
364
 
365
// An "ordered dither" fills every pixel in a sequence that looks
366
// sparkly and almost random, but actually follows a specific order.
367
void dither(uint8_t r, uint8_t g, uint8_t b, uint8_t wait, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
368
 
369
 // Determine highest bit needed to represent pixel index
370
 int hiBit = 0;
371
 int n = (riggerSize/3)+1;
372
 for(int bit=1; bit < 0x8000; bit <<= 1) {
373
 if(n & bit) hiBit = bit;
374
 }
375
 
376
 int bit, reverse;
377
 for(int i=0; i<(hiBit << 1); i++) {
378
 // Reverse the bits in i to create ordered dither:
379
 reverse = 0;
380
 for(bit=1; bit <= hiBit; bit <<= 1) {
381
 reverse <<= 1;
382
 if(i & bit) reverse |= 1;
383
 }
384
 strip.setPixelColor(reverse, r,g,b,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
385
 strip.show();
386
 delay(wait);
387
 }
388
 delay(250); // Hold image for 1/4 sec
389
}
390
 
391
// "Larson scanner" = Cylon/KITT bouncing light effect
392
void scanner(uint8_t r, uint8_t g, uint8_t b, uint8_t wait, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
393
 int i, j, pos, dir;
394
 
395
 pos = 1;
396
 dir = 1;
397
 
398
 for(i=1; i<(riggerSize)*8; i++) {
399
 strip.setPixelColor(pos - 1, strip.Color(r/8, g/8, b/8),ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
400
 strip.setPixelColor(pos, strip.Color(r, g, b),ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
401
 strip.setPixelColor(pos + 1, strip.Color(r/8, g/8, b/8),ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
402
 
403
 strip.show();
404
 delay(wait);
405
 // If we wanted to be sneaky we could erase just the tail end
406
 // pixel, but it's much easier just to erase the whole thing
407
 // and draw a new one next time.
408
 for(j=-1; j<= 1; j++) strip.setPixelColor(pos+j, strip.Color(0,0,0),ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8); // Bounce off ends of strip
409
 
410
 pos += dir;
411
 if(pos < 1) {
412
 pos = 1;
413
 dir = -dir;
414
 } else if(pos >= riggerSize-2) {
415
 pos = riggerSize - 2;
416
 dir = -dir;
417
 }
418
 }
419
}
420
 
421
// Sine wave effect
422
#define PI 3.14159265
423
void wave( uint8_t r, uint8_t g, uint8_t b, uint8_t wait, int stp, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
424
 float y;
425
 uint8_t r2, g2, b2;
426
 
427
 for(int x=0; x<(riggerSize*5); x++)
428
 {
429
 for(int i=0; i<riggerSize; i++) {
430
 y = sin(PI * (float)stp * (float)(x + i) / (float)riggerSize);
431
 if(y >= 0.0) {
432
 // Peaks of sine wave are white
433
 y = 1.0 - y; // Translate Y to 0.0 (top) to 1.0 (center)
434
 r2 = 127 - (byte)((float)(127 - r) * y);
435
 g2 = 127 - (byte)((float)(127 - g) * y);
436
 b2 = 127 - (byte)((float)(127 - b) * y);
437
 } else {
438
 // Troughs of sine wave are black
439
 y += 1.0; // Translate Y to 0.0 (bottom) to 1.0 (center)
440
 r2 = (byte)((float)r * y);
441
 g2 = (byte)((float)g * y);
442
 b2 = (byte)((float)b * y);
443
 }
444
 strip.setPixelColor(i, r2, g2, b2,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
445
 }
446
 strip.show();
447
 delay(wait);
448
 }
449
}
450
 
451
void rainbowCycle(uint8_t wait, uint8_t cyl, uint8_t ri1, uint8_t ri2, uint8_t ri3, uint8_t ri4, uint8_t ri5, uint8_t ri6, uint8_t ri7, uint8_t ri8) {
452
 uint16_t i, j;
453
 
454
 for (j=0; j < 384 * cyl; j++) { // 5 cycles of all 384 colors in the wheel
455
 for (i=0; i < riggerSize; i++) {
456
 // tricky math! we use each pixel as a fraction of the full 384-color
457
 // wheel (thats the i / strip.numPixels() part)
458
 // Then add in j which makes the colors go around per pixel
459
 // the % 384 is to make the wheel cycle around
460
 strip.setPixelColor(i, Wheel(((i * 384 / riggerSize) + j) % 384),ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8);
461
 }
462
 strip.show(); // write all the pixels out
463
 delay(wait);
464
 }
465
}
466
/* Helper functions */
467
 
468
//Input a value 0 to 384 to get a color value.
469
//The colours are a transition r - g - b - back to r
470
 
471
uint32_t Wheel(uint16_t WheelPos)
472
{
473
 byte r, g, b;
474
 switch(WheelPos / 128)
475
 {
476
 case 0:
477
 r = 127 - WheelPos % 128; // red down
478
 g = WheelPos % 128; // green up
479
 b = 0; // blue off
480
 break;
481
 case 1:
482
 g = 127 - WheelPos % 128; // green down
483
 b = WheelPos % 128; // blue up
484
 r = 0; // red off
485
 break;
486
 case 2:
487
 b = 127 - WheelPos % 128; // blue down
488
 r = WheelPos % 128; // red up
489
 g = 0; // green off
490
 break;
491
 }
492
 return(strip.Color(r,g,b));
493
}
494
 
495
 // Clear strip
496
 void clearstrip (){
497
   for (int i=0; i < stripSize; i++) {
498
     strip.setPixelColor(i, 0);
499
   }
500
 }
501
 
502
// Set single LED
503
void setLED(uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t r1, uint8_t r2, uint8_t r3, uint8_t r4, uint8_t r5, uint8_t r6, uint8_t r7, uint8_t r8){
504
 n=n-1;
505
 strip.setPixelColor(n, strip.Color(r, g, b), r1, r2, r3, r4, r5, r6, r7, r8);
506
}
507