agrobot_base/Firmware/Sensoriamento/ntc/ntc.ino

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
}