LusoRobótica - Robótica em Português
Sobre o LusoRobótica - antigo => Sugestões e Questões => Tópico iniciado por: andremendes em 20 de Maio de 2012, 21:48
-
Boas.
Alguém me sabe dizer como calibrar o sensor de temperatura LM335A ?
Obrigado.
-
Há uma secção da datasheet do mesmo só sobre como fazer isso.
-
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.
-
Força... se tiveres dúvidas concretas, apita.
-
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 ?
-
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.
-
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.
-
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
-
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.
-
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".
-
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.
-
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...
-
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)
-
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.
-
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.
-
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.
Tenho é de arranjar um multimetro... Achas que possa ter estragado o sensor ? Ele agora parece medir bem... Tem é aqueles 'saltos' que referi. Mas tenho é de confirmar de outra forma a temperatura real no espaço onde o sensor está para ter a certeza.
-
Se a tensão não aumenta com a temperatura, não está bem. Também não está bem se os valores não são aproximadamente os esperados. O sensor tem um erro, tá na datasheet mas penso que são até +/- 3ºC, erro este que podes reduzir calibrando-o.
-
Se a tensão não aumenta com a temperatura, não está bem. Também não está bem se os valores não são aproximadamente os esperados. O sensor tem um erro, tá na datasheet mas penso que são até +/- 3ºC, erro este que podes reduzir calibrando-o.
Vou então ver se depois consigo fazer a medição e ver se está okay.
Obrigado.