/* Lesen eines NTC-Widerstands (10kOhm)
* Quellen:
* - https://github.com/e-tinkers/ntc-thermistor-with-arduino-and-esp32/blob/master/ntc_3950.ino
* - https://docs.wokwi.com/parts/wokwi-ntc-temperature-sensor
*
* Problem: Der Spannungsausgang des ESP32 beträgt 3,3V statt, wie beim Arduino 5V.
* Dementsprechend musste die Berechnungsformel im Unterschied zur Doku angepasst werden.
*/
// Der NTC ist mit dem GPIO 27 verbunden
const int ntcPin = 27;
// Variable um den Wert des NTC zu speichern
int ntcValue = 0;
double Vs = 5; // Ausgangsspannung
double adcMax = 4095.0; // Analog-Digital Teiler
int R1 = 10000; // 10kOhm
const float Beta = 3950; // Umrechnungsfakor des NTC
double To = 298.15; // Temperatur in Kelvin für 25° Celsius
double Ro = 10000.0; // Widerstand des NTC bei 25° Celsius
void setup() {
Serial.begin(115200);
delay(1000);
}
void loop() {
// Den NTC-Wert lesen
ntcValue = analogRead(ntcPin);
// Formel zur Umrechung des Wertes
double Vout = ntcValue * Vs/adcMax;
double Rt = R1 * Vout / (Vs - Vout);
double T = 1/(1/To + log(Rt/Ro)/Beta); // Temperature in Kelvin
// Celsius
// Fahrenheit
}