Arduino - Números aleatorios

Para generar números aleatorios, puede utilizar las funciones de números aleatorios de Arduino. Tenemos dos funciones:

  • randomSeed(seed)
  • random()

randomSeed (semilla)

La función randomSeed (semilla) reinicia el generador de números pseudoaleatorios de Arduino. Aunque la distribución de los números devueltos por random () es esencialmente aleatoria, la secuencia es predecible. Debe restablecer el generador a algún valor aleatorio. Si tiene un pin analógico desconectado, podría captar ruido aleatorio del entorno circundante. Estos pueden ser ondas de radio, rayos cósmicos, interferencia electromagnética de teléfonos celulares, luces fluorescentes, etc.

Ejemplo

randomSeed(analogRead(5)); // randomize using noise from analog pin 5

aleatorio( )

La función aleatoria genera números pseudoaleatorios. A continuación se muestra la sintaxis.

Sintaxis de declaraciones aleatorias ()

long random(max) // it generate random numbers from 0 to max
long random(min, max) // it generate random numbers from min to max

Ejemplo

long randNumber;

void setup() {
   Serial.begin(9600);
   // if analog input pin 0 is unconnected, random analog
   // noise will cause the call to randomSeed() to generate
   // different seed numbers each time the sketch runs.
   // randomSeed() will then shuffle the random function.
   randomSeed(analogRead(0));
}

void loop() {
   // print a random number from 0 to 299
   Serial.print("random1=");
   randNumber = random(300);
   Serial.println(randNumber); // print a random number from 0to 299
   Serial.print("random2=");
   randNumber = random(10, 20);// print a random number from 10 to 19
   Serial.println (randNumber);
   delay(50);
}

Actualicemos ahora nuestro conocimiento sobre algunos de los conceptos básicos como bits y bytes.

Bits

Un bit es solo un dígito binario.

  • El sistema binario utiliza dos dígitos, 0 y 1.

  • Al igual que en el sistema numérico decimal, en el que los dígitos de un número no tienen el mismo valor, la "importancia" de un bit depende de su posición en el número binario. Por ejemplo, los dígitos del número decimal 666 son iguales, pero tienen valores diferentes.

Bytes

Un byte consta de ocho bits.

  • Si un bit es un dígito, es lógico que los bytes representen números.

  • Todas las operaciones matemáticas se pueden realizar sobre ellos.

  • Los dígitos de un byte tampoco tienen el mismo significado.

  • El bit más a la izquierda tiene el valor más grande llamado bit más significativo (MSB).

  • El bit más a la derecha tiene el valor mínimo y, por lo tanto, se denomina bit menos significativo (LSB).

  • Dado que ocho ceros y unos de un byte se pueden combinar de 256 formas diferentes, el número decimal más grande que se puede representar con un byte es 255 (una combinación representa un cero).