28 lines
1008 B
Arduino
28 lines
1008 B
Arduino
|
|
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
|
||
|
|
}
|