Hex-Werte aus Liste auslesen und seriell steuern
Verfasst: Mittwoch 6. April 2022, 22:24
Ich möchte von einem ESP32 ein serielles LCD ansteuern. Für die Cursor-Steuerung möchte ich die Werte aus einer Liste auslesen. Normalerweise übergebe ich die Werte z.B. mit
Nach einigen Stunden bin ich nun soweit, dass ich um Hilfe bitte.
Die Funktion str() benutze ich, um den Fehler "TypeError: object with buffer protocol required" zu vermeiden.
. Solche Werte kann ich aber nicht in eine Liste übernehmen. Deshalb habe ich die Werte dort z.B. mit'\x16'
eingetragen. Diese Werte kann ich auch an das LCD fehlerfrei übertragen, dort wird aber nicht gesteuert, sondern der Wert dezimal ausgegeben.0x80
Nach einigen Stunden bin ich nun soweit, dass ich um Hilfe bitte.
Code: Alles auswählen
from time import sleep
import machine
LCD_ON = '\x16'
LCD_CLEAR = '\x0C'
LCD_LIGHT_ON = '\x11'
LCD_COMMAND_LIST = [0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86]
class LCD:
def __init__(self):
self.connection = machine.UART(2, baudrate=19200)
def setup(self):
self.connection.write(LCD_ON) # Display Ein.
sleep(0.2)
self.connection.write(LCD_CLEAR) # Display löschen, Cursor auf 0, 0.
sleep(0.2)
self.connection.write(LCD_LIGHT_ON) # Display Hintergrundbeleuchtung Ein.
sleep(0.2)
def message(self):
self.connection.write("Hallo Welt!")
def setCursorHome(self):
LCD_CURSOR_POS = str(LCD_COMMAND_LIST[0])
self.connection.write(LCD_CURSOR_POS)
lcd = LCD()
lcd.setup()
lcd.message()
lcd.setCursorHome()