Comment générer un nombre aléatoire ?

On va voir dans ce cours comment générer un nombre aléatoire. Pour cela on va utiliser une fonction appelée random().

random(min,max)

La fonction random prends en paramètre un nombre minium et maximum et va générer un nombre aléatoire entre ces deux bornes.

Voici un exemple concret de la fonction random :

void setup() {
  Serial.begin(9600); // On initalise le moniteur série
  int nombre_aleatoire=random(1,100); // On créer un nmbre aléaoire entre 1 et 100
  Serial.println(nombre_aleatoire); // Affichage du nombre généré
}

void loop() {
}

Le nombre choisit par la fonction random ne pourra pas être égale à max mais max-1 au maximum. Donc ici on ne pourra pas avoir 100 mais 99 au maximum.

Comment vous le savez peut-être, il est presque impossible d’avoir un nombre complètement aléatoire sur un langage de programmation. C’est pour ça qu’il existe une fonction randomSeed qui permet de changer la manière dont les nombres aléatoires sont générés.

  • randomSeed()

La fonction randomSeed permet de générer un nouveau groupe de nombre aléatoire à partir d’un nombre fixe. Ce nombre peut -être une entrée analogique ou un nombre que vous fixez vous même. On va maintenant voir un exemple de cette fonction :

void setup() {
  Serial.begin(9600); // Initialisation du moniteur série 
  randomSeed(1);// Initialisation du modèle aléatoire avec 1
  int nombre_aleatoire = random(0,50); // On génère notre nombre aléatoire
  Serial.println(nombre_aleatoire); // On l'affiche
}

void loop() {
}

En changeant le nombre prédéfinit dans randomSeed, on change le modèle aléatoire et on obtient de nouveaux nombres aléatoires.