//Autor: Dietler
//Programm: PT1 Filter
//Datum: 02.10.2024
//Bibliotheken
// Konstanten
#define ADC_IN_POTI 32
#define DELAY 50
#define KPT1 1.0
#define Time 1000.0
// Globale Variablen
unsigned long prevMillis = 0;
int adcValue = 0;
float filteredValue = 0;
void setup() {
// Serielle Verbindung initialisieren
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop() {
unsigned long dt = millis(); - prevMillis;
// Im 10ms Takt ADC-Wert einlesen
if (dt >= DELAY) {
prevMillis = millis();
// ADC-Wert vom Pin auslesen
adcValue = analogRead(ADC_IN_POTI);
// Tiefpassfilter 1. Ordnung (PT1-Glied) anwenden
filteredValue = filteredValue + (KPT1 * adcValue - filteredValue) * dt / (dt + Time);
// Ergebnis ausgeben
Serial.print(adcValue);
Serial.print(", ");
Serial.println(filteredValue);
}
}