quarta-feira, 24 de abril de 2013

Sensor de Temperatura LM35 e Arduino

O  LM35 é um sensor de temperatura de precisão, alimentado por 5V, ele possue uma variação de tensão na saída do sinal entre 0 a 5V, correnpondendo o acréscimo ou decréscimo de  10mV a cada 1º C. Abaixo segue uma imagem ilustrativa do sensor:

O pino 1 corresponde a alimentação do sensor (Vcc) e o pino 3 ao comum (GND).
Consequentemente temos o pino 2 como a saída do sinal do sensor.

Utilizando alguns jumpers e uma protoboard, podemos ligar o sensor no arduino da seguinte forma:




Após feita as conexões dos pinos do sensor no arduino, devemos então partir para o código. Mas antes precisamos fazer uma conversão, pois o valor que o sensor vai nos fornecer é uma tensão entre 0 e 5V e o que o arduino nos irá retornar com a função "analogRead()" será um valor entre 0 e 1023.
Isso é facilmente contornado uma regra de três.

 - Temos que a cada variação de 1°C a saida de sinal varia 10mV.
 - O valor do sensor é convertido para um numero digital com uma resolução de 10bit (0 - 1023).
 - A alimentação do sensor será de 5V.

  Logo temos:

Variação máxima de temperatura -> VM
Tensão máxima do sinal -> TM
Variação a cada grau -> VG

VM = TM/VG -> 5/ 0,01 -> 500

Ou seja, entre 0 a 5V, o sensor poderia medir uma variação de 500°C. Como dito na frase anterior, poderia, pois a faixa de leitura do LM35 é de -55°C à 150°C.

Colocando tudo numa regra de 3, temos:

500 - 1023
T    -       S
E então chegamos a seguinte conclusão: T = (S*500) / 1023

Agora é só código.
1:  float S = 0;  
2:  float T = 0;  
3:  void setup(){  
4:    Serial.begin(9600); //Configurando taxa de transferência da porta serial (9600bps)  
5:  }  
6:  void loop(){  
7:     S = analogRead(A0);//Lê porta analógica 0 e armazena em S  
8:     T = (S * 500)/1023;//Conversão do sinal lido em Temperatura  
9:     Serial.print(T);//Imprime o valor de T (temperatura)  
10:   Serial.println(" C");//imprime em seguida  
11:   delay(1000);//Espera 1000 milisegundos, ou 1 segundo para executar novamente a função  
12:  }  

0 comentários:

Postar um comentário