Rödelig triff es sehr gut!
Ich hab einmal einen anderen Aufbau konstruiert
Wenn ich einen Pull Up Wiederstand setze bekomme ich den Switch Button zum laufen! Jipiiieh
Mit einem Pulldown allerdings nicht! Dann zeiht der Button nicht an.
Aber jetzt kommt der Knoten im Kopf. Mit dem Risiko mich völlig zum Gespött zu machen...
Ich komm noch nichtmal an der Schleife vorbei um Klick und Drehen mit einem anderen Faktor zu erhöhen.
Und wenn dann nur 1x weil er dann lastval als gleich mit mod_val ansieht...
Sorry aber is glaub ich grad schon zu spät...und ich bin ja nu nicht Umsonst Medizinpädagoge geworden
Würde mich trotzdem freuen wenn ihr mir mal eine Inspiration geben könnt.
Mir ist klar das es ingesamt 3 Funktionen (hier noch Schleifen) sein müssten
- einfach Hoch und Runter mit Faktor 1
- Klick, Halten und Drehen - hoch und runter mit Faktor 10
- Klick (wahrscheinlich am besten mit)
- Klick kurz - Funktion On/Off
- Klick Lang- Funktion irgendwas
Ich muss also r.value modifizieren wenn gleichzeitig der Button gedrückt ist.
Ich hab an folgendes gedacht
Aber hier steigt er nicht in die Schleife ein
Code: Alles auswählen
import utime
from rotary_irq_esp import RotaryIRQ
from machine import Pin
r = RotaryIRQ(pin_num_clk=32,
pin_num_dt=33,
min_val=0,
max_val=255,
reverse=True,
range_mode=RotaryIRQ.RANGE_WRAP)
pin_sw = Pin(34, Pin.IN)
lastval = r.value()
while True:
val = r.value()
if lastval != val:
lastval = val
print('result =', val)
elif pin_sw.value() == 0:
print("sw")
mod_val = r.value() + 10
if lastval != mod_val:
lastval = mod_val
print("mit sw", lastval)
utime.sleep_ms(50)
Aber ich teste hier gerade nur dummes Zeug zusammen
Code: Alles auswählen
result = 1
sw
mit sw 11
result = 1
result = 2
sw
mit sw 12
result = 2
result = 3
sw
mit sw 13
result = 3
sw
mit sw 13
result = 4
sw
mit sw 14
result = 4
sw