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