int adc_raw = 0;
float EMA_LP_LOW = 0; // EMA para filtro pasa bajos
float EMA_LP_HIGH = 0; // EMA para filtro pasa altos
#define alpha_bajos 0.025
#define alpha_altos 0.1
void setup() {
Serial.begin(9600);
}
void loop() {
adc_raw = analogRead(A0);
// Filtro pasa bajos
EMA_LP_LOW = alpha_bajos * adc_raw + (1 - alpha_bajos) * EMA_LP_LOW;
// Filtro pasa altos
EMA_LP_HIGH = alpha_altos * adc_raw + (1 - alpha_altos) * EMA_LP_HIGH;
// Filtro rechaza bandas (combinación de pasa altos y pasa bajo)
int adc_filtrado_rechaza_bandas = adc_raw - (EMA_LP_HIGH - EMA_LP_LOW);
Serial.print(adc_raw);
Serial.print(",");
Serial.println(adc_filtrado_rechaza_bandas);
}