M5Dial: Unterschied zwischen den Versionen

Aus Micropython Referenz
Zur Navigation springen Zur Suche springen
 
Zeile 56: Zeile 56:
return return_list
return return_list
</pre>
</pre>
Hier eine komplette Funktion:
Hier eine komplette Beispiel-Funktion:
<pre>
<pre>
def get_triple():
def get_triple():

Aktuelle Version vom 2. Mai 2024, 17:34 Uhr

Beschreibung[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Inhalt:[Bearbeiten | Quelltext bearbeiten]

M5Dial Hardware

M5Dial Inbetriebnahme

M5Dial Display

M5Dial Encoder

M5Dial Touch

M5Dial RFID

M5Dial Buzzer

M5Dial RTC

M5Dial BTN

Die drei Eingabegeräte gemeinsam abfragen[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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

Rückgabewert zuordnen[Bearbeiten | Quelltext bearbeiten]

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 Beispiel-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[Bearbeiten | Quelltext bearbeiten]

Zurück zur M5Micropython Startseite