ich habe mir überlegt was für mein ESP32 Projekt am Besten wäre, um später im Standalone Betrieb als Interface zu dienen. Ich habe zuerst an einen Variante mit Webserver gedacht. Allerdings erscheint mir dafür der Programmieraufwand relativ hoch für das Ergebnis.
Zum Anderen habe ich hier noch OLED 128x64 rumfliegen. Die habe ich noch nicht benutzt also habe ich mal eins eingebunden. Das hat auf anhieb auch funktioniert.
Ich habe diese an GIPO 21, 22 angeschlossen und es wurde auch bereits Text angezeigt.
ALLERDINGS:
Das passiert leider nicht immer. Oft bleibt das OLED auch einfach schwarz. Obwohl es der gleiche Sketch ist, oder ich den Controller resette. Es scheint sich dann nicht mehr zu initialisieren. Ich frage mich nur wieso... Auch Beispielsweise den Text der normalerweise über den seriellen Monitor läuft auf dem Display wiederzugeben funktioniert aktuell bei mir noch nicht. Da müsste mir bitte einer mal helfen, wo jetzt das Problem liegen könnte...
Ich habe dieses Script in mein Projekt mit eingebunden.
im Setup. Evtl. sogar mit den Pin-Angaben die du verwendest.
Ob es tatsächlich daran liegt, kann ich nicht sicher sagen, da ich den Oled-Treiber nicht habe.
Das kann eigentlich nicht am Programm liegen. Bei meinen Projekten habe ich fast immer ein OLED angeschlossen. Allerdings haben die OLEDs mit I²C-Schnittstelle keinen Reset-Pin. Ist das Display "verwirrt", hilft eventuell Aus-Ein-Schalten.
Danke zunächst für den Tipp mit dem WebServer. Ich schaue mir den Post auf jeden Fall bei Zeiten an.
Des weiteren habe ich es mit dem Wire.begin(); im Setup Teil mal ausprobiert. Das funktionierte nach dem compilen einmal kurz. Danach nicht mehr.
Es ist so wie ich sage. Das ist wirklich sporadisch. Mal taucht text auf mal nicht.
Meine Anschlussmöglichkeiten sind nur VCC / GND / SCL / SDA
Ja, möglich das irgendwo noch die Pin Belegung fehlt. Aber komisch das trotzdem der Text mal auftaucht und mal wieder nicht. Ich denke das müsste in der Wire.h irgendwo geregelt sein? Ist nur eine Vermutung.
Vermutlich hast du in deinem Aufbau ein Hardwareproblem bzw. Wackelkontakt. Prüfe mal alle deine Kabel und Steckverbindungen.
Wenn es einmal kurz funktioniert, wird es kein Programmfehler sein.
Naja ist alles mit den üblichen schönen bunten Pin Steckverbindungen gesteckt. Habe ich soweit alles kontrolliert. Sollte so passen. Vielleicht ein defektes Display?
Aktuell ist der ESP32 an ein USB Hub mit externer Stromversorgung angeschlossen. Ich habe auch schon gedacht das es die Stromversorgung ist. Da müssten 1,5A drauf möglich sein. Ich habe auch 3 Slots die 2,5A liefern. Hat aber am Problem auch nichts geändert.
Die Spannung wird vom Board auf ein Steckboard weitergeleitet. Also ich nutze die Spannung von den Pins vom ESP32 direkt.
Aber ich glaube deine Vermutung mit dem Wackelkontakt scheint sich zu bestätigen. Jedenfalls liegt das Display grade so, das die Schrift dauerhaft angezeigt wird. wenn ich das Display jetzt bewege, verschwindet der Text... Auch dauerhaft.
Ja... Ist wohl ein Wackler. Irgendwo... Ich kann nicht genau bestimmen wo muss ich wohl die Kabel tauschen. Komisch nur, das ein reset erforderlich ist, bis erneut wieder etwas auf dem Display auftaucht, nachdem der Kontakt abgebrochen wurde.
Dann tausche ich später mal die Kabel aus und würde dann nochmal schreiben, ob das Besserung gebracht hat.
Noch eine Frage. Im obrigen Beispiel ist der Text nur im Setup an das Display übergeben.
Wie kann ich im Loop weiteren Text übergeben? Welche Parameter sind mindestens notwendig, damit das Display mit Text ausgibt. Und wie verhält sich der Command ```
display.setCursor(0, 10);
Alles klar war wirklich ein Kabelbruch oder sowas. Geht auf jeden Fall jetzt! =)
Wie überschreibe ich denn Text? Oder wie sorge ich dafür, das Text an der gleichen Stelle überschrieben wird? Wenn ich Beispielsweise den Cursor an die gleiche Stelle setze und anderen Text überschreibe, wird da kauderwelsch draus. Ist der Text übereinander.
Das ist wie bei allen anderen Displays die selbe Verfahrensweise.
Entweder die komplette Zeile (nicht das Display(!)) löschen und neu schreiben.
Oder die Werte genau auf eine feste Länge begrenzen und nur den Bereich den die Länge belegt neu schreiben - mit auffüllen von Leerzeichen / 0len.