from machine import Pin
import time
def button_count(tassk, prev, press, counter):
""" count or reset the counter, based on the button pressed """
press_now = press.value()
if press_now != prev:
prev = press_now
if press_now:
telnr = button_to_teller(press)
if tassk == "tel":
rood.value(1)
counter += 1
print("teller", telnr, "=", counter)
elif tassk == "reset":
blauw.value(1)
counter = 0
print("teller", telnr, "RESET")
time.sleep(0.25)
rood.value(0)
blauw.value(0)
return counter
def button_to_teller(press):
""" return the right teller nr based on the button pressed"""
button_pin = str(press)
button_pin = int(str(button_pin[4:-1]))
if button_pin == p_in_t1 or button_pin == p_in_r1:
teller = 1
elif button_pin == p_in_t2 or button_pin == p_in_r2:
teller = 2
return teller
if __name__ == '__main__':
# ESP32 pins IN & OUT
p_in_t1 = 23
p_in_r1 = 22
p_in_t2 = 21
p_in_r2 = 19
druk_t1 = Pin(p_in_t1, Pin.IN, Pin.PULL_DOWN)
druk_r1 = Pin(p_in_r1, Pin.IN, Pin.PULL_DOWN)
druk_t2 = Pin(p_in_t2, Pin.IN, Pin.PULL_DOWN)
druk_r2 = Pin(p_in_r2, Pin.IN, Pin.PULL_DOWN)
rood = Pin(18, Pin.OUT)
blauw = Pin(2, Pin.OUT)
druk_t1_prev = 0
druk_r1_prev = 0
druk_t2_prev = 0
druk_r2_prev = 0
t1 = 0
t2 = 0
while True:
t1 = button_count("tel", druk_t1_prev, druk_t1, t1)
t1 = button_count("reset", druk_r1_prev, druk_r1, t1)
t2 = button_count("tel", druk_t2_prev, druk_t2, t2)
t2 = button_count("reset", druk_r2_prev, druk_r2, t2)