als Anfänger hätte ich mal eine Frage bezüglich einer Mittelung der Werte. Wie würde eine einfache Mittelung hier aussehen und wie ein gleitender Mittelwert. Danke schon im Voraus.
void setup() {
}
void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
}
float Val;
int Eingangswert,j;
void setup() {
Serial.begin(115200);
Serial.print("IN\t"); Serial.print("OUT\t\n");
}
void loop() {
int Eingangswert = analogRead(A0);
Serial.print(Eingangswert); Serial.print("\t");
Filtern(Val, Eingangswert, 100);
Serial.print(Val); Serial.print("\t\n");
}
/*************************************************************************************************
** Funktion Filtern() by GuntherB **
**************************************************************************************************
** Bildet einen Tiefpassfilter (RC-Glied) nach. **
** FF = Filterfaktor; Tau = FF / Aufruffrequenz **
** **
** **
** **
** Input: FiltVal der gefilterte Wert, NewVal der neue gelesene Wert; FF Filterfaktor **
** Output: FiltVal **
** genutzte Globale Variablen: keine **
**************************************************************************************************/
void Filtern(float &FiltVal, int NewVal, int FF){
FiltVal= ((FiltVal * FF) + NewVal) / (FF +1);
}
Wenn du die Funktion filtern() in festen Zeitabständen aufruft, hast du einen Tiefpassfilter, dessen Grenzfrequenz mit FF und der Aufruffrequenz beeinflusst wird.