Imposta un valore di partenza per generare un numero casuale.
randomSeed(value); // assegna a value un valore casuale
Poiché Arduino non è in grado di creare un vero numero casuale la funzione randomSeed consente di inserire una variabile, una costante o un'altra funzione casuale per generare numeri "casuali" ancora più casuali :-)
randomSeed viene utilizzata come base di partenza per generare un numero casuale, può essere utilizzata in diversi modi associandola ad altre funzioni, come ad esempio utilizzare il valore restituito da millis() funzione che restituisce il numero di millisecondi da quando la scheda Arduino è in funzione, o ancora con analogRead() per leggere il rumore elettrico attraverso un pin analogico, in questo modo trattandosi di rumore, che varia in modo caotico, la analogRead() restituirà un valore "abbastanza" casuale.
random(max)
random(min, max)
La funzione random permette di restituire numeri pseudo-casuali in un intervallo specificato tra un valore minimo e massimo.
value = random(100, 200); // assegna a 'value' un valore casuale // compreso tra 100 e 200
Nota: utilizzare questa funzione dopo aver utilizzato la funzione randomSeed().
L'esempio che segue crea un numero casuale compreso tra 0 e 255 e fornisce un segnale PWM su un pin PWM uguale al valore casuale:
int randNumber; // variabile usata per memorizzare // il valore casuale int led = 10; // un led con in serie una // resistenza da 220 Ohm // inserito sul pin 10 void setup(){} // non e' necessaria nessuna // configurazione void loop() { randomSeed(millis()); // imposta millis() come base per // generare un numero // casuale da 0 a 255 randNumber = random(255) // numero casuale da 0 a 255 analogWrite(led, randNumber); // uscita segnale PWM delay(500); // pausa di mezzo secondo }Come potete notare viene utilizzata la funzione randomSeed(millis()) per inizializzare il generatore di numeri casuali, agendo in questo modo siamo abbastanza sicuri di generare numri sempre diversi.