A volte un programma ha bisogno di comportarsi in modo imprevedibile, come per esempio estrarre un numero da un dado virtuale, scegliere una sequenza casuale di LED da accendere, generare un quiz con domande in ordine diverso ogni volta, eccetera…
Per fare questo con Arduino abbiamo a disposizione la funzione random().
// Sintassi:random(max) // Numero casuale tra 0 e max-1random(min, max) // Numero casuale tra min e max-1
int dado = random(1, 7); // Simula un dado: da 1 a 6int moneta = random(2); // 0 oppure 1 (testa o croce)int pin = random(2, 9); // Numero casuale tra 2 e 8
#define LED_PIN 5void setup() { pinMode(LED_PIN, OUTPUT);}void loop() { digitalWrite(LED_PIN, HIGH); delay(random(100, 801)); // Acceso per un tempo casuale tra 100ms e 800ms digitalWrite(LED_PIN, LOW); delay(random(100, 801)); // Spento per un tempo casuale tra 100ms e 800ms}