OLED RS0010 library Arduino

  • Moin

    mich nervte etwas, dass an meinem SWR Abschätzteil das Display aus unerfindlichen Verarmungswahngründen ohne Beleuchtung gekauft wurde ... und hab mir jetzt ein neues bestellt. Leider nicht richtig hingeschaut und ein OLES 2x16 Modul mit einem Controller RS0010 besorgt (Raystar RS0010 16x2bl EH1602A Rev J), der natürlich über kein library für den Arduino verfügt, das adafruit library zu einer gleichmässigen schwarzen Färbung führt (soll angeblich funktionieren), wohingegen das standardmäßige LiquidCrystal library den Text anzeigt, aber lustig munter hin und her springt und lustige Zeichen dazwischen produziert.

    Leider scheint bei dem Teil keine I2C oder SPI Schnittstelle vorhanden zu sein und nur 4 oder 8 bit Übertragung möglich ist.


    Hat jemand ne schlaue Idee. Ich bin für das Teil definitiv zu doof.

  • Hallo,

    wo genau ist jetzt Dein Problem ?. Ich habe mir das Datenblatt nicht angesehen aber ich gehe davon aus, dass diese Displays parallel angesteuert werden.

    Über einen Anschluss wird zwischen Code Register und Daten Register umgeschaltet und dann ein Byte oder 2 4-Bit Nibbles übertragen.

    Such mal nach "Arduino 4 bit display". Ich kann Dir auch ein paar C Code Zeilen zukommen lassen wenn Du nicht weiterkommst.


    73

    Rainer

  • Moin Rainer

    das Problem scheint in der Initialisierung des OLED Displays zu liegen, deshalb springt die Anzeige und produziert merkwürdige Zeichen. Irgendwie gibt es da wohl keine wirklich sinnvolle Lösung. Eine Möglichkeit soll sein die Initialisierung Arduino OLED zu separieren, dafür gibt es ein Library nebst Schaltbild, leider hab ich keinen entsprechenden MOS Fet zur Hand.

    Ansonsten ist das Display eine ziemliche Enttäuschung, angegeben von Raystar ist es mit SPI Schnittstelle ... soweit so gut, nur ist selbige nicht dokumentiert. Für das Display gibt es seitenlange Erörterungen wie daneben es ist, das mit einem Arduino zu verbinden zu wollen nebst "kleinen" Ungenauigkeiten zwischen Beschreibung des HErstellers zur Realität des gebauten Teils (Beispiel SPI Schnittstelle)

    Naja, ich habe das Teil nicht in der Bucht für 2 Teurofünfzig bestellt, sondern bei einem Händler, von dem ich eigentlich glaubte, er würde keinen Schrott verkaufen, wobei in seinem Katalog das Ding auch nur mit OLED 16x2bl beschrieben ist und ich positiv davon ausgegangen bin, dass Händler ein Produkt verkauft was auch mit seinen anderen Produkten wie Arduino etc irgendwie kompatibel zu machen ist ... Naja. Werd das nächste mal in Berlin mal wieder in das Ladengeschäft gehen und das ausdiskutieren.

  • hm Heribert

    ja, den hab ich, wobei statt C am Ende, ein A.


    Der HD44780 wird als nahezu kompatibel angegeben ... eben halt nur nahezu. Funktionierte leider nicht.


    Ich hab jetzt die LiquidCrystal etwas modifiziert (stammt nicht von mir, sondern copy and past ...) und der Text springt nicht mehr. Soweit so fein, allerdings blinkt es im Takt des eingestellten delays, was etwas nervt. Läßt man das delay weg, blinkt es heftigst schnell.

  • Das "blinken" könnte man als LCD -> ClrScreen() in deinem Programm finden.


    Ich habe so einige HD44780 kompatible Libs unter und für LunaAVR programmiert, sowie auch den WS0010 Chip mit verschieden Schnittstellen (3) verwendet.

    Der WS0010 hat eine spezielle Initialisierung, die man unbedingt einhalten muss. Auch ist ein Soft-Reset über eine erneute Initialisierung des Chips ist nicht einfach.

    Erst das genaue lesen diverser Datenblätter brachte eine Lösung.

  • yep Uwe,

    liegt am clear screen und die spezielle Initialisierung ist das "kleine" Problem, wobei ich, wie gesagt, zu doof dazu war das selber hin zu bekommen und mir nur copy and paste was brachte. Zu dem Soft-Reset, der wird in einem Vorschlag mit einem Mos Fet gelöst, siehe hier: https://github.com/rimksky/WinstarOLED


    Zu dem "blinken" werde die Ausgabe in eine Schleife packen, die nur dann geändert wird, wenn sich VSWR ändert, ansonsten halt die Ausgabe konstant halten.

  • Hi,


    ich mache das Schreiben von neuen Werten so: Angenommen die Ausgabe hat max. 6 Zeichenplatz, dann lösche ich diesem Bereich erst durch Ausgabe von 6 Leerzeichen (Space) anschließend, wird das Datum formatiert ausgegeben. So entstehen keine "ghost" Zeichen im LCD.