Ich habe ein Winstar 144x32 LCD (WG14432D) gekauft, weil es billig war und es schön wäre, ein paar Experimente damit zu machen. Das Hauptproblem bei diesem LCD ist, dass es keine (funktionierende) Bibliothek dafür hat.
Ich habe bereits das ganze Internet mit Google durchsucht, aber meine Ergebnisse waren nicht beeindruckend:
https://forum.crystalfontz.com/showthread.php/7410-Tutorial-ST7920-Seeeduino-v4-2-Arduino-Sample-Sketch-Driving-a-144x32-Graphic-LCD (Ein riesiger Beispielcode, der dies nicht tut funktioniert. Ich habe SCK, MISO und CS richtig eingestellt und nichts passiert.)
Da ich wusste, dass es den ST7920 -Chip hat, habe ich eine Bibliothek für Bildschirme gefunden, die denselben Chip verwenden: https://github.com/olikraus/u8glib/wiki/device#st7920-192x32 (Die Bibliothek unterstützt nur andere Auflösungen wie 128x64, aber ich denke, da es derselbe Chip ist, sollte es auch funktionieren. Ich habe auch andere Bildschirmvarianten desselben Chips ausprobiert.)
Auf einer portugiesischen Seite habe ich herausgefunden, wie man die Bibliothek richtig initialisiert und verwendet: http://www.arduinoecia.com.br/2013/09/display-grafico-lcd-128x64-st7920.html (Kein Problem für mich, da ich spreche auch portugiesisch)
Sie verwenden: U8GLIB_ST7920_128X64_1X u8g(6, 5, 4 ,7);
um die Software-SPI-Pins für das LCD einzustellen. Bei mir (Arduino Mega) wäre es:
U8GLIB_ST7920_128X64_1X u8g(52, 51, 53); //Enable, RW, RS [,RESET] (known also as) SCK, MOSI, CS
Die Folge: Das Display blieb leer. Dann habe ich versucht, die Hardware-SPI-Initialisierung zu verwenden, die laut dieser Seite lautet:U8GLIB_ST7920_128X64_1X u8g(53); // RS (known also as) CS pin needed only
Trotzdem macht das Display nichts. Es blieb hellgrau (Kontrast angepasst) und das war's. Kein Blinken, kein Ein-/Ausschalten, nichts...
Schließlich habe ich auf diesem Datenblatt gelesen , dass der PSB-Pin auf 0 (Masse) gesetzt werden muss, um den SPI-Modus zu aktivieren.
Andere Varianten dieser Bildschirme hatten Jumper oder Stifte auf der Rückseite, die Sie auf Masse springen können, aber diese hat keine.
Ein hochauflösendes Bild der Rückseite des LCD, das ich aufgenommen (oder zumindest versucht) und unten angehängt habe (die Vorderseite hat nichts als das LCD), weil ich nichts über dieses Board finden konnte. Kein Schema, nichts.
Ich konnte auf dieser Platine keinen PSB-Pin (der als dieser gekennzeichnet ist), Jumper ("JP") oder ähnliches finden.
Die Pins zur Verbindung mit dem LCD hatten keine ungewöhnlichen Pins, die auch als "PSB" oder ähnlich gekennzeichnet sind:
Jeder Vorschlag oder jede Antwort wird sehr geschätzt.
Viele LCD-Controller (einschließlich des ST7920) unterstützen eine Vielzahl von Schnittstellentypen, von denen Sie jeweils einen verwenden können. Manchmal ist der Schnittstellentyp auf einem bestimmten LCD-Anzeigemodul festgelegt ; manchmal kann die Schnittstelle ausgewählt werden. Die genauen PCB-Markierungen für die Auswahl zwischen Schnittstellen (wenn möglich) stimmen nicht immer mit den Signalnamen überein, die Sie erwarten.
Da die Schnittstelle nicht immer ausgewählt werden kann, ist die Antwort von Finbarr manchmal richtig - Sie werden möglicherweise feststellen, dass die Schnittstelle auf einem bestimmten LCD-Modul absolut festgelegt ist (z. B. nur parallel, nur SPI usw.).
Aber in deinem Fall denke ich, dass du Glück haben könntest . Mir ist eine Ähnlichkeit zwischen Ihrem LCD-Modul und dem im ersten von Ihnen verlinkten Tutorial verwendeten Modul aufgefallen.
Beachten Sie, dass Ihr LCD-Modul die Teilenummer 14432D
auf der Rückseite hat, und wir sehen 2 Komponentenpositionen - R11
und R12
. R11
fehlt und R12
ist verbaut:
Sehen Sie sich nun dieses Bild aus dem ersten verlinkten Tutorial an, das die Rückseite dieses LCD-Moduls zeigt (das sich von Ihrem LCD-Modul unterscheidet, und daher gibt es keine Garantie dafür, dass das erste verlinkte Tutorial sowieso auf Ihr LCD-Modul zutrifft). Achten Sie darauf, dass es die gleiche Komponentenanordnung wie Ihr LCD-Modul hat und auch ein R11
und hat R12
. Außer auf diesem Modul, R11
ist montiert und R12
fehlt:
Ich kann nicht garantieren , dass dieser nächste Teil für Ihr LCD-Modul gilt – Sie benötigen das Datenblatt mit den relevanten Details, um ganz sicher zu sein. Es ist jedoch möglich, dass die Antwort in diesem Dokument enthalten ist :
Beachten Sie, wie für ihre Modellnummer mit der Endung 14432D (ähnlich Ihrer Modellnummer) die Widerstände R11
und R12
verwendet werden, um zwischen parallelen und SPI-Schnittstellen zu wählen. Sehen Sie auf dem LCD-Modul in Ihrem ersten Tutorial-Link, wie nur R11
eingebaut ist und sie die SPI-Schnittstelle verwenden. Sehen Sie auf Ihrem LCD-Modul, wie nur R12
eingebaut ist, und Sie können die Pinbelegung der SPI-Schnittstelle nicht verwenden, wie in diesem Tutorial gezeigt.
Vielleicht ist Ihr LCD-Modul also für eine parallele Schnittstelle konfiguriert? Das würde mit der Tatsache übereinstimmen, dass R12
auf Ihrem LCD-Modul montiert ist.
Daher können Sie möglicherweise die in diesem ersten Tutorial gezeigte SPI-Schnittstelle und Pinbelegung verwenden, indem Sie sie von Ihrer Platine entlöten und in der Position neu verlöten R12
.R11
Aktualisieren:
Hier ist die Platine, nachdem Fusseldieb die Modifikation vorgenommen hat (der Widerstand wurde von der R12
Position in die R11
Position verschoben):
Es wurde bestätigt, dass diese Änderung die SPI-Schnittstelle erfolgreich aktiviert, indem die folgenden Anschlussstifte verwendet werden:
LCD-Pin SPI-Signal (Original) ------- ---------- ---------- 1 Vdd (Vdd) 2 Vss (Vss) 3 Vo (Vo) 4 CS (SS) (RS) 5 MOSI (R/W) 6 SCLK (E)
Zu Ihrer Information, wenn Sie sich das andere Tutorial ansehen:
http://www.arduinoecia.com.br/2013/09/display-grafico-lcd-128x64-st7920.html
Das verwendet ein LCD-Modul mit einer völlig anderen Schnittstellen-Pinbelegung, die die Signale CS1
und enthält CS2
(Pins 15 und 16 an seinem 20-Pin-Anschluss). Dadurch kann die Schnittstelle zwischen parallel und SPI umgeschaltet werden, ohne dass Komponenten auf der Leiterplatte gelötet/entlötet werden müssen. Sie haben diesen 20-poligen Stecker mit diesen Signalen auf Ihrem LCD-Modul nicht. Aus diesem Grund gilt dieses Tutorial nicht direkt für Ihr Modul (obwohl die ST7920- Befehle wahrscheinlich gelten werden, sobald Sie eine SPI-Schnittstelle auf Ihrem spezifischen LCD-Modul zum Laufen bringen können).
R12
, bevor Sie dann dieselbe Komponente in die R11
Stelle auf der Leiterplatte löten. Sie können nicht ohne Entfernen davonkommen R12
;-) Wenn Sie ein Problem beim Entlöten haben R12
(ich weiß nicht, welche Werkzeuge und Erfahrungen Sie haben), gibt es einen alternativen (aber risikoreicheren) Ansatz. Lassen Sie mich wissen, wenn ich es erklären muss. Viel Glück!R11
richtig an das Pad gelötet ist (auf dem Foto bin ich mir nicht sicher), dann ja, das sieht für mich richtig aus :-)Entschuldigung, Sie stecken mit einer parallelen Schnittstelle auf diesem Display fest. Der Controller-IC selbst unterstützt die Wahl zwischen einer seriellen oder parallelen Schnittstelle, aber der Pin ist fest auf 1 auf der Platine verdrahtet.
Die kleinste nutzbare Schnittstelle wären 7 Bit: RS, R/W, E und vier Datenleitungen.
Tom Tischler
Fusseldieb
Kodo
Tom Tischler
Fusseldieb
Fusseldieb
Kodo
U8G2_ST7920_192X32_F_SW_SPI
sollte funktionieren und von der Größe her besser passen (korrekte Höhe, etwas zu breit).Fusseldieb