LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: helivelton.gomes em 28 de Agosto de 2011, 16:03

Título: Random
Enviado por: helivelton.gomes em 28 de Agosto de 2011, 16:03
estou usando a função random no arduino, diversas vezes em um mesmo loop.
Mas a toda primeira execução ela retorna o mesmo número, mesmo ao desligar e ligar dps o arduino.
alguem sabe explicar?
Título: Re: Random
Enviado por: amando96 em 28 de Agosto de 2011, 16:42
A função random do arduino é só um loop de numeros pre definidos, não é nada random.

O mais random que consegues é com o randomSeed de um pino analógico sem nada ligado a ele.
Título: Re: Random
Enviado por: GnGz em 28 de Agosto de 2011, 20:23
Olha experimenta isto:

Fiz rapidamente esta função:

Código: [Seleccione]
int Random(int analogpin) {
  int time=millis();
  int analog = analogRead(analogpin);
  int valor;
  if(analog > time){
  valor = analog - time;
  }
  else{
   valor = time - analog;
  }
  return valor * ((time*analog)/2)/2;
}
Título: Re: Random
Enviado por: GnGz em 28 de Agosto de 2011, 21:44
Ou simplesmente usa apenas a função Rand(); que está disponivel na stdlib do avr gcc.
Título: Re: Random
Enviado por: helivelton.gomes em 04 de Setembro de 2011, 04:59
Vlw gente, fiz as modificações, as ainda ñ testei...
Assim q possivel vou fazer isso!