LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: foknoobs em 14 de Novembro de 2012, 21:25

Título: Fazer apenas uma leitura
Enviado por: foknoobs em 14 de Novembro de 2012, 21:25
Boas a todos,

Tenho uma pequena duvida, sera possivel, fazer apenas uma leitura de um sensor ?
O sensor e um analogico ( sharp de distancia).

Gostaria de saber se tal e possivel e como .

(Peço desculpa pelos erros, mas o meu teclado nao esta nas melhores condiçoes).

Atenciosamente
Título: Re: Fazer apenas uma leitura
Enviado por: senso em 14 de Novembro de 2012, 21:32
Apenas uma leitura?
Ler só uma vez o sensor e não voltar a ler?
Por ler o sensor digo usar o conversor ADC do teu micro, ninguem te obriga a estares sempre a ler o sensor..
Título: Re: Fazer apenas uma leitura
Enviado por: foknoobs em 14 de Novembro de 2012, 21:36
Boas,
Eu sou um pouco novato nisto, eu tenho um arduino mega, e gostaria de saber como fazer por exemplo, para so ler apenas uma vez o valor que o sensor esta a obter... Atenciosamente
Título: Re: Fazer apenas uma leitura
Enviado por: senso em 14 de Novembro de 2012, 21:42
Mete o código no setup em vez de no loop, o loop é como o nome indica um loop infinito, o setup só corre uma vez.
Título: Re: Fazer apenas uma leitura
Enviado por: LuísR.A. em 14 de Novembro de 2012, 21:44
basta isto

Código: [Seleccione]
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.println(analogRead(0));
  delay(1000);
}

se queres que so faça uma e pare podes meter isto:

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.println(analogRead(0));
  delay(1000);
}

do{
}while();

isto faz com que fique ali preso e não saia. tens de fazer reset para voltar ao inicio
Título: Re: Fazer apenas uma leitura
Enviado por: Njay em 15 de Novembro de 2012, 00:49
Isso não compila Luis, o do {} while não pode estar fora duma função e o while tem que ter uma condição.
Se é só para ler um sensor e não fazer rigorosamente mais nada, pode ser assim:

Código: [Seleccione]
void setup()
{
    Serial.begin(9600);
    Serial.println(analogRead(0));
    do {} while(1);
}

void loop () {
}
Título: Re: Fazer apenas uma leitura
Enviado por: LuísR.A. em 15 de Novembro de 2012, 18:20
fora duma função?

pois tens razão, tem de ter o (1)


a ja vi. foi engano meti o do fora do loop
Título: Re: Fazer apenas uma leitura
Enviado por: Njay em 15 de Novembro de 2012, 20:18
Ou mesmo só assim:

Código: [Seleccione]
void setup()
{
    Serial.begin(9600);
    Serial.println(analogRead(0));
}

void loop () {
}