from src.variables.service import get_variable, set_variable from gpiozero import Button import datetime from scripts.speed_controller import rpm_control pulses_per_rotation = 1 reader = Button(4, pull_up=False, bounce_time=0.0005) set_variable("speed_reader_last_impulse_time", datetime.datetime.now(), False) rpm_last = 0 def event(): actual = datetime.datetime.now() last = get_variable("speed_reader_last_impulse_time") difference = (actual - last).total_seconds() set_variable("speed_reader_last_impulse_time", actual, False) rpm = (60 / difference) / pulses_per_rotation actual_rpm = (rpm_last + rpm) / 2 rpm_last = rpm set_variable("actual_rpm", round(actual_rpm, 1), False) rpm_control() reader.when_pressed = event