Arduino - Números Aleatórios

Para gerar números aleatórios, você pode usar as funções de números aleatórios do Arduino. Temos duas funções -

  • randomSeed(seed)
  • random()

randomSeed (seed)

A função randomSeed (seed) redefine o gerador de números pseudo-aleatórios do Arduino. Embora a distribuição dos números retornados por random () seja essencialmente aleatória, a sequência é previsível. Você deve redefinir o gerador para algum valor aleatório. Se você tiver um pino analógico não conectado, ele pode captar ruídos aleatórios do ambiente ao redor. Podem ser ondas de rádio, raios cósmicos, interferência eletromagnética de telefones celulares, luzes fluorescentes e assim por diante.

Exemplo

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

aleatória( )

A função aleatória gera números pseudo-aleatórios. A seguir está a sintaxe.

Sintaxe das instruções random ()

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

Exemplo

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);
}

Vamos agora atualizar nosso conhecimento sobre alguns dos conceitos básicos, como bits e bytes.

Bits

Um bit é apenas um dígito binário.

  • O sistema binário usa dois dígitos, 0 e 1.

  • Semelhante ao sistema de numeração decimal, em que os dígitos de um número não têm o mesmo valor, o 'significado' de um bit depende de sua posição no número binário. Por exemplo, os dígitos no número decimal 666 são iguais, mas têm valores diferentes.

Bytes

Um byte consiste em oito bits.

  • Se um bit é um dígito, é lógico que bytes representem números.

  • Todas as operações matemáticas podem ser realizadas sobre eles.

  • Os dígitos em um byte também não têm o mesmo significado.

  • O bit mais à esquerda tem o maior valor denominado Bit Mais Significativo (MSB).

  • O bit mais à direita tem o menor valor e, portanto, é chamado de bit menos significativo (LSB).

  • Como oito zeros e uns de um byte podem ser combinados de 256 maneiras diferentes, o maior número decimal que pode ser representado por um byte é 255 (uma combinação representa um zero).