• Welcome to LusoRobótica - Robótica em Português.
 

Sensor LM335A

Started by andremendes, 20 de May de 2012, 21:48

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

andremendes

Boas.

Alguém me sabe dizer como calibrar o sensor de temperatura LM335A ?

Obrigado.

Njay

Há uma secção da datasheet do mesmo só sobre como fazer isso.

andremendes

Quote from: Njay on 20 de May de 2012, 21:57
Há uma secção da datasheet do mesmo só sobre como fazer isso.

Já tinha estado a ver... mas ou não encontrei ou não percebi o que li, pois não consegui decifrar lá nada que me pudesse ajudar.

Vou voltar a tentar ler aquilo melhor para ver se me oriento.

Njay

Força... se tiveres dúvidas concretas, apita.

andremendes

Obrigado.

Entretanto uma questão quanto às ligações. GRD, 5V e sinal... é necessário algum tipo de resistência para alguma das 3 ligações necessárias ?

Njay

Acho que estás a confundir o LM35 com o LM335. O LM35 é que tem GND, alimentação e saída de sinal.

O LM35 tem 2 pinos de allimentação e um 3º onde "sai" uma tensão proporcional à temperatura.

O LM335 funciona como um díodo zener, em que a queda de tensão é proporcional à temperatura; tem 3 terminais mas o terceiro ("ajuste") é apenas para o calibrares para teres melhor precisão, e se não quiseres nem precisas de o usar. Isto usa-se como um Zener, portanto precisa de uma resistência, mas mais uma vez a datasheet tem exemplos de aplicações tipicas, e o 1º circuito ("Basic temperature sensor") mostra a forma mais simples de o usar.

andremendes

#6
Quote from: Njay on 20 de May de 2012, 22:38
Acho que estás a confundir o LM35 com o LM335. O LM35 é que tem GND, alimentação e saída de sinal.

O LM35 tem 2 pinos de allimentação e um 3º onde "sai" uma tensão proporcional à temperatura.

O LM335 funciona como um díodo zener, em que a queda de tensão é proporcional à temperatura; tem 3 terminais mas o terceiro ("ajuste") é apenas para o calibrares para teres melhor precisão, e se não quiseres nem precisas de o usar. Isto usa-se como um Zener, portanto precisa de uma resistência, mas mais uma vez a datasheet tem exemplos de aplicações tipicas, e o 1º circuito ("Basic temperature sensor") mostra a forma mais simples de o usar.

Então devo de estar a fazer confusão... É que eu já utilizei o LM35, mas o que quero agora utilizar é mesmo o LM335. Então é possivel que esteja também a fazer algumas ligações mal e por isso a coisa não esteja a funcionar.

Porque as temperatura até que tem estado dentro do previsto... mas por exemplo quando faço calor sobre o sensor ele desce a temp e não aumenta. Sem ter isto bem ligado 1º nem sei se o código estará também ele correto.

Njay

A montagem básica é mesmo o 1º exemplo da datasheet. Podes usar uma resistência de 1.8K a 2.2K. Depois o sinal que "sai do zener" (no ponto em que a R e o LM335 se unem) é 10mV por cada grau Kelvin. A escala de graus Kelvin é igual à de graus centigrados mas 0ºK = -273.15ºC, daí que no código, depois de leres o valor da tensão, tens que efectuar uma conversão (subtrair 273.15!) para teres a temperatura em ºC.
Se leres 0V, a temperatura é 0V x 0.01V/ºK = 0ºK = -273.15ºC.
20ºC seriam 20ºC + 273.15ºC = 293.15ºK -> 295.15ºK x 0.01V/ºK = 2.9315V.
Genericamente, se Vin for a tensão lida (em Volt), temos que a temperatura (Tc) em ºC é Tc = Vin / 0.01 - 273.15

andremendes

Quote from: Njay on 20 de May de 2012, 22:57
A montagem básica é mesmo o 1º exemplo da datasheet. Podes usar uma resistência de 1.8K a 2.2K. Depois o sinal que "sai do zener" (no ponto em que a R e o LM335 se unem) é 10mV por cada grau Kelvin. A escala de graus Kelvin é igual à de graus centigrados mas 0ºK = -273.15ºC, daí que no código, depois de leres o valor da tensão, tens que efectuar uma conversão para teres a temperatura em ºC.
Se leres 0V, a temperatura é 0V x 0.01V/ºK = 0ºK = -273.15ºC.
20ºC seriam 20ºC + 273.15ºC = 293.15ºK -> 295.15ºK x 0.01V/ºK = 2.9315V.
Genericamente, se Vin for a tensão lida (em Volt), temos que a temperatura (T) em ºC é T = Vin / 0.01 - 273.15

A ligação já fiz... Estou é a usar resistencia de 1k ha problema? Se não o que tenho é de 10k. Mas as conversões acho que tinha bem, mas isto não me le bem. Não sei que valores lhe estou a passar erradamente. Porque quando ter as temperaturas certas, ele le ao contrario... fica mais quente e ele começa a baixa a temp. Deixa la ver isto td novamente.

Njay

Não há problema com 1K se estiveres a usar 5V, mas depois é melhor usar ~2K. Quanto mais corrente passar por ele, mais tendência tem para aquecer e depois tens um erro maior, porque em vez de estar à temperatura do que queres medir, ele está à sua própria temperatura. Na datashet tens os limites de corrente que podem atravessar o "zener".

andremendes

Quote from: Njay on 20 de May de 2012, 23:09
Não há problema com 1K se estiveres a usar 5V, mas depois é melhor usar ~2K. Quanto mais corrente passar por ele, mais tendência tem para aquecer e depois tens um erro maior, porque em vez de estar à temperatura do que queres medir, ele está à sua própria temperatura. Na datashet tens os limites de corrente que podem atravessar o "zener".

O problema que continuo a ter é mesmo na leitura... Nunca tenho uma leitura correta da temperatura. Estou a fazer algo mal na conversão no código.

andremendes

  int TempPIN = 0;
  float leitura;

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

  void loop(){
    leitura = analogRead(TempPIN);
       
    leitura = (((leitura / 1023) * 5) * 100);
    Serial.print("Celsius: ");   
    leitura = (leitura - 272.15);
    Serial.println(leitura);   
   
    delay(1000);
    }



Parece-me tudo correto, mas recebo é alguns valores muito dispares... Pode estar a dar 25ºC, 'aplico' calor começa a aumentar e do nada começa a marcar 21, depois 19, logo de seguida passa para vinte e tal...

Njay

#12
Isso é o comportamento de um díodo, cuja queda de tensão baixa com o aumento de temperatura (diz-se que tem um "coeficiente de temperatura negativo"). Não terás isso ligado ao contrário?

(é 273.15 e não 272.15)

andremendes

Quote from: Njay on 21 de May de 2012, 18:43
Isso é o comportamento de um díodo, cuja queda de tensão baixa com o aumento de temperatura (diz-se que tem um "coeficiente de temperatura negativo"). Não terás isso ligado ao contrário?

Penso que não... Segui o datasheet. Vai em anexo o esquema de como liguei.


Njay

Parece-me bem. Mede a tensão "de saída" com o multimetro (mede na pata da R). Experimenta outro LM335, podes ter estragado esse.