Arduino Nano - Sensor de Temperatura LM35

Este tutorial ensina você a usar o Arduino Nano para ler a temperatura do sensor LM35. Em detalhes, vamos aprender:

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×LM35 Temperature Sensor
1×Protoboard
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Sensor de Temperatura LM35

Pinagem do Sensor de Temperatura LM35

O sensor de temperatura LM35 tem três pinos:

  • Pino GND: deve ser conectado ao terra (0V).
  • Pino VCC: deve ser conectado ao VCC (5V).
  • Pino OUT: este pino de sinal fornece uma tensão de saída linearmente proporcional à temperatura e deve ser conectado a um pino analógico do Arduino Nano.
Pinagem do sensor de temperatura LM35

Como Funciona

O LM35 produz uma tensão linearmente proporcional à temperatura em graus Celsius. Seu fator de escala de saída é de 10 mV/°C, o que significa que a temperatura pode ser determinada dividindo a tensão (em mV) no pino de saída por 10.

Diagrama de Ligação

Diagrama de ligação do Arduino Nano com o sensor de temperatura LM35

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Como Programar para o Sensor de Temperatura LM35

  • Obtenha o valor ADC do sensor de temperatura usando a função analogRead().
int adcVal = analogRead(PIN_LM35);
  • Transforme o valor ADC em uma tensão em milivolts.
float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION);
  • Transforme a tensão em temperatura Celsius.
float temperature_C = milliVolt / 10;
  • Opcional: converta Celsius para Fahrenheit.
float temperature_F = temperature_C * 9 / 5 + 32;

Código Arduino Nano

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-lm35-temperature-sensor */ #define ADC_VREF_mV 5000.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A6 // The Arduino Nano pin connected to LM35 sensor void setup() { Serial.begin(9600); } void loop() { // get the ADC value from the temperature sensor int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float temperature_C = milliVolt / 10; // convert the Celsius to Fahrenheit float temperature_F = temperature_C * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(temperature_F); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Passos Rápidos

  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload no IDE para enviá-lo ao seu Arduino Nano.
  • Segure o sensor na mão.
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Ln 11, Col 1
Arduino Nano on COM15
2

Melhorando a Precisão da Temperatura

No código acima, a tensão de referência do ADC está definida com o valor padrão de 5V, ou 5000mV. Para aumentar a resolução da temperatura, a tensão de referência pode ser alterada para INTERNAL, que é 1,1V, ou 1100mV, usando a função analogReference().

Esta tabela mostra o contraste entre as tensões de referência de 5000mV e 1100mV.

Vref(mV) 5000 mV (padrão) 1100 mV (INTERNAL)
Resolução de Leitura 5000/1024 = 4,88 mV 1100/1024 = 1,07 mV
Resolução de Temperatura 0,488 °C 0,107 °C
Faixa de Temperatura 0 a 500 °C 0 a 110 °C

Código Arduino Nano

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-lm35-temperature-sensor */ #define ADC_VREF_mV 1100.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A6 // The Arduino Nano pin connected to LM35 sensor void setup() { Serial.begin(9600); // switch to Internal 1.1V Reference analogReference(INTERNAL); } void loop() { // get the ADC value from the temperature sensor int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // ADC_VREF_mV = 1100 mV // convert the voltage to the temperature in Celsius float temperature_C = milliVolt / 10; // convert the Celsius to Fahrenheit float temperature_F = temperature_C * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(temperature_F); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Vídeo

Referências de Funções

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!