RTClib und U8g2 sind nicht kompatibel?

Schreib mall was willst angezeigt haben, schau mir das morgen Nachmittag an.

1 Like

Das Beispiel von agmue hat sofort im Serial Uhrzeit angezeigt. Hab kurz versucht das Display anzubinden, klappte erst mal nicht. Hab den Rechner aber schon ausgeschaltet.

Der letze Code oben funktioniert, den habe ich schon so fertig gehabt, aber den einen Eintrag nicht drin gehabt. Da funktionierte sofort alles.
Ja Wlan bei Start muss ich unbedingt raus nehmen, dauert 1 sec länger bis was angezeigt wird. Obwohl im Setup könnte man schon was anzeigen lassen.

Warum habe ich net gleich gefragt kein Plan, mann will den Leuten ja nicht unnötig auf die nerven gehen.
Hab gesucht und gesucht.
Den Bock habe ich selber geschossen... Im Beispielen war immer diese Serielle ausgabe, fals der RTC nicht erreichbar ist. Serielle braucht man net, raus damit... Habw wohl die Anweisung rausgeworfen.

Hab auch hier im Forum gesucht und gesucht, wisst Ihr was schön wäre?
Es wird ja meist hingewiesen da musst gucken und da, das in dem Thema dann, ein fertiges Beispiel dabei ist. Ersparrt vielen die Kopfschmerzen.

Was meinst was ich anzeigen will? Ich bereite mich für Menü vor... Hoffe kriege den Punkt zum Zeitholen auf ein Menü. Das Projekt ist schon etwas bekloppt und größer, CAN habe ich schon mal ausprobiert. Will damit die Menüs quasi auf 3 Bildschirmen umschalten.
K-Line muss ich noch anbinden, die Module sind aber noch nicht angekommen...

Hier, so ist es fine:

Moin Elite der Coder,

hab heute am Text der Anzeige für das Display gebastelt, ca. 3 Stunden dran gesessen.
Da mein Thema eigentlich gelöst ist, darf ich paar kleine Fragen in die Runde stellen?
Für jede kleine Frage, denke wäre ein eigenes Thema übertrieben, es geht auch nicht ums coden.

Die Displays haben ja einen Buffer, wie ich verstanden hat. Wenn jetzt sich auf dem Display eine Anzeige dauernd ändert, läuft der Buffer voll? Wenn man aber zwischen durch clearBuffer anwendet, würde man das an der Display es merken?

Zur Kommunikation zwischen den ESP´s sind TJA1050 verbaut, Master sendet Slaves sehen es auch. Die Frage dazu, sind in der CAN Schiene die Wiederstände dringend nötig?
Bei i2c auch? (Hatte mal gelesen gehabt, der ESP32 ist härter in nehmen.

Die Helligkeit des Displays muss ich zumindest an einen per Hardware lösen, würdet Ihr empfehlen an jedem ESP32 das genau so zu lösen. Oder die CAN Schiene dazu benutzen?

Dann muss ich an die K-Line irgendwann dran, diese soll gelesen werden und die Ausgabe sollte am Displays angezeigt werden. Wie würdet Ihr hier vorgehen, an einen ESP32 die K-Line lesen und an andere über CAN senden, oder sollte jeder ESP32 einen Cnverter von K-Line zu TX-RX bekommen?

Ach ja noch ne kleine Frage, kann man Serielleausgabe die man am Rechnen sieht die von dem ESP´s kommen oder Arduinos, auf dem Display anzeigen lassen? Die Startsequenz brauche ich nicht, aber wäre nice to have als option.

Sorry für oftopic...

Grüße

Die PullUp an SCL/SDA sind Teil der Funktionalität des Busses, da die Teilnehmer nur aktiv nach LOW ziehen. Das HIGH kommt allein durch die PullUp-Widerstände. Das hat nichts mit "härter im nehmen" zu tun.

Gruß Tommy

1 Like

Fast jede Ausgabe vom SerMon bekommt man auf Display, noch eine frage warum ist jedes Display auf anderem ESP?
Die Displays sind SPI Displays also den constructor kann man noch mal bauen für zweiten, nur andere CS Pins nutzen, Beispiel

U8G2_GP1294AI_256X48_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/18, /* data=*/23, /* cs=*/25, /* dc=*/U8X8_PIN_NONE, /* reset=*/33); // Display 1
U8G2_GP1294AI_256X48_F_4W_SW_SPI u8g2_2(U8G2_R0, /* clock=*/18, /* data=*/23, /* cs=*/10, /* dc=*/U8X8_PIN_NONE, /* reset=*/22); //Display 2

