diff --git a/scripts/speed_reader.py b/scripts/speed_reader.py index 54de62c..6d0322d 100644 --- a/scripts/speed_reader.py +++ b/scripts/speed_reader.py @@ -5,7 +5,8 @@ import datetime, os pulses_per_rotation = 4 reader = Button(4, pull_up=False, bounce_time=0.0005) set_variable("speed_reader_last_impulse_time", datetime.datetime.now(), False) -set_variable("actual_rpm_unfiltered", 0, False) +#set_variable("actual_rpm_unfiltered", 0, False) +set_variable("rpm_filter", [0], False) def printer(text): if bool(os.getenv("DEBUG")): @@ -19,8 +20,23 @@ def event(): rpm = (60 / difference) / pulses_per_rotation - actual_rpm = (float(get_variable("actual_rpm_unfiltered")) + rpm) / 2 - set_variable("actual_rpm_unfiltered", rpm, False) + #actual_rpm = (float(get_variable("actual_rpm_unfiltered")) + rpm) / 2 + #set_variable("actual_rpm_unfiltered", rpm, False) + + rpm_filter = get_variable("rpm_filter") + print(rpm_filter) + + if len(rpm_filter) > 8: + rpm_filter.remove(rpm_filter[0]) + + rpm_filter.append(rpm) + set_variable("rpm_filter", rpm_filter, False) + + average = 0 + for i in rpm_filter: + average = average + i + + actual_rpm = average / len(rpm_filter) set_variable("actual_rpm", round(actual_rpm, 1), False) printer("Measured RPM: {}".format(round(actual_rpm, 1)))