//divideix la tira en 6 trams (variable numtrams)
//asigna un color al atzar entre 14 colors(funció set color) a un led al atzar (funció np) de cada un dels trams
#include <Adafruit_NeoPixel.h>#define PIN 6 // pin 6 de arduino a in tira
#define NUMPIXELS 60 // numero de pixels
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int numtrams=6;
int delayval = 300; // tiempo de regeneración de color
int numcolor=0;//a utilizar en el random
int redColor = 0;
int greenColor = 0;
int blueColor = 0;
int np1=0;//variable en la que alojar la posición en el tramo que el random np asigna.En este caso primer tramo
int np2=0;//el random np asigna una posición en el segundo tramo
int np3=0;
int np4=0;
int np5=0;
int np6=0;
void setup() {
// Initialize the NeoPixel library.
pixels.begin();
pixels.setBrightness(64);//útil per a fixar brillantor tira (0 apagat 255 màxima brillantor)
}
void loop() {
setColor();//tria un color al atzar entre els 14 predeterminats
np();//asigna per random una posició dins el tram
//els pixels designats per la funció np prenen el color enviat per setColor
pixels.setPixelColor(np1, pixels.Color(redColor, greenColor, blueColor));
setColor();
pixels.setPixelColor(np2, pixels.Color(redColor, greenColor, blueColor));
setColor();
pixels.setPixelColor(np3, pixels.Color(redColor, greenColor, blueColor));
setColor();
pixels.setPixelColor(np4, pixels.Color(redColor, greenColor, blueColor));
setColor();
pixels.setPixelColor(np5, pixels.Color(redColor, greenColor, blueColor));
setColor();
pixels.setPixelColor(np6, pixels.Color(redColor, greenColor, blueColor));
setColor();
pixels.show();
setColor();
delay(delayval);
}
void np(){//asigna una posició al atzar en cada tram
np1 =random (0,NUMPIXELS/numtrams);
np2 =random (NUMPIXELS/numtrams,2*NUMPIXELS/numtrams);
np3 =random (2*NUMPIXELS/numtrams,3*NUMPIXELS/numtrams);
np4 =random (3*NUMPIXELS/numtrams,4*NUMPIXELS/numtrams);
np5 =random (4*NUMPIXELS/numtrams,5*NUMPIXELS/numtrams);
np6 =random (5*NUMPIXELS/numtrams,6*NUMPIXELS/numtrams);
}
void setColor(){//pots fixar 14 colores (RGB)
numcolor=random(0,14);
if (numcolor==0){//vermell
redColor = 193;
greenColor = 0;
blueColor = 0;
}
else if (numcolor==1){//verd
redColor = 0;
greenColor = 193;
blueColor = 0;
}
else if (numcolor==2){//blau
redColor = 0;
greenColor = 79;
blueColor = 169;
}
else if (numcolor==3){//blau claret
redColor = 0;
greenColor = 255;
blueColor = 255;
}
else if (numcolor==4){//groc
redColor = 195;
greenColor = 105;
blueColor = 0;
}
else if (numcolor==5){//taronja
redColor = 139;
greenColor = 42;
blueColor = 0;
}
else if (numcolor==6){//verd blavòs
redColor = 0;
greenColor = 118;
blueColor = 35;
}
else if (numcolor==7){//rosa
redColor = 255;
greenColor = 47;
blueColor = 84;
}
else if (numcolor==8){//violeta
redColor = 255;
greenColor = 0;
blueColor = 198;
}
else if (numcolor==9){//blanc
redColor = 200;
greenColor = 200;
blueColor = 200;
}
else if (numcolor==10){//vermell rosa
redColor = 210;
greenColor = 5;
blueColor = 30;
}
else if (numcolor==11){//blau verdòs
redColor = 0;
greenColor = 255;
blueColor = 128;}
else if (numcolor==12){//blau nit
redColor = 25;
greenColor = 25;
blueColor = 112;}
else if (numcolor==13){//groc_2
redColor = 166;
greenColor = 136;
blueColor = 0;
}
}