LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: mrr em 23 de Fevereiro de 2010, 21:42

Título: Problemas de leitura analogica quando ligado 2 ou mais sensores
Enviado por: mrr em 23 de Fevereiro de 2010, 21:42
Boas pessoal,

Sou novo nas andanças da eletronica, acabei de comprar um arduino mas estou a ter problemas quando ligo mais que um sensor analogico.

Apos ligar um LM35 e um LDR, como estão nas imagens,(apenas o LDR está ligado ao PIN5 e tem uma resistência de 1K), verifiquei que ao dar mais luz ao LDR os valores do LM35 eram influenciados, mostrando valores inconstantes e irreais.

Será que algum me pode ajudar? será problema da resistência ser de 1K e não de 10k?

também cheguei a ligar um potenciómetro, mas ai é que os valores devolvidos pelos sensores todos eram totalmente inconstantes.

o código é o seguinte:


int pin = 0; // analog pin
int tempc = 0,tempf=0; // temperature variables
int samples[8]; // variables to make a better precision
int maxi = -100,mini = 100; // to start max/min temperature
int i;
int pinLuz = 5;

int photocellPin0 = 5;     // the cell and 10K pulldown are connected to a0
int photocellReading0;     // the analog reading from the analog resistor divider
float Res0=10.0;

void setup()
{
Serial.begin(9600); // start serial communication
}

void loop()
{

for(i = 0;i <= 7;i++)
  {
  samples = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;
  tempc = tempc + samples;
  delay(1000);
  }

  tempc = tempc/8.0; // better precision
  Serial.print("temp: ");
  Serial.println(tempc);
  tempc = 0;

  //fotocell
  photocellReading0 = analogRead(photocellPin0);   // Read the analogue pin
  float Vout0=photocellReading0*0.0048828125;   // calculate the voltage
  int lux0=500/(Res0*((5-Vout0)/Vout0));        // calculate the Lux

  Serial.print("Lux: ");
  Serial.println(lux0);
  delay(1000);
}
Título: Re: Problemas de leitura analogica quando ligado 2 ou mais sensores
Enviado por: tcustodio em 23 de Fevereiro de 2010, 22:50
Olá, mrr :)

Li o que escreveste, mas não entendi uma coisa. Nas imagens que disponibilizadas mostras o LDR e o LM35 montados um de cada vez; daí suponho que estejas a testar cada um em separado mas dizes que quando iluminas o LDR, o LM35 dá-te valores esquisitos. Para isso tens que estar a usar os dois em simultâneo... Daí te pergunto: Por acaso estás com os dois sensores ligados em simultâneo ao Analog In 0?

Pergunto isto, porque olhando para o código, só te vejo a usares o Analog In 0, mas o teu problema implica que estejas a usar os dois sensores...
Título: Re: Problemas de leitura analogica quando ligado 2 ou mais sensores
Enviado por: mrr em 23 de Fevereiro de 2010, 23:00
Ola TCustodio,


Pois as imagens é só para ilustrar como liguei, mas de facto estão ligados ao mesmo tempo e em pinos diferentes, ao 0 para o LM35 e ao 5 para o LDR.


Obrigado.
Título: Re: Problemas de leitura analogica quando ligado 2 ou mais sensores
Enviado por: tcustodio em 23 de Fevereiro de 2010, 23:40
Só agora é que reparei que de facto estão a ser usados 2 pinos analógicos  :-X
olha, tenho uma sugestão: quando quiseres aqui colar código, no IDE do arduino vai ao menu Edit e clica em "Copy for forum", e assim o código fica todo colorido, e fácil de intepretar. E não te esqueças de identar o código!
Título: Re: Problemas de leitura analogica quando ligado 2 ou mais sensores
Enviado por: Njay em 24 de Fevereiro de 2010, 01:58
Experimenta repetir 4 vezes a linha

photocellReading0 = analogRead(photocellPin0);   // Read the analogue pin

(ficas só com a última leitura)
Título: Re: Problemas de leitura analogica quando ligado 2 ou mais sensores
Enviado por: mrr em 24 de Fevereiro de 2010, 09:23
Obrigado pela dica, mas acho que esse não é o problema, isto porque o que afecta é os valores da temperatura quando vário a luminosidade.
Mas logo a noite vou tentar fazer leituras com alguns segundos de diferença entre sensores.


Acabei de testar Njay, e de facto resolve o problema, muito obrigado pela diga.

 ;D