Programmare Arduino

18. Funzioni di generazione di numeri a caso (random)

Wiring e’ dotato di un generatore di numeri a caso:

val = random (max)    // inserisce in val un numero a caso compreso tra 0 ed il
// valore contenuto in max

Poiche’ i numeri generati sono in realta’ pseudo casuali (fanno cioe’ parte di una enorme sequenza predefinita), per evitare di ripetere la medesima sequenza di numeri ad ogni avvio del programma e’ opportuno inizializzare il generatore di numeri a caso utilizzando l’istruzione:

randomSeed(seme);  // inizializza il generatore di numeri a caso

Inserendo in seme un numero sempre diverso e quindi derivato, ad esempio, da una funzione di tempo applicata ad un’azione umana (come il tempo intercorso tra l’avvio del programma e la pressione di un pulsante) oppure il valore fornito da una porta analogica non utilizzata. In questo modo ad ogni avvio del sistema l’istruzione random () restituira’ numeri a caso in sequenze sempre diverse.