@gatonero: Der Code wird so nicht laufen weil der Name `time` nicht bekannt ist. Entwder importierst Du `time` und greifst darüber auf die `sleep()`-Funktion zu, oder Du importierst `sleep()` und benutzt das direkt.
Der Name `lcd` ist ungünstig. Falls Du Dich jetzt fragst *welcher* von beiden: Genau deshalb. Eine Klasse modelliert ein ”Ding”. Und die Attribute beschreiben woraus das ”Ding” besteht, beziehungsweise dessen Zustand. Da steht also das ein LCD aus einem LCD besteht. Was komisch klingt. Das LCD-Objekt besteht aus einer seriellen Verbindung zu einem physischen LCD.
Klassennamen werden in Python per Konvention in PascalCase geschrieben, damit man Klassen besser von Exemplaren unterscheiden kann. Dann brauchst Du das Exemplar auch nicht `obj` zu nennen, was ja extrem nichtssagend ist, sondern das heisst dann `lcd`.
`__init__()` ist kein Konstruktor. Das wäre `__new__()`. In beiden Fällen braucht es keinen Kommentar.
Der allererste Kommentar ist komisch, denn so etwas wie einen „public access modifier“ gibt es in Python nicht.
Code: Alles auswählen
from time import sleep
import machine
class LCD:
def __init__(self):
self.connection = machine.UART(2, baudrate=19_200)
def setup(self):
self.connection.write('\x16') # Display Ein.
sleep(0.2)
self.connection.write('\x0C') # Display löschen, Cursor auf 0, 0.
sleep(0.2)
self.connection.write('\x11') # Display Hintergrundbeleuchtung Ein.
sleep(0.2)
def message(self):
self.connection.write("classtest.py")
lcd = LCD()
lcd.setup()
lcd.message()