Alle ausgaben dann aber mit u8g2_2 anzeigen lassen

u8g2.firstPage(); // Display 1
  do {
    u8g2.setFont(u8g2_font_spleen16x32_mf);
    u8g2.setCursor(178,20);
    u8g2.print(now.hour(), DEC);
    u8g2.print(':');
    u8g2.print(now.minute(), DEC);
  } while ( u8g2.nextPage() );type or paste code here

u8g2_2.firstPage(); // Display 2
  do {
    u8g2_2.setFont(u8g2_font_spleen16x32_mf);
    u8g2_2.setCursor(178,20);
    u8g2_2.print(now.hour(), DEC);
    u8g2_2.print(':');
    u8g2_2.print(now.minute(), DEC);
  } while ( u8g2_2.nextPage() );

Wie sind die Displays angeklemmt, sind die für 3,3V ?

1 Like

Dankeschön für die Antworten,

bei zusammen bauen der Platine werde dann die Wiederstände einbauen.

Ja warum mehrere ESP´s... Hatte auch erst probiert gehabt 2 der Displays zum laufen zu bekommen. Sind insgesamt aber vier Stück. Mit 2 klappte erstmal nicht dann hatte ich irgendwo nen Video gesehen gehabt das es dann die FPS runter zieht. Ich will da keine Videos abspielen oder so. Wichtig ist das diese gleichzeitig oder halt im delay(10) umschalten nicht schneller.
Wenn jetzt einer nach dem anderen die Anzeige ändert, wäre für mein Projekt nicht machbar.
Daher bin ich auch von Wlan abgeneigt, Master - Slave, verzögert läuft es dann ab. Laut Internet zumindest.

Ich glaube für einen wäre das zu viel des guten, da ein Display als analyser funktionieren sollte, und auf 3 Displays gleichzeitig jeweils 2 Graphen.

https://www.youtube.com/watch?v=MJt9kSNlsU4

https://www.youtube.com/watch?v=dCofwhHcW7Y

Richtig schöne Sachen macht der Mann da...

Könnt Ihr vielleicht auch Stecker und Buchsen für Platinen mit 2,54mm empfehlen, mit 5 oder mehr Kabeln? Soll was gescheites sein.
Für die Anbindung von der Platine zum zum Displays

Du hast LCD Matrix (Punkt) Displays nicht TFT.
Wenn man die Ausgabe gut überdenkt kommt kein Zusammenbruch der Reaktionszeit, jedoch jeder macht wie er will :wink:

1 Like

Wenn es schnell sein soll, ist delay ein nogo.

1 Like

Deinen Displaytyp kenne ich nicht, aber ich sehe Ungereimtheiten.

U8G2_GP1294AI_256X48_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/18, /* data=*/23, /* cs=*/25, /* dc=*/U8X8_PIN_NONE, /* reset=*/33);

Warum Software-SPI, wo der ESP32 das sogar doppelt in Hardware hat?

U8G2_GP1294AI_256X48_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/25, /* dc=*/U8X8_PIN_NONE, /* reset=*/33);

Wenn Du Full Buffer _F_ wählst, macht dies keinen Sinn:

  u8g2.firstPage();
  do {
...
  } while ( u8g2.nextPage() );

In meinem Beispiel findest Du

u8g2.sendBuffer();          // transfer internal memory to the display

was den internen Buffer an das Display schickt. Die Idee ist, zunächst einen internen Buffer zu beschreiben und diesen dann komplett an das Display zu übertragen. Mit clearBuffer() wird der interen Buffer gelöscht, damit er neu beschrieben werden kann. Erst sendBuffer erledigt die Übertragung. Das "Überlaufen" beim Display kann ich mir nicht vorstellen.

Die Widerstände sind für eine sichere Funktion unbedingt notwendig, unabhängig vom µC-Typ, sie gehören zur Spezifikation.

Allerdings bedeutet das nicht, daß es nicht auch ohne funktioniert. So verwenden manche Bibliotheken die in manchen µCs eingebauten PullUp-Widerstände auch für I²C. Die sind eigentlich etwas zu hochohmig, über kurze Entfernungen kann es aber funktionieren.

Außerdem handelt es sich um hochfrequente Signale, die einen Busabschluß benötigen, um "Wellensalat" zu vermeiden. Ein See hat viel ruhigere Wellen als ein Schwimmbad, weil in einem Becken die Wellen von den Rändern zurückgeworfen werden. Ich hatte allerdings mal das Vergnügen eines Schwimmbades ohne steilen Beckenrand, schöne Sicht in die Natur und ohne reflektierte Wellen. Sowas solltest Du Deinen Nachrichten gönnen :slightly_smiling_face:

