Dein FEhler liegt in deiner Interpretationslogik, 20Hz ist (ungefähr) die PWM Frequenz!
Die Pulse werden ja zyklisch weiderholt, nur die Pulsbreite verändert sich.
Logisch wäre also eine Interpretation nach dem Muster:
if (IN_OLD==LOW) && (TIME > 115) -> IN_NEW=HIGH
else if (IN_OLD==HIGH) && (TIME < 85) -> IN_NEW=LOW //für die Hysterese
if (IN_OLD==HIGH) && (IN_NEW==LOW) -> COUNT++
IN_OLD=IN_NEW
unter der annahme 85 ist dein pegel ab dem LOW erkannt werden soll und 115 dein Pegel ab dem High erkannt werden soll
das könnte man natürlich auch noch etwas zusammenfassen und 1 variable und 1 if sparen, aber so ist es übersichtlicher
Lesezeichen