lesto:
@Pelletta: senza scomodare librerie esterne:
se resetti arduino noterai che la random crea sempre gli stessi valori. Per evitare ciò puoi inizializzare (una sola volta nel setup basta) un seme (http://arduino.cc/en/Reference/RandomSeed) con un numero casuale, che per esempio potrebbe essere una lettura analogica su un pin vuoto
come faccio a creare un random per i piani che ne faccia accendere meno alla volta... ovvero che nel numero binario siano presenti più "0" che "1" ? c'è un modo per impostare delle "percentuali di probabilità " diciamo?
ci sono vari metodi.
Il metodo brute force consiste nel creare numeri random come fai ora e scartare i risultati invalidi.
Un metodo invece "elegante" e il seguente: crei un'array con tanti 0 e 1 quanti ne vuoi, esempio 00001111. Poi, per diciamo una decina o più volte, crei un numero random da 0 alla grandezza dell'array-1 e scambi di posizione i valori.
questo è un metodo che usavo anche per "mischiare il mazzo di carte", ovviamente virtuali 
a qualcuno interessa qualche foto del cubo? anche se forse è uscito un pò storto
foto?? vogliamo il video!!!!!
ho inserito come dicevi tu l'array, ma mi da degli errori... potreste controllarmi il codice modificato? ...cos'è che sbaglio? codice :
long randNumber;//Dichiaro i numeri random
long randNumber1;
long randNumber2;
long randNumber3;
long randNumber4;
long randNumber5;
int piani[10]{1,0,1,0,1,0,1,0,1,0};
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
int tempo = 80;//tempo fra un bitshift e l'altro
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
randomSeed(analogRead(0));
}
void loop () {
randNumber = random(10,255);
randNumber1 = random(10,255);
randNumber2 = random(10,222);
randNumber3 = random(10,255);
randNumber4 = random(10,255);
randNumber5 = random[9];
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST,randNumber);
shiftOut(dataPin, clockPin, MSBFIRST,randNumber1);
shiftOut(dataPin, clockPin, MSBFIRST,randNumber2);
shiftOut(dataPin, clockPin, MSBFIRST,randNumber3);
shiftOut(dataPin, clockPin, MSBFIRST,randNumber4);
shiftOut(dataPin, clockPin, MSBFIRST,randNumber5);
digitalWrite(latchPin, HIGH);
delay(tempo);
}
e questo l'errore : cuboled:6: error: function definition does not declare parameters
cuboled.cpp: In function 'void loop()':
cuboled:24: error: invalid types '[int]' for array subscript