Social Icons

[Video Aula] Termômetro Super Simles




Para fazer essa montagem foram utilizados os seguintes componentes:
  • Arduino
  • Mini protoboard
  • Sensor LM3
  • Fios para protoboard (Wire jumpers)
Para ligar o LM35 ao Arduino, é bom ter um conhecimento mínimo do conversos Analógico-Digital do Arduino (A/D).
Esse conversor tem entrada máxima de 5V. Como ele é de 10 bits, consegue diferenciar 1024 (de 0 a 1023) valores entre 0V e 5V.  Ou seja, quando ele ler 5v na entrada ele vai converter para 1023.
Agora ficou fácil, pois podemos fazer um regrinha de três (interpolação para quem é mais formal):
1023 —– 5V
512 ——- X
X = (5 * 512) / 1023 = 2.5 V
Ou seja,  se o A/D mostrar o valor digital 512 significa que está entrando 2.5V nele.
E o que o LM35 tem a ver com isso?
O LM35 é um sensor de temperatura linear que fornece 10mV para cada grau celcius que ele medir. Ou seja, se ele fornecer 100mV, significa que ele está medindo 10ºC.
Então da para ligar o LM35 no Arduino e fazer um termômetro?
Sim, basta fazer a ligação do esquemático abaixo e programar seu Arduino com o código fonte disponível no final desse post.

Código Fonte:
/*

  Conversor Analógico->Digital de 10 bits (1024).

  O valor máximo que pode entrar no A/D é 5V.
  Sendo assim, quando entrar:
  -> 5V o valor lido será 1023
  -> 2.5V o valor lido será 511 ou (1023/2)
  -> 0V o valor lido será 0
  Resumindo, é uma regra de três normal onde:
  5V - 1023
  X  - Y
*/
int pinoSensor = 0; //pino que está ligado o terminal central do LM35
int valorLido = 0; //valor lido na entrada analogica
float temperatura = 0; //valorLido convertido para temperatura

void setup() {
  Serial.begin(9600); //Inicializa comunicação Serial
}

void loop() {
  valorLido = analogRead(pinoSensor);
  temperatura = (valorLido * 0.00488);  // 5V / 1023 = 0.00488 (precisão do A/D)
  temperatura = temperatura * 100; 
//Converte milivolts para graus celcius, lembrando que a 
//cada 10mV equivalem a 1 grau celcius
  Serial.print("Temperatura atual: ");
  Serial.println(temperatura);
  delay(5000); //espera 5 segundos para fazer nova leitura
}

Nenhum comentário:

Postar um comentário