from machine import Pin, Timer
from time import ticks_ms, ticks_diff
# Pins
led = Pin(15, Pin.OUT)
taster = Pin(14, Pin.IN, Pin.PULL_UP)
# Timer
timer = Timer(0)
# Zustand
modus = 0
letzter_tastendruck = 0
# LED umschalten
def toggle_led(timer):
led.value(not led.value())
# Taster-Interrupt
def button_pressed(pin):
global modus
global letzter_tastendruck
jetzt = ticks_ms()
# Debounce
if ticks_diff(jetzt, letzter_tastendruck) > 200:
# Modus wechseln
if modus == 0:
modus = 1
# 2 Hz
timer.init(
period=250,
mode=Timer.PERIODIC,
callback=toggle_led
)
print("2 Hz")
else:
modus = 0
# 0,5 Hz
timer.init(
period=1000,
mode=Timer.PERIODIC,
callback=toggle_led
)
print("0,5 Hz")
letzter_tastendruck = jetzt
# Start mit 0,5 Hz
timer.init(
period=1000,
mode=Timer.PERIODIC,
callback=toggle_led
)
# Interrupt aktivieren
taster.irq(
trigger=Pin.IRQ_FALLING,
handler=button_pressed
)Loading
esp32-devkit-c-v4
esp32-devkit-c-v4