Código para ler a temperatura ambiente com o sensor LM35 utilizando o Arduino UNO R3 e a tensão de referência para a entrada analógica.
INTERNAL: uma referência interna, igual a 1.1 volts no ATmega168 ou ATmega328P e 2.56 volts no ATmega8 (Não disponível no Arduino Mega)
analogReference(tipo)
tipo: qual tipo de referência usar (DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56 ou EXTERNAL).
Fonte: https://www.arduino.cc/reference/pt/language/functions/analog-io/analogreference/
Código:
#define ADCPIN A3 // Pino de leitura do sensor
float temperatura = 0; // Variável para leitura e impressão na tela inicia com valor ZERO
void setup()
{
analogReference(INTERNAL); // Utiliza referência interna do UNO de 1,1Vcc
Serial.begin(9600); // Inicializa a comunicação serial
}
void loop()
{
temperatura = analogAvg(ADCPIN); // Leitura do sensor pela função
temperatura = temperatura * 1100 / (1024 * 10); // Conversão de volts para graus celsius
Serial.println(temperatura); // Imprime a leitura no monitor serial
delay(1000); //Espera 1 segundo para nova leitura
}
int analogAvg(int sensorPin){ // Função para amostragem do sensor
int medidas = 0;
int amostras = 20;
for (int n = 0; n < amostras; n++){
medidas += analogRead(sensorPin);
delay(10); // Melhorar as leituras analógicas
}
return medidas / amostras; // Retorna a amostragem
}