CONTENIDO ►
La función Arduino random() devuelve un número pseudo-aleatorio, es decir, la secuencia en la que se genera el número aleatorio es siempre predecible. La función randomSeed() Arduino Uno / Nano permite colocar una variable o constante en la función aleatoria para generar más valores aleatorios. En este artículo, descubriremos cómo definir correctamente un número aleatorio en el lenguaje de programación Arduino IDE.
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
random – Génération de nombres pseudo-aléatoires
La función random() permite devolver un número pseudo-aleatorio en el rango especificado por los valores mínimo y máximo. Veamos ejemplos con diferentes tipos de datos.
Utilizar la función random() int Arduino IDE
En el ejemplo mostrado, el tipo de datos seleccionado es int, que almacena números enteros. También se pueden utilizar otros tipos de datos: byte, long, unsigned long, unsigned int y otros. El rango deseado se ajusta en consecuencia (min, max).
int data; void setup() { Serial.begin(9600); } void loop() { data = random(100, 200); Serial.println(data); delay(250); }
Utilizar la función random() float Arduino IDE
El microcontrolador Arduino sólo puede generar números enteros. Por lo tanto, para obtener un tipo de datos float con dos decimales, hay que generar un entero por separado y añadirle decimales. Un ejemplo de este programa:
float data; float data1; float data2; void setup() { Serial.begin(9600); } void loop() { data1 = random(0, 10); data2 = random(0, 100); data = data1 + data2 / 100; Serial.println(data); delay(250); }
Arduino randomSeed – Génération de nombres aléatoires
Tenga en cuenta que en todos los programas de ejemplo mostrados anteriormente, la secuencia aleatoria de números se repite cada vez que se reinicia el programa Arduino. Esto se puede evitar utilizando la función random Seed Arduino, que permite colocar una variable en la función random(). Para ello, utilice millis, analogRead u otros comandos en el lenguaje Arduino IDE para que la generación de números sea más aleatoria.
int data; void setup() { Serial.begin(9600); randomSeed(analogRead(A1)); } void loop() { data = random(100, 200); Serial.println(data); delay(250); }
Conclusión. Cada vez que se reinicie el programa, el generador de números pseudoaleatorios será inicializado por la función randomSeed(analogRead(A1)); a partir de un valor aleatorio debido al «ruido» del puerto. Cualquier puerto libre puede utilizarse para este fin, ya que todas las salidas analógicas captan el ruido aleatorio del entorno: ondas de radio, interferencias electromagnéticas de ordenadores, teléfonos móviles, etc.

Thank you for the good writeup. It in fact was a amusement account
it. Look advanced to more added agreeable from you!
However, how can we communicate?