Forum: Mikrocontroller und Digitale Elektronik LCD-Modul SAMSUNG UC121902-TNARX-A Arduino


von Eike (Gast)


Lesenswert?

Moin,
ich habe das Display "LCD-Modul SAMSUNG UC121902-TNARX-A" und versuche 
es jetzt an meinen arduino Leonardo zum laufen zu bringe, aber ich 
bekomme die Programmierung irgendwie nicht hin.
Danke im Voraus
Eike

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Danke wofür?

von Eike (Gast)


Lesenswert?

Wenn mir einer erklären kann, wie man das Ding richtig programmiert :D

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Hast Du Dir das Datenblatt angesehen, das Pollin dazu veröffentlicht 
hat?

Bist Du Dir sicher, daß Du dieses Display verwenden möchtest?

von Eike (Gast)


Lesenswert?

Ja, das ist schön klein und ich habe es. Und das Datenblatt hilft mir 
nicht wirklich bei der Programmierung, ich weiß nur, dass ich irgendwie 
56bits an den dataPin senden muss, nur wie?

von Christian (Gast)


Lesenswert?

Hast du mal nach Beispielcode für den KS0035 Controller gesucht?

von Magnus M. (magnetus) Benutzerseite


Angehängte Dateien:

Lesenswert?

[OT]

Ich finde es schon mal geil dass Pollin als Produktbild ein fehlerhaftes 
Display abgebildet hat. Sind die alle so?

[/OT]

von Christian (Gast)


Lesenswert?


von Eike (Gast)


Lesenswert?

Meine beiden Displays sind in Ordnung. Und Beispielcodes finde ich 
nicht.

von Christian (Gast)


Lesenswert?

Dann wird dir nix anderes übrig bleiben, als zu versuchen das Datenblatt 
zu verstehen, notfalls durch ausprobieren.
Es geht damit los, dass Display richtig nach Schaltplan anzuschließen 
und sicherzustellen, das du das Timing einhältst. Dann spiel mit den 
Bits rum und schaue was passiert.

von Eike (Gast)


Lesenswert?

Ja das habe ich alles gemacht, aber es klappt nicht. Mir geht es eher um 
den Code dazu

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nun, wenn "es nicht klappt", dann hast Du ja schon eigenen Code 
geschrieben. Vielleicht enthält der ja nur einen Fehler?

Oder ... sollte es sein können, daß Du das etwa noch nicht gemacht hast?

von Eike (Gast)


Lesenswert?

Doch doch, saß ich schon Stunden dran... hier das vielversprechende 
Code:

const int clockPin = 3; // toggeln während der Datenübertragung
const int latchPin = 4; // vor dem Senden der Daten an den IC auf LOW 
ziehen, danach wieder HIGH
const int dataPin = 2; // an den seriellen Eingang des IC; jeweils 1 
Byte übertragen
void setup() {
  pinMode(clockPin, OUTPUT);
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);

}
void loop() {
  digitalWrite(latchPin, LOW);
  // Datenübertragung: das Byte wird von rechts 2^0 nach links 2^7 
codiert (least significant bit first)
  shiftOut(dataPin, clockPin, MSBFIRST,00000000);
  shiftOut(dataPin, clockPin, MSBFIRST,00000000);
  shiftOut(dataPin, clockPin, MSBFIRST,00000000);
  shiftOut(dataPin, clockPin, MSBFIRST,00001000);
  shiftOut(dataPin, clockPin, MSBFIRST,00000000);
  shiftOut(dataPin, clockPin, MSBFIRST,00000000);
  shiftOut(dataPin, clockPin, MSBFIRST,00000010);
  digitalWrite(latchPin, HIGH);
}

von Magnus M. (magnetus) Benutzerseite


Angehängte Dateien:

Lesenswert?

Wenn du mit "latchPin" CE meinst, hast du es genau verkehrt herum 
gemacht.

: Bearbeitet durch User
von Eike (Gast)


Lesenswert?

Habe ich auch schon ausprobiert, ändert aber nichts

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Eike schrieb:
>   shiftOut(dataPin, clockPin, MSBFIRST,00000000);
>   shiftOut(dataPin, clockPin, MSBFIRST,00000000);
>   shiftOut(dataPin, clockPin, MSBFIRST,00000000);
>   shiftOut(dataPin, clockPin, MSBFIRST,00001000);
>   shiftOut(dataPin, clockPin, MSBFIRST,00000000);
>   shiftOut(dataPin, clockPin, MSBFIRST,00000000);
>   shiftOut(dataPin, clockPin, MSBFIRST,00000010);

Da Arduinos in C++ programmiert werden, werden hier andere Werte 
übertragen als Du annimmst.

Sieh Dir deine jeweils letzten Parameter beim Funktionsaufruf von 
shiftOut noch mal genau an.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Wenn ich die Angaben von Pollin richtig interpretiere, hat das Display 
mehr als 53 Segmente.

12 x 7 Segmente = 84 Segmente

Hinzu kommen noch diverse Symbole in der oberen Hälfte des Displays.

Der Controller kann mit 1/1 Duty (welches du verwenden willst) aber nur 
53 Segmente bedienen. Du musst dich also zumindest mit der Thematik 1/2 
Duty auseinandersetzen.

von Eike (Gast)


Lesenswert?

Was muss ich den sonst schreiben???

von Magnus M. (magnetus) Benutzerseite


Angehängte Dateien:

Lesenswert?

Magnus M. schrieb:
> Der Controller kann mit 1/1 Duty (welches du verwenden willst) aber nur
> 53 Segmente bedienen. Du musst dich also zumindest mit der Thematik 1/2
> Duty auseinandersetzen.

Nachtrag:    Anhang

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Eike schrieb:
> Was muss ich den sonst schreiben???

Den_n_, mit zwei 'n'.

Na, was ist das hier für ein Wert? Welches Zahlensystem soll der 
haben?

>   shiftOut(dataPin, clockPin, MSBFIRST,00001000);

Und welches hat er? Hast Du Dich wenigstens drei Minuten lang damit 
auseinandergesetzt, wie in der von Dir verwendeten Programmiersprache 
numerische Konstanten geschrieben werden?

Was ist im Arduino-C++-Dialekt 00001000 für ein Wert?

Wieviele Bits sind das?

Genau: 24 Bit.

Verstehst Du nicht?

von Nicco Kunzmann (Gast)


Lesenswert?

Hallo Eike,

hier gibt es jetzt eine Library zum Thema: 
https://github.com/niccokunzmann/UC121902-TNARX-A

Viele Grüße,
Nicco

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.