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