28 lines
1008 B
C++
28 lines
1008 B
C++
int PinoNTC = 1; // PINO DO NTC10K
|
|
double Vs = 3.3; // TENSÃO DE SAIDA DO ESP32
|
|
double R1 = 10000; //RESISTOR UTILIZADO NO DIVISOR DE TENSÃO
|
|
double Beta = 3950; // VALOR DE BETA
|
|
double To=298.15; // VALOR EM KELVIN REFERENTE A 25° CELSIUS
|
|
double Ro=10000;
|
|
double adcMax = 4095.0;
|
|
void setup() {
|
|
Serial.begin(115200); // INICIA O MONITOR SERIAL A UMA TAXA DE ATUALIZAÇÃO DE 9600
|
|
}
|
|
|
|
void loop() {
|
|
//GARANTE QUE AS INFORMAÇÕES SERÃO RESETADAS APÓS CADA LEITURA
|
|
double Vout, Rt = 0;
|
|
double T, Tc, Tf, adc = 0;
|
|
adc = analogRead(PinoNTC);// VARIÁVEL QUE RECEBE A LEITURA DO NTC10K
|
|
//CALCULOS PARA CONVERSÃO DA LEITURA RECEBIDA PELO ESP32 EM TEMPERATURA EM °C
|
|
Vout = adc * Vs/adcMax;
|
|
Rt = R1 * Vout / (Vs - Vout);
|
|
T = 1/(1/To + log(Rt/Ro)/Beta);
|
|
Tc = T - 273.15;
|
|
Tf = Tc * 9 / 5 + 32;
|
|
//Imprime no monitor serial o texto e a temperatura lida pelo sensor
|
|
Serial.print("Temperatura: ");
|
|
Serial.print(Tc);
|
|
Serial.println(" °C");
|
|
delay(500); // atraso entre as leituras
|
|
} |