SequentMicrosystems_API/scripts/speed_reader.py

31 lines
No EOL
779 B
Python

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