collapse

* Posts Recentes

Trituradora/Destruidora de cartão em tiras por MAntunes
[Hoje às 15:13]


Carregador Solar para Baterias - EBay por almamater
[20 de Setembro de 2019, 21:57]


Ajuda na identificação de componente de portatil por m90mine
[20 de Setembro de 2019, 17:19]


Loja online "McMaster" na europa? por senso
[09 de Setembro de 2019, 23:54]


Pasta térmica por thx1011
[04 de Setembro de 2019, 19:35]


Livros opensource de electrónica, transístores e OpAmps. por thx1011
[03 de Setembro de 2019, 19:56]


Que métodos utilizam para limpar as vossas placas após soldadura? por KammutierSpule
[21 de Agosto de 2019, 22:42]


Contas para saber a duração das baterias. por vasco
[21 de Agosto de 2019, 11:10]


Fabricantes de PCB e Assemblage (produção em massa) por Kristey
[21 de Agosto de 2019, 08:51]


Máquina de soldar a fio sem gás LIDL por Hugu
[16 de Agosto de 2019, 18:28]

Autor Tópico: Random  (Lida 1287 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline helivelton.gomes

  • Mini Robot
  • *
  • Mensagens: 21
Random
« 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?

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.628
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: Random
« Responder #1 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.

Offline GnGz

  • Mini Robot
  • *
  • Mensagens: 665
Re: Random
« Responder #2 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;
}
« Última modificação: 28 de Agosto de 2011, 20:27 por GnGz »

Offline GnGz

  • Mini Robot
  • *
  • Mensagens: 665
Re: Random
« Responder #3 em: 28 de Agosto de 2011, 21:44 »
Ou simplesmente usa apenas a função Rand(); que está disponivel na stdlib do avr gcc.

Offline helivelton.gomes

  • Mini Robot
  • *
  • Mensagens: 21
Re: Random
« Responder #4 em: 04 de Setembro de 2011, 04:59 »
Vlw gente, fiz as modificações, as ainda ñ testei...
Assim q possivel vou fazer isso!