Möglicherweise haben die Platinen mit TJA1050 die notwendigen Widerstände drauf.

1 Like

Wo aber die meisten Module haben PullUp drauf

1 Like

Und wenn ich 10 Module anschließe ist der Widerstand dann zu klein. Also genau hinsehen.

1 Like

Bevor du ein Multiprozessorsystem baust, ist es bestimmt einfacher, die 4 Displays an einen µC zu bekommen.

1 Like

Die meisten Platinen laufen über Serial.

1 Like

Danke euch für die rege Beteiligung,

delay10 war nur ein Beispiel, das könnte man noch kaum war nehmen mit den Augen, nur als Zeitangabe gedacht. Und nein Delays will ich grundsätzlich vermeiden, außer es ist gewollt etwas nach einender zu zeigen. Da gibt es irgendwas mit millis, soweit habe ich noch nicht experimentiert.

U8G2_GP1294AI_256X48_F_4W_SW_SPI u8g2

HW hatte ich auch ausprobiert, wollte er net. Kann aber sein das man da ne andere Verkabelung benötigt. Sicher kann ich das nicht beantworten.

Zu den Multidisplays, und ESP mit gesammt 8 CPU´s, ich vermute einer wird da richtig schwer haben, dann müssen die Pakete an 4 Displays gleichzeitig ankommen. Datenmenge und die ständige Umschaltung des CS Pins dazwischen, würde die FPS runter ziehen. So stelle ich mir das vor.
Daher der gedanke an CAN, da kann ich beim Menü wählen übermitteln z.B. "Menü1", die anderen 3 ESP´s lesen das sofort und setzen umgehend um. Wenn diese Funktion nicht belastet wird durch weiterleitung von der K-Line in die CAN, dann kann man CAN auch für Datenübermittlung nutzen. Die 3 ESP´s lesen nur die CAN Schiene, so zumindest das Konzept.
Das wäre ja auch ausbaufähig, wenn man auf weitere blöde Ideen kommen würde.

Einer wird fast komplett nur für den Anlyzer verwendet, er es aber dann auch am CAN angeschlosen. Wenn ich aber bedenke was der Analyzer an Daten benötigt, vermutlich würde er den ganzen SPI lahmlegen.
Klar wenn man nur in 1 Sekunde was am Displays ändern wollen würde, dann einer würde dicke reichen. Hier muss es aber flutschen, K-Line liefert schon eine große Datenmenge, diese müsste der Haupt ESP auch noch filtern und entweder alles oder nur ein Teil in die CAN pressen, die anderen 3 ESP´s müssten dann noch die CAN filtern, vielleicht auch umwandeln und bestimmte Inhalte auf den Display schicken.

Das mit dem sendBuffer habe ich auch schon gesehen, mus ehrlich sagen hab noch nicht ausprobiert. Meine Ziel war zur erst für das Menü was vor zu bereiten. Start Bilder, paar Icons und Hardware. Wo mit der RTC letzten Nerv gekostet hatte.
Heute Menü optisch gebaut, ohne Funktion. Also eher auf den Bildschirm gebracht, wollte evtl. gleich nach Beispielen schauen. Ach Encoder gerade muss ich auch noch testen

Welsche?
Achtung die Module so wie der IC braucht min 4,3V was uns sagt das normaler weise am TX VCC rauskommt somit nicht direkt an ESP anklemmen, kurze Zeit wird funktionieren nur aber kurz dann ist der Pin am ESP Defekt.
Deshalb auch die Frage wie ist das Display versorgt.
Mann kann kein 5V System mit 3.3V System mischen ( es gibt aber ausnahmen)

1 Like

Man kann schon, man muss es nur richtig machen. Nicht nur als Ausnahme.

1 Like

Bedeutet wen 5V anliegt kommt 3,3V an den Ausgangpins,

1 Like

https://m.media-amazon.com/images/I/71S2ufBI0+L.AC_SL1500.jpg

Ganz kleiner. Ist zum testen aber direkt angeschlossen worden, VCC an 5V

Display hat externes Netzteil, Fialament ist am 3.3v angeschlossen, SPI direkt

Das ist ein klassischer Spannungsregler. :wink:

1 Like

Das gezeigte Modul ist Reines 5V Modul also nix direkt.