MicroPython auf ESP32 mit Parallax Serial LCD

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Benutzeravatar
gatonero
User
Beiträge: 21
Registriert: Montag 4. April 2022, 21:12

Hallo miteinander,

ich versuche an einem ESP32 ein Parallax Serial LCD anzuschließen. Es handelt sich um eine serielles LCD mit 3 Anschlüssen (1xRx, 1x5V, 1xGND)Für den Arduino gibt es eine Library, die ich seit einigen Jahren nutze. Seit einigen Stunden versuche ich erfolglos etwas für MicroPython zu finden.

Könnt ihr mir bitte weiter helfen, welche Library ich nutzen sollte?

Parallax Serial LCD
Parallax Serial LCD with Piezospeaker Product Guide
Arduino Parallax LCD Library
__deets__
User
Beiträge: 14533
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hier https://www.parallax.com/package/parall ... e-v4.0.pdf steht doch, was man an das Display schicken muss. Viel einfacher geht es ja nicht.

Einfach https://docs.micropython.org/en/latest/ ... serial-bus folgen, wobei die Baudrate natürlich angepasst werden muss, und da steht dann hello world.

Die Kommandos der Arduino Bibliothek sind ja auch sehr einfach: https://github.com/iamthechad/parallax_ ... laxLCD.cpp

Das kannst du auch einfach selbst in eine Klasse packen.
Benutzeravatar
gatonero
User
Beiträge: 21
Registriert: Montag 4. April 2022, 21:12

Danke sehr! Da war ich auch schon mal, bin aber nicht so recht schlau geworden.

An welchen Pins steht denn der UART zur Verfügung, bzw. wie binde ich den an einen Pin?

Ich habe folgenden kleine Code, in der Hoffnung, dass an Pin17 etwas ausgegeben wird.
from machine import UART
uart1 = UART(1, baudrate=9600, tx=17)
uart1.write('hello')
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

vorgegeben ist bei UART0 tx = Pin 1 und rx = Pin 3. Das ist aber kein muss. Siehe Tabelle in dem Link von __deets__.
In deinem Code fehlt die Zuweisung von 'rx'.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14533
Registriert: Mittwoch 14. Oktober 2015, 14:29

In der Tabelle in meinem Link steht doch, dass du UART2 benutzen kannst, und der hat schon Pin 17 als tx.

@Dennis: er braucht kein rx. Das Display ist rein empfangend.
__deets__
User
Beiträge: 14533
Registriert: Mittwoch 14. Oktober 2015, 14:29

So, ich habe gerade mal mein Oszi an Pin 17 gehangen, und mit

Code: Alles auswählen

>>> import machine
>>> uart = machine.UART(2)
>>> uart.write("Hallo")
5
sehe ich klar Kommunikation. Das passt also alles. Du musst natuerlich die richtige Baudrate einstellen. Wenn es dann nicht klappt, dann liegt es an der Verkabelung und/oder dem Logiklevel, denn der ESP hat nur 3V3 statt 5. Sollte aber eigentlich reichen fuer das Display.
Benutzeravatar
gatonero
User
Beiträge: 21
Registriert: Montag 4. April 2022, 21:12

Vielen Dank! Das hat jetzt geklappt! :-) Ich musste nur noch die Geschwindigkeit anpassen.
import machine
uart = machine.UART(2, baudrate=19200)
uart.write("Hallo")
Benutzeravatar
gatonero
User
Beiträge: 21
Registriert: Montag 4. April 2022, 21:12

Steuerungscodes werden übrigens so übergeben.
import machine
uart = machine.UART(2, baudrate=19200)
uart.write('\x15') # Display Aus
uart.write('\x17') # Dispaly Ein
uart.write("Hallo")
Ich werde mir jetzt mal eine kleine Bibliothek zusammenbasteln! :D
Antworten