collapse

* Links de Robótica

* Posts Recentes

Palavras Cruzadas por Hugu
[Hoje às 18:07]


[Projecto] Bomba Airsoft por jm_araujo
[23 de Setembro de 2017, 16:54]


Apresentação por Tech_JA
[23 de Setembro de 2017, 09:19]


Medir Agua que está no Poço por filjoa
[21 de Setembro de 2017, 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]

Autor Tópico: Dificuldade com Temperature Sensor – LM335A  (Lida 3499 vezes)

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

Offline Psycop

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 105
    • O.Cantinho.da.Programação
Dificuldade com Temperature Sensor – LM335A
« em: 21 de Janeiro de 2012, 19:28 »
Olá

Tenho andado a explorar o Arduino ligado a um Temperature Sensor – LM335A, mas não estou a conseguir fazer medições correctas.

Estou a usar o seguinte esquema de ligações:



E o Seguinte Código:
Código: [Seleccione]
float temp;
int tempPin = 0;

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

void loop()
{
  temp = analogRead(tempPin);
  temp = (temp * 0.48828125) - 273.15;
  Serial.println(temp);
  delay(1000);
}

Obtenho sempre leituras na ordem dos 300 / 301. Isso não é possivel, O que estou a fazer de mal?

Tentei também com este exemplo:



Mas usei um resistor de 10k, mas também não consegui medições correctas, com o seguinte código:

Código: [Seleccione]
float temp_in_celsius = 0, temp_in_kelvin=0, temp_in_fahrenheit=0;

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

void loop()
{

  //Reads the input and converts it to Kelvin degrees
  temp_in_kelvin = analogRead(0) * 0.004882812 * 100;
 
  //Converts Kelvin to Celsius minus 2.5 degrees error
  temp_in_celsius = temp_in_kelvin - 2.5 - 273.15;
 
  temp_in_fahrenheit = ((temp_in_kelvin - 2.5) * 9 / 5) - 459.67;

  //Print the temperature in Celsius to the serial port
  Serial.print("Celsius: ");
  Serial.println(temp_in_celsius);                 

  //Print the temperature in Fahrenheit to the serial port
  Serial.print("Fahrenheit: ");
  Serial.println(temp_in_fahrenheit);
  Serial.println();


  delay(1000);
}

Alguém me poderá dar umas dicas?

Cumps

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #1 em: 21 de Janeiro de 2012, 20:21 »
o output do LM335A é em Kelvin e são 10mV por grau

http://www.national.com/mpf/LM/LM335A.html#Overview

portanto a temperatura em ºC será:

(((temp/1023)x5)x100)-273

se não me engano  ;)

Offline Psycop

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 105
    • O.Cantinho.da.Programação
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #2 em: 21 de Janeiro de 2012, 20:23 »
Podias explicar-me melhor esses cálculos?

E porquê?

Cumps

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #3 em: 21 de Janeiro de 2012, 20:38 »
o valor lido vai ser um valor de 0 a 1023, mas quer-se um valor em Volts logo: (temp*5)/1023

o output do LM335 é em mV, para converter para Volts multiplica-se por 100

com isto obtens um valor em Kelvin, para converter para Celsius subtrais 273

0 ºK = -273 ºC

Offline Psycop

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 105
    • O.Cantinho.da.Programação
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #4 em: 21 de Janeiro de 2012, 20:41 »
Mas para isso funcionar tenho de usar o resistor de 10k?

É que tentei isso com o primeiro esquema e estou a receber temps de 28ºc o que não esta correcto!

Cumps

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #5 em: 21 de Janeiro de 2012, 20:45 »
não, ligado dessa maneira serve para calibrar, para uso normal basta assim:


Offline Psycop

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 105
    • O.Cantinho.da.Programação
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #6 em: 21 de Janeiro de 2012, 21:03 »
Ou seja, posso ligar os pinos directamente ao arduino sem usar qualquer resistência.

Mas porque é que dessa maneira me está a dar cerca de 10ºc acima do real?

Cumps

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #7 em: 21 de Janeiro de 2012, 21:09 »
basta usar a R1 do esquema

tens outro para testar?

Offline Psycop

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 105
    • O.Cantinho.da.Programação
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #8 em: 21 de Janeiro de 2012, 21:11 »
Não tenho outro para testar!

O R1 que dizes é directamente não é? Sem qualquer resistor?

Um facto curioso é que quando coloco o dedo sobre o sensor os valores deviam aumentar, mas diminuem!

Porque será?

Tenho algo invertido?

Cumps

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #9 em: 21 de Janeiro de 2012, 21:37 »
R1 é o nome da resistencia nesse circuito, o LM335 serve de divisor de tensão que varia conforme a temperatura, essa resistencia é sempre necessária ou os valores não serão os reais.

ligas o pino 0 ao 2º pino do LM335, o 3º ao GND e uma resistencia de 1k dos 5V ao 2º pino do LM335

pode ser que esta imagem seja mais esclarecedora:


Offline Psycop

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 105
    • O.Cantinho.da.Programação
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #10 em: 21 de Janeiro de 2012, 22:01 »
Olá

Eu estou a colocar assim como está na imagem em anexo!

Estou a fazer mal?
Ainda sou muito noob em esquemas electrónicos!
Cumps


Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #11 em: 21 de Janeiro de 2012, 22:21 »
assim penso que esteja bem

Offline Psycop

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 105
    • O.Cantinho.da.Programação
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #12 em: 21 de Janeiro de 2012, 22:51 »
Penso que era eu que tinha a resistência errada!

Estava a usar uma com o seguinte código de cores: (Dourado, Laranja, Preto, Castanho) e dava valores negativos, cerca de -2ºc)

Experimentei com uma (Dourado, e Depois 3 Tons de Vermelho) e começou a dar  temperaturas na ordem dos 18ºc que é +/- a temperatura que está realmente (cerca de 17ºc / 17.5ºc).

Cumps

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #13 em: 21 de Janeiro de 2012, 23:01 »
a 1ª era de 10k essa é de 2.2k

Offline Psycop

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 105
    • O.Cantinho.da.Programação
Re: Dificuldade com Temperature Sensor – LM335A
« Responder #14 em: 21 de Janeiro de 2012, 23:15 »
Pois, eu ainda ando muito baralhado com essas coisas!

Amanhã irei procurar pelos códigos de cores de cada uma, e corrigir! No entanto com a de 2.2 parece estar a funcionar bem!

Cumps