Generar Números Aleatorios en Arduino

Ammar Ali 12 octubre 2023
Generar Números Aleatorios en Arduino

Este tutorial discutirá la generación de números aleatorios usando la función random() en Arduino.

Utilice la función random() para generar números aleatorios en Arduino

Usamos un generador de números aleatorios para generar un número aleatorio entre un rango dado de números. Por ejemplo, podemos usarlo para elegir un ganador para un sorteo.

Podemos usar la función random() para generar números aleatorios en Arduino.

Sintaxis:

random(maxVlaue);
random(minValue, maxValue);

En la primera línea del código, si solo pasamos el valor máximo del rango, la función usará cero como valor mínimo. También podemos definir rangos mínimos y máximos usando el primer y segundo argumento de la función random().

El valor mínimo para el rango es inclusivo, mientras que el valor máximo es exclusivo. Por ejemplo, si definimos el rango de 0 a 10, la secuencia de números aleatorios contendrá 0 pero no 10.

Antes de usar la función random(), debemos inicializarla usando la función randomSeed(). Debemos pasar un número aleatorio de tipos de datos largos dentro de la función randomSeed() para inicializar el generador de números aleatorios.

Supongamos que queremos que el aleatorio tenga la misma secuencia de números que el anterior. Debemos pasar el mismo número dentro de la función randomSeed().

Si queremos una secuencia diferente de números, tenemos que usar un número diferente cada vez que inicializamos el generador de números aleatorios. En este caso podemos utilizar cualquiera de los pines analógicos de Arduino.

Cuando no se conecta ninguna entrada con un pin analógico, el pin tendrá un valor flotante o un valor aleatorio. Podemos leer ese valor aleatorio usando la función analogRead().

Por ejemplo, usemos random() para generar números aleatorios entre 0 y 100.

long MyRnd;

void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
}
void loop() {
  MyRnd = random(100);
  Serial.println(MyRnd);
  delay(500);
}

Producción :

21
17
20
11
46
51
41
71
2
74

Los números aleatorios seguirán generándose porque colocamos el generador de números aleatorios dentro de la función loop(). Si queremos generar el número aleatorio un número específico de veces, podemos usar un bucle dentro de la función setup(), que solo se ejecuta una vez.

Los valores de rango que definimos dentro de la función random() pueden ser de 32 bits. Si se utiliza un valor mayor, la función no dará error, pero el resultado diferirá de lo esperado.

Si usamos el mismo número como 1 dentro de la función randomSeed() y reiniciamos el código, la secuencia de números aleatorios será la misma.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - Arduino Function