Arduino Forum

International => Deutsch => Topic started by: beeble2 on Jun 30, 2014, 12:45 pm

Title: LCD Display 12864
Post by: beeble2 on Jun 30, 2014, 12:45 pm
Hallo zusammen,

ich habe mehre 16x2 und/oder 20x4 Lcd Displays ohne Probleme mit diesen kleinen I2C-Adaptern im
Einsatzt (16 Polig)

Gibt es einen Trick (Anleitung) wie ich auch ein 12864 Display (20 Polig) mit diesen Adaptern betreiben
kann ?

Ulli
Title: Re: LCD Display 12864
Post by: Trixi on Jun 30, 2014, 01:23 pm
Wenn Du ein Datenblatt UND eine Lib für den Controller auf dem 12864 hast sollte das gehen.
Mit der Lib für Text-LCDs wird das wohl nicht gehen.
Title: Re: LCD Display 12864
Post by: beeble2 on Jun 30, 2014, 01:37 pm
Erst mal Danke,

aber die Frage bezog sich mehr auf die Verschaltung.
Der I2C-Adapter hat 16 Pole, das Display 20.

Ulli
Title: Re: LCD Display 12864
Post by: SkobyMobil on Jun 30, 2014, 02:54 pm
Hallo,
dann vegleiche doch einmal die Zuordnungen Display 16pol-Display 20pol. Könnte ja sein, das bei dem 20 pol. 4 Pin´s n/a sind.
Oder Du postest einmal, welche 4 Pin (Bezeichnungen) über sind.
An dem 20pol. solltest Du 16 Pole habe, die mit dem 16pol Display überein stimmen. Einfach mal anschließen.
Gruß und Spaß
Andreas
Title: Re: LCD Display 12864
Post by: Trixi on Jun 30, 2014, 03:02 pm

Erst mal Danke,

aber die Frage bezog sich mehr auf die Verschaltung.
Der I2C-Adapter hat 16 Pole, das Display 20.

Ulli

Hoi Uli,
was nützt Dir aber die "Verschaltung" wenn Du keinen Treiber/keine Lib zum ansteuern hast ?
Sag uns doch mal, welcher Controller verbaut ist - da kann man was mit anfangen.
Zur Ansteuerung eines TextDisplays sind im 4Bit Modus ja nur 6 Kabel plus + und -, ansonsten sind es 8 Datenleitungen.
Title: Re: LCD Display 12864
Post by: sschultewolter on Jun 30, 2014, 03:18 pm
Für das Display brauchst du idR keinen I2C Adapter. Das Display hat eine SPI-Schnittstelle, die auch wunderbar mit dem Uno etc. funktioniert.

Achtung, Belegung kann zu ähnlichen Panels abweichen. Für den Sketch wird die U8GLib benötigt.
Code: [Select]

[1]  VSS  -> GND
[2]  VDD  -> 5V
[4]  RS   -> D10
[5]  R/W  -> D11
[6]  E    -> 13
[14] PSB  -> GND
[19] BLA  -> Widerstand -> 5V
[20] BLK  -> GND


Code: [Select]

#include "U8glib.h"
U8GLIB_ST7920_128X64_4X u8g(10);

void setup(void) {
}

void loop(void) {
  u8g.firstPage();
  do {
    u8g.setFont(u8g_font_unifont);
    u8g.drawStr( 0, 10, "Hallo Welt");
  } while ( u8g.nextPage() );

  delay(1000);
}
Title: Re: LCD Display 12864
Post by: beeble2 on Jun 30, 2014, 03:45 pm
Oh ja, Danke !

Das habe ich natürlich gerade auch wo anders gefunden.
Der Wiederstand von + nach Bla ist der für den Kontrast, also Poti besser ?

Welcher Pin ist bei diesem Display für die Helligkeit ?

Ulli
Title: Re: LCD Display 12864
Post by: sschultewolter on Jun 30, 2014, 03:48 pm
BLA -> Backlight Anode
BLK -> Backlight Kathode

Das hat nichts mit dem Kontrast zu tun. Hier reicht ein Widerstand, kannst aber auch einen Poti nehmen. Die Widerstandswert musst du selber rausfinden, was dir am besten auskommt. Fange mit einem 2k Widerstand an und gehe langsam runter.
Alternativ Poti mit 330Ohm Widerstand in Reihe.

Kontrast muss bei dem Display nicht gestellt werden.
Title: Re: LCD Display 12864
Post by: beeble2 on Jun 30, 2014, 04:15 pm
Das heißt mit dem Wiederstand stelle ich die Displayhelligkeit ein !?

Ulli
Title: Re: LCD Display 12864
Post by: Trixi on Jun 30, 2014, 04:22 pm

Das heißt mit dem Wiederstand stelle ich die Displayhelligkeit ein !?

Ulli

Ja, die LED der HG-Beleuchuntg
Title: Re: LCD Display 12864
Post by: beeblebrox on Jul 07, 2014, 08:04 pm

Für das Display brauchst du idR keinen I2C Adapter. Das Display hat eine SPI-Schnittstelle, die auch wunderbar mit dem Uno etc. funktioniert.

Achtung, Belegung kann zu ähnlichen Panels abweichen. Für den Sketch wird die U8GLib benötigt.
Code: [Select]

[1]  VSS  -> GND
[2]  VDD  -> 5V
[4]  RS   -> D10
[5]  R/W  -> D11
[6]  E    -> 13
[14] PSB  -> GND
[19] BLA  -> Widerstand -> 5V
[20] BLK  -> GND


Code: [Select]

#include "U8glib.h"
U8GLIB_ST7920_128X64_4X u8g(10);

void setup(void) {
}

void loop(void) {
  u8g.firstPage();
  do {
    u8g.setFont(u8g_font_unifont);
    u8g.drawStr( 0, 10, "Hallo Welt");
  } while ( u8g.nextPage() );

  delay(1000);
}



Geht das mit den kleinen Displays auch ? Bis auf den PSB-Pin haben die doch
auch alle Anschlüsse ?

Wenn ja, wofür dann die I2C Adapter ?
Macht der parallele Betrieb überhaupt SInn ? Braucht doch nur mehr Strippen.

Ulli
Title: Re: LCD Display 12864
Post by: sschultewolter on Jul 07, 2014, 08:27 pm
Hallo,

das geht leider nicht. Der PSB Kontakt ist für die Umschaltung wichtig.
Code: [Select]
PSB=0 : Serial Mode
PSB=1 : 8/4Bit Parallel Bus Mode


Somit kann man davon ausgehen, dass PSB intern auf der Steuerplatine auf 1 gestellt ist. Ich habe hier noch 20 LCDs mit 16x2 rumliegen ohne I2C. Werde mich nachher mal einlesen, ob über die Jumpereinstellung das gelöst werden kann.

Warum I2C? Es gibt Adapter Platinen, die über Seriell, SPI oder I2C funktionieren. Nicht jedes System hat zwingend alle Bussysteme onboard. I2C hat im Vergleich zum SPI den Vorteil, das es noch weniger Pins verbraucht. Der I2C Bus braucht beim Uno nur A4/A0, die SPI Schnittstelle 10,11,13.

EDIT:

Nein geht nicht! Habe aber ein kleines Tutorial gefunden, bei dem es mit 74HC595 gelöst wird
http://www.instructables.com/id/3-Wire-HD47780-LCD-for-less-than-1-dollar/all/?lang=de

Finde das aber als nicht optimal. Da kann man genausogut die I2C Platinen nehmen.