quarta-feira, 30 de julho de 2014

Sensor de Temperatura LM35

Hoje iremos falar deste sensor de grande precisão e baixo custo. A maior vantagem deste sensor é ter uma saída de tensão linear com a temperatura, com uma resolução de 10mV/ºC.
Este sensor tem saída com baixa impedância, resposta linear conforme variação de temperatura e calibração inerente precisa, fazendo com que a interface de leitura seja  simples, diminuindo o custo de todo o sistema em função disto.
Este sensor poderá ser alimentado de maneira convencional ou simétrica, dependendo do que se deseja como sinal de saída, mas independentemente disso, a saída continuará sendo de 10mV/ºC. Ele drena apenas 60μA para ambas as formas de alimentação, sendo assim sua dissipação térmica gera um erro aproximado de 0.01ºC ao ar livre.
O sensor LM35 é encontrado em diversos tipos de encapsulamento, sendo o mais comum o TO-92, que mais se parece com um transistor. Oferece um excelente custo/beneficio por ser o mais barato do mercado a usar a tecnologia nele embarcado, garantindo a mesma precisão dos demais desta categoria.
Você encontra este sensor a partir de R$5,00 nas lojas de componentes eletrônicos ou pode comprar este da China, em uma placa com conector, para facilitar na sua aplicação:


Existe uma vantagem muito grande em usar este componente se comparado a outros utilizados para leitura de temperatura, como por exemplo, termistores NTC e PTC  que apresentam curvas de resposta exponenciais que exigirão mais capacidade de processamento matemático dos componentes responsáveis pelo processamento desse dado (PIC, Arduino, Etc...) , a seguir falaremos um pouco quanto ao conceito de conversor A/D de um PIC e mostraremos um firmware para teste.

Quanto ao conversor A/D:

Não podemos falar de um LM35 sem, pelo menos, comentar sobre o principio de funcionamento das portas A/D de microcontroladores. Após configurar o firmware o sinal de entrada de um pino analógico é jogado em um comparador interno a estrutura do microcontrolador (Poderão encontrar mais a respeito de comparadores, mais explicitamente sobre amplificadores operacionais, vulgo AOP, neste blog que vos fala) quando for solicitado pelas funções que estão "rodando" no seu programa o hardware do componente em questão irá "cutucar" um contador (Geralmente de 10 bit's) que esta ligado a um conversor D/A e a saída deste conversor estará ligada a uma das entradas do AOP, sendo assim temos em ordem; O sinal analógico entrando no pino e um das entradas do AOP e o segundo sinal analógico gerado por um conversor D/A entrando na outra entrada do AOP. Conforme o contador vai aumentando seu valor, o nível de tensão na saída do D/A  vai aumentando proporcionalmente (Nota o que é chamado de resolução ou mV/bit) até que se equivale ao valor de tensão da entrada do pino analógico do microcontrolador, neste momento o AOP "joga" sua saída para nível alto, sinalizando que o valor binário gerado pelo contador é correspondente ao valor de tensão injetado no pino analógico. A sensibilidade desta leitura depende do valor que o contador consegue contar, se for um contador de 10 bits por exemplo, o mesmo chega a apresentar 1024 possibilidades, ou seja a sua resolução será de Vcc/1024, ou seja, com uma alimentação de 5V teremos cerca de 48mV/bit. Esquema a seguir:





Continuando, vamos ao firmware:


int16 temperatura=0;

void main ( )
{  
   setup_adc_ports(AN0);            //Habilita pino como analógico
   setup_adc(ADC_CLOCK_INTERNAL);   //Habilita clock interno para contador
   set_adc_channel(0);              //Solicita a leitura do pino AN0
   delay_us(20);                    //Espera um tempo ai...

   while (true)
   {  
      temperatura = read_adc();     //Solicita o valor do pino AN0
      if(temeperatura>0xXX){        //Se o valor corresponder...
          
         output_high(PIN_"X");      //...coloca em alta a pino "X"
      }
   }
} 

Considerações importantes:

*O valor da variável que gravará o retorno da porta do valor do pino analógico deve corresponder ao tamanho do contador ligado ao conversor D/A, para isso é necessário consultar o 'datasheet' do microcontrolador que esta sendo usado.

*Vale lembrar que o LM35 não irá inicializar sua saída com zero (Volts) ou qualquer valor estipulado, o ideal  é efetuar uma calibração, colocar seu circuito em um ambiente com temperatura regulada (Preferencialmente a 25°C) e verificar o valor de resposta do LM35 e a partir disto (Dependendo da resolução e configurações do conversor A/D das portas analógicas do microcontrolador) calcular valores onde seu circuito execute alguma função. Caso queira usar o mesmo como termômetro,  tabelar/estipular de quanto em quanto a variável (int16 temperatura) deve  incrementar/decrementar para que corresponda ao calor encontrado no ambiente.

Claro que não conseguirão medir a temperatura de nitrogênio liquido e muito menos do núcleo do sol com este guerreiro, mas com certeza existe "n" aplicações que um LM35 pode ser a melhor das soluções, pelo seu preço, por exigir menos dos microcontroladores (Pode ser utilizado com um PIC com características básicas, diminuindo o custo) e por aguentar o tranco garantindo confiabilidade. Espero que tenham gostado do post, a baixo alguns links que podem ajudar, um grande abraço e até a próxima.


Clique aqui para comprar no Aliexpress
Clique aqui para acessar o Datasheet

Nenhum comentário:

Postar um comentário