M5Dial: Unterschied zwischen den Versionen

Aus Micropython Referenz
Zur Navigation springen Zur Suche springen
Zeile 55: Zeile 55:
     return_list[2] = btna_service_routine()
     return_list[2] = btna_service_routine()
return return_list
return return_list
</pre>
Hier eine komplette Funktion:
<pre>
def get_triple():
    return_list = [None, None, None]
    M5.update()
    if rotary.get_rotary_status():
        return_list[0] = rotary_service_routine()
    if M5.Touch.getCount():
        return_list[1] = touch_service_routine()
    if BtnA.isPressed():
        return_list[2] = btna_service_routine()
    return return_list
</pre>
</pre>


==Navigation==
==Navigation==
[[M5Micropython|Zurück zur '''M5Micropython''' Startseite]]
[[M5Micropython|Zurück zur '''M5Micropython''' Startseite]]

Version vom 2. Mai 2024, 17:33 Uhr

Beschreibung

Diese Seite beschreibt meine Erfahrungen mit dem M5Dial.
Es ist kein RGB-Device vorhanden, obwohl es sich in der IDE dazu laden lässt.

Die Hardware

Inhalt:

M5Dial Hardware

M5Dial Inbetriebnahme

M5Dial Display

M5Dial Encoder

M5Dial Touch

M5Dial RFID

M5Dial Buzzer

M5Dial RTC

M5Dial BTN

Die drei Eingabegeräte gemeinsam abfragen

In der Praxis wird es wenig hilfreich sein, wenn der Encoder und der Touchscreen nur nacheinander abgefragt werden kann. So wird z.B. ein Wert mit dem Encoder eingestellt und dann soll er mit einem Touchbutton übernommen oder wieder gelöscht werden. Dazu müssen beide Eingabegeräte quasi parallel abgefragt werden.

Feststellen, ob eines der Geräte aktiviert wurde

Der folgende Code aktualisiert den Zustand der 3 Geräte und testet, welche aktiviert wurden:

M5.update()
if rotary.get_rotary_status():
    pass
if M5.Touch.getCount():
    pass
if BtnA.isPressed():
    pass

Auf die Aktivierung reagieren

Wenn die pass-Anweisung durch eine entsprechende Funktion ersetzt wird, kann die Eingabe auch gleich bearbeitet werden.

Rückgabewert zuordnen

Wenn auf die Eingabe reagiert wurde muss ggf. ein Wert zurück gegeben werden. Dabei muss klar sein, von welchem Gerät dieser Wert kommt, damit er richtig verarbeitet werden kann. Dazu kann ggf. eine Liste zurückgegeben werden, die alle drei Ergebnisse enthält:

return_list = [None, None, None]
M5.update()
if rotary.get_rotary_status():
    return_list[0] = rotary_service_routine()
if M5.Touch.getCount():
    return_list[1] = touch_service_routine()
if BtnA.isPressed():
    return_list[2] = btna_service_routine()
return return_list

Hier eine komplette Funktion:

def get_triple():
    return_list = [None, None, None]
    M5.update()
    if rotary.get_rotary_status():
        return_list[0] = rotary_service_routine()
    if M5.Touch.getCount():
        return_list[1] = touch_service_routine()
    if BtnA.isPressed():
        return_list[2] = btna_service_routine()
    return return_list

Navigation

Zurück zur M5Micropython Startseite