Zuganzeige mit Scroll text wie bei der Bahn

Hi,

das 128x64 Display hab ich auch vom gleichen Hersteller. Benutze die standard libs

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Heinz

chaoskasi:
und denn uno hab ich mir bestellt sollte Samtag kommen

Dann ist ja noch Zeit für Theorie :slight_smile:

  • Soll die Anzeige statisch sein oder soll sich Uhrzeit, Fahrziel usw. dem einfahrenden Zug entsprechend ändern? Planst Du langfristig eine Vernetzung? Die Uhrzeiten sollten ja synchron laufen.
  • Die Displays sind schwarz/weiß? Die Anzeige im Bahnhof ist schwarz/blau/weiß, das ginge nur mit einem Farbdisplay.
  • Wegen der geringen Auflösung des Displays wirst Du bei der darstellbaren Information Kompromisse machen müssen, alles paßt nicht drauf.
  • Spannend dürfte die Frage nach der richtigen Bibliothek für Deine Anwendung sein. Ich schlage die von Oli Kraus vor, weil es da viele Fonts, viele Methoden und eine vernünftige Beschreibung gibt.
  • Für das Layout benötigst Du verschiedene Fonts, die recht viel Speicher des Arduino belegen. Möglicherweise ist der UNO irgendwann überfordert. Warte also vor dem Kauf weiterer UNOs erstmal ab. Möglicherweise wäre ein Mega 2560 PRO besser geeignet.
  • Ohne zusätzliche Hardware können nur zwei Displays pro UNO angeschlossen werden, weil die nur zwei Adressen haben. Du könntest also Vorder- und Rückseite an einem UNO betreiben. Anstelle eines UNOs könntest Du auch einen ProMini einsetzen. (Bei Bedarf gibt es Hinweise zu Risiken und Nebenwirkungen!)

Programm für mein 128X64-Display:

#include <Arduino.h>
#include "U8g2lib.h"
#include <SPI.h>
#include <Wire.h>

U8G2_SSD1306_128X64_NONAME_1_HW_I2C oled(U8G2_R0);

void setup(void) {
  oled.begin();
}

void loop(void) {
  oled.firstPage();
  do {
    oled.setFontMode(1);  /* activate transparent font mode */
    oled.setDrawColor(1); /* color 1 for the box */
    oled.drawBox(25, 0, 78, 7);
    oled.drawBox(5, 26, 13, 5);
    oled.setFont(u8g2_font_trixel_square_tf);
    oled.setDrawColor(0);
    oled.drawStr(26, 6, "+++ ca. 5min. Verspaetung +++");
    oled.setDrawColor(1);
    oled.drawStr(0, 7, "16:40");
    oled.drawStr(0, 14, "RE5");
    oled.drawStr(0, 24, "ABCDEF");
    oled.setFont(u8g2_font_t0_18b_mn);
    oled.drawStr(110, 14, "12");
    oled.setFont(u8g2_font_7x14_tf);
    oled.drawStr(30, 30, "Hamburg Hbf");
  } while ( oled.nextPage() );
}

UNO:
14034 Bytes (43%) des Programmspeicherplatzes, 682 Bytes (33%) des dynamischen Speichers

Zuganzeige.png

EDIT 20181201: Fonts auf "_tf" geändert, damit auch Umlaute dargestellt werden. Punkt 6 ergänzt.

Zuganzeige.png

Gibt's bei Oleds nicht Probleme mit Einbrennen von Darstellungen, die lange eingeblendet sind?

Kann eigendlich nicht

Das sind Kristalle die durch Ausrichtung Licht reflektieren oder eben nicht

Der Artikel bezieht sich zwar auf TV aber beschreibt die vorhandenen Effekte ziemlich klar.

Gruß Tommy

Hausknecht:
Gibt's bei Oleds nicht Probleme mit Einbrennen von Darstellungen, die lange eingeblendet sind?

Bei einer dynamisch mit Informationen versorgten Anzeige wäre nur das Gleis statisch, alle anderen Inhalte verändern sich. Wenn der TO nicht gerade im Wunderland in Hamburg arbeitet - dann würde er nicht so eine Frage stellen - dürfte das vermutlich ein untergeordnetes Problen sein.

Rentner:
Kann eigendlich nicht - Das sind Kristalle die durch Ausrichtung Licht reflektieren oder eben nicht

Was du beschreibst, soll sich vermutlich auf TFT/LCD beziehen. Da geht es nicht um "Reflexion" sondern um das Durchlassen/Sperren von Licht (von der Hintergundbeleuchtung) durch Polarisation. Diese Anzeigen ermüden eigentlich nicht oder nur sehr wenig.

OLED hingegen sind Licht produziernde Pixel, die (derzeit) sehr wohl altern, d.h. nach und nach in der Leuchtkraft nachlassen. Häufig benutze Pixel werden deshalb eher "abgenutzt" und man sieht das dann, wenn mal etwas anderes an dieser Stelle dargestellt wird.

Hi.

Danke für die Erklärung, da war ich wohl auf dem Holzweg
Heinz

Rentner:
ich fahre so selten mit der Bahn, wie scrollt das denn ?

Da verpaßt Du aber was! Auf nahezu jeder Bahnfahrt erlebe ich irgendwelche Sachen. Verspätungen sind der Klassiker, man kann aber wegen eines Strums oder eines ausgefallenen Zuges auch eine Stunde zu früh das Ziel erreichen.

Der weiße Balken wird nur eingeblendet, wenn es auch eine Meldung gibt. Der Text läuft von rechts nach links. Häufige Texte beziehen sich auf Verspätungen, umgekehrte Zugreihungen, ausgefallene Waggons und dergleichen.

Neben dem Regelzugverkehr auf schönen Strecken nutze ich auch gerne Sonderzüge, die ein entspanntes Reisen garantieren. Lecker Essen, dabei die Landschaft genießen und um die Organisation kümmert sich ein eingespieltes Team. Da ist es vollkommen egal, ob die Dampflok unterwegs gegen eine E-Lok ausgetauscht werden muß, oder ob man auf der ICE-Strecke für den historischen Zug einen "Slot" frei bekommt, der Weg ist das Ziel :slight_smile: