Forum: Mikrocontroller und Digitale Elektronik Pollin Display HB10401


von Mario L. (mlatzig)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe während meines verlängerten Osterurlaubes mit ein paar LCDs aus 
meiner Krabbelkiste gespielt. Viele Displays sind von Pollin und haben 
keine Datenblätter.

Bei Pollin gibt es u.a. das Display HB10401 (Bestellnr. 121 148) für 
derzeit 1,75€:

http://www.pollin.de/shop/dt/MTU4ODc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_HB10401_4x10.html

Da hier die Vermutung nahe lag, dass es HD44780 kompatibel ist, hatte 
ich große Hoffnung, dass sich die Pinbelegung durch herumprobieren 
herausfinden lässt. Das Ergbnis möchte ich euch nicht vorenthalten, da 
ich dennoch mehrere Stunden herumprobieren musste:

Stiftleiste 2x12 Pins (davon nur 20 Pins verwendet):
1
a01: (NC)
2
a02: RS 
3
a03: EN
4
a04: Button DOWN
5
a05: Button RIGHT
6
a06: Button FUNC RIGHT
7
a07: D1
8
a08: D3
9
a09: D5
10
a10: D7
11
a11: VCC/+5V
12
a12: (NC)
13
14
b01: (NC)
15
b02: RW
16
b03: Button UP
17
b04: Button LEFT
18
b05: Button FUNC LEFT
19
b06: D0
20
b07: D2
21
b08: D4
22
b09: D6
23
b10: V0/Contrast (0-5V)
24
b11: VSS/GND 
25
b12: (NC)

Das LCD wird 2-zeilig initialisiert. Der DDRAM Addresbereich teilt sich, 
wie bei HD44780 üblich, folgendermaßen auf:
1
Zeile 1: 0x00-0x09
2
Zeile 2: 0x40-0x49
3
Zeile 3: 0x0A-0x13
4
Zeile 4: 0x4A-0x53

Die Buttons sind auf einer Seite gegen Masse gelegt. Man kann also mit 
Pull-Up diese Tasten direkt abfragen.

von google (Gast)


Lesenswert?

Ok, Du warst schneller, ;-) ein paar weitere Infos siehe unter:

http://www.stepp-ke.de/category/basteleien/

von Mario L. (mlatzig)


Lesenswert?

google schrieb:
> Ok, Du warst schneller, ;-)

Einmal wollte ich schneller wie der Meister der Display-Analysen sein 
;-)

OT: Mein Traum wäre es, den WU2911A zum Laufen bekommen. Davon habe ich 
fast 10 Stück hier rumliegen. Auch wenn sich dieses LCD beim 
Herumprobieren (zufälliges Ansteuern) wie ein HD44780 (Custorblinken, 
2-/4-Zeilen Modus etc.) verhalten hatte, scheint die Belegung und 
Ansteuerung ja anders zu sein.

OT2: Sowetwas wie dein Adapter für die grüne Pest in deinem Blog werde 
ich mir auch mal fertigen lassen, von den VQE21 habe ich auch noch mind. 
50 Stück im Beutel liegen, evtl. auch mit dem STM8S105S4T6C zur 
Ansteuerung und als SPI Slave, der ja letztes Jahr ein richtiges 
Schnäppchen war, wo ich ebenfalls zugeschlagen habe.

von Timm T. (Gast)


Lesenswert?

Mario L. schrieb:
> ich habe während meines verlängerten Osterurlaubes mit ein paar LCDs aus
> meiner Krabbelkiste gespielt.

Hast Du das Display noch im Versuchsaufbau? Kannst Du mal bitte testen, 
ob das HB10401 auch mit 3.3V Versorgungsspannung zufrieden ist, notfalls 
mit einer negativen Vo?

Und könntest Du bei der Gelegenheit mal den ungefähren Stromverbrauch 
ermitteln? Ich würde es gern in einer LiPo-versorgten 3.3V Anwendung 
einsetzen.

von Mario L. (mlatzig)


Lesenswert?

Den Versuchsaufbau habe ich nicht mehr, muss ich erst alles wieder 
aufbauen, vielleicht in den nächsten Tagen, da diese Info mich auch 
interessiert. Aus dem Kopf kann ich aber schon sagen, dass negative 
Kontrastspannung nötig sein wird. Bei Vcc=5V war diese schon nahe bei 
0V.

von Mario L. (mlatzig)


Lesenswert?

Ja, das Display und der Controller funktionieren auch mit negativer 
Kontrastspannung bei 3,3V.

Bei VCC=5V:

Hier kann V0 offen bleiben, dann stellen sich bei mir etwa dort 0,5V 
(gegen Masse) ein. Es ist also kein Poti zur Kontrasteinstellung nötig.

Strom messe ich bei offenem V0 etwa 1,2mA bei stehender Anzeige
und etwa 1,4mA bei dynamischen Inhalt.

Bei VCC=3,3V:

Hier muss V0 etwa -1,2V (gegen Masse) sein. Strom messe ich so 
1,0-1,1mA.

: Bearbeitet durch User
von M. G. (looking)


Lesenswert?

Hallo,

vielen Dank für die Infos zum LCD.

Ich habe versucht, das LCD per Arduino (LiquidCrystal Bibliothek) 
anzusteuern, leider ohne Erfolg (weder 4-bit noch 8-bit Mode). Zeile 1 
und Zeile 3 zeigen jeweils 10 schwarze Balken an. Es sieht so aus, als 
klappe die Initialisierung nicht.

Hast du das LCD im 4-bit oder 8-bit Modus angesteuert?

Anscheinend unterscheidet sich bei manchen HD44780-kompatiblen LCDs die 
Initialisierungssequenz vom Original.

Könntest du bitte deinen Code bzw. die Initialisierungssequenz posten?

Danke.

von Mario L. (mlatzig)


Lesenswert?

Ich habe in AVR Assembler getestet, der wesentliche Teil der 4-Bit 
Initialisierung davon siehe unten. Die Initialisierung erfolgt mit 3 x 
Nibble $3 und einmal Nibble $2 mit einigem Delay dazwischen.

Man mag mir hier den Wischiwaschi-Code verzeihen, da ich ja nur einfach 
das Ding mal testen wollte:
1
main:
2
    ; Init Control Pins
3
    in pdat,PORTD
4
    cbr pdat,PIND_RS|PIND_RW|PIND_EN|PIND_TEST
5
    out PORTD,pdat
6
    
7
    in a,DDRD
8
    sbr a,PIND_RS|PIND_RW|PIND_EN|PIND_TEST
9
    out DDRD,a
10
11
    ; Init Data Pins
12
    clr pdat
13
    out PORTB,pdat
14
    ldi a,0xF0
15
    out DDRB,a
16
17
    rcall util_delay_1ms
18
19
    ldi a,0x03              ; Reset LCD (Instruction Nibble is $3), Set 3 Times
20
    rcall set_nibble
21
    rcall util_delay_10ms
22
    ldi a,0x03
23
    rcall set_nibble
24
    rcall util_delay_10ms
25
    ldi a,0x03
26
    rcall set_nibble
27
    rcall util_delay_10ms
28
29
    ldi a,0x02              ; try to enable 4bit mode (instruction nibble is $2)  
30
    rcall set_nibble
31
    rcall util_delay_10ms
32
33
    ldi a,0x28
34
    rcall set_byte
35
    rcall util_delay_1ms
36
    ldi a,0x14
37
    rcall set_byte
38
    rcall util_delay_1ms
39
    ldi a,0x06
40
    rcall set_byte
41
    rcall util_delay_1ms
42
    ; ... and so on ...
43
main_end:
44
    rjmp main_end
45
    
46
set_byte:
47
    push a
48
49
    swap a
50
    rcall set_nibble
51
    swap a
52
    rcall set_nibble
53
54
    pop a
55
    ret
56
57
set_nibble:
58
    push a
59
    push pdat
60
    
61
    andi a,0x0F
62
    swap a
63
    out PORTB,a
64
    rcall util_delay_10us
65
    in pdat,PORTD
66
    sbr pdat,PIND_EN|PIND_TEST
67
    out PORTD,pdat
68
    rcall util_delay_1ms
69
    cbr pdat,PIND_EN|PIND_TEST
70
    out PORTD,pdat
71
    rcall util_delay_1ms
72
73
    pop pdat
74
    pop a
75
    ret

Kann auch nicht ausschliessen, dass da ein Verwechsler in der 
Pinbelegung ist, da bei meinem Testadapter für das LCD die Anschlüsse 
gekreuzt waren.

von M. G. (looking)


Lesenswert?

Ich hab es jetzt auch mit dem Arduino im 4-bit Mode hingekriegt. Mein 
Fehler war, dass ich die 4 Datenleitungen aus Versehen seitenverkehrt 
angeschlossen hatte. Kaum macht man's richtig, schon geht's ... ;-)

Danke für die ganzen Infos zum LCD.

von Tom (Gast)


Lesenswert?

Hallo M.G.,
Magst du dein C Code hier posten?
Ich und andere würden sich freuen. :)

Viele Grüße, Tom

von Christoph (gizmo)


Lesenswert?

Hi,
erstmal vielen Dank für die Infos.

Ich will das Display für ein kleines Projekt verwenden frage mich gerade 
was das für eine Stiftleiste ist.
Wenns dafür Buchsen gibt könnte ich mir das Löten sparen.

Allerdings messe ich etwa 1.1mm zwischen den Kontakten und Stiftleisten 
mit 1.1mm Pitch finde ich absolut garkeine..
Vielleicht weiß von euch ja jemand was das für eine Stiftleiste ist.

Bild von Pollin http://cdn.pollin.de/article/xtrabig/XB121148.JPG

: Bearbeitet durch User
von Michael K. (aemkai)


Angehängte Dateien:

Lesenswert?

Hallo,

das Display hat einen etwas speziellen Zeichensatz.
Hab das ganze mal ausgelesen, siehe Anhang, falls es jemand benötigt.

Die Stiftleise ist übrigens eine mit Rastermaß 1,27.

von Mario L. (mlatzig)


Lesenswert?

Der Zeichensatz ist wohl ein customisierter Satz für den "Siemens Logo", 
wo dieser wohl für verwendet wurde. Daher eigenet sich das Display wohl 
sehr gut für technische Darstellungen (natürlich mit den begrenzten 
Möglichkeiten der Textdarstellung).

von Michael K. (aemkai)


Lesenswert?

Ja, die Vermutung hatte ich auch. Aber selbst mit diesem Wissen spuckte 
Google bei mir nichts zum Zeichensatz aus. Dafür spricht vor allem die 
Darstellung von Logikpegeln und Flanken.

von Ludwich F. (ludwich)


Lesenswert?

HB10401 und RaspberryPi
Hat hier jemand das HB10401 an einen Raspi am laufen?
Ich habe die Adaufruit Library für das HD47780 Hitachidisplay Adafruit 
CharLCD genutzt.
Die Zeile 1 und 2 Adressen wurden angepasst.
Zeile 1: 0x00-0x09
Zeile 2: 0x40-0x49
Zeile 3: 0x0A-0x13
Zeile 4: 0x4A-0x53

Leider schaffe ich es nur, dass der Cursor als line sichtbar wird und 
dann als Klotz blinkt (erstmal gut).
Die Textausgabe klappt nicht (Das Testprogramm schreibt Text und lässt 
diesen duchscrollen). Mit einem normalen HD47780 klappt das.

Hat jemand einen Tipp wie ich das hinbekomme?
Ich brauche die vier Zeilen für meine Wetterstation :-)

Gruß Ludwich

von Harald S. (deharry)


Lesenswert?

Hallo Leute,

darf ich den Thread mal wieder ausgraben?

Seid ihr inzwischen weiter gekommen mit dem Display?

Ich verwende das Teil mit Erfolg in einer Lüftersteuerung.
Basiert auf einem Arduino Nano V3 den ich über einen I2C-Converter an 
das Display angeflanscht habe.

Eure Infos haben mir dabei sehr geholfen!
Der Trick bei der Ansteuerung war, in der "NewliquidCrystal" LIB von 
Francisco Malpartida einen weiteren Datensatz im setCursor()-Teil 
anzulegen, der die Startpositionen im Display-RAM auf die korrekten 
Positionen übersetzt.

Andere Steuercommandos, natürlich auch die normale Textausgabe, 
funktionieren einwandfrei.

Jetzt will ich den Cursor dazu verwenden um in einem Menü Werte zu 
selektieren und diese dann per Tasten zu verändern.

Leider wird der Cursor (egal ob blinkender Block oder Underline) immer 
nur kurz an der vorgesehenen Stelle angezeigt und hängt danach 
unverrückbar in der linken unteren Ecke :(

Liegt das am Controller des Display oder hat meine Menüsteuerung hier 
eine Macke?

Danke!

Gruß, Harald

von Harald S. (deharry)


Lesenswert?

Ich habe noch ein bisschen mit der verwendeten Menü-Lib rumgespielt und 
festgestellt, dass das Problem von der LIB kommen muss.
Die Lib stellt neben der Darstellung der Menü-Struktur auch einen 
Mechanismus zur Verfügung, der die konkurierende Abarbeitung von 
quasiparallelen Tasks erlaubt.
Offenbar funkt mir eine der anderen Threads dazwischen, indem dort (wo 
auch immer...) die Cursorposition immer hart gesetzt wird, ohne den 
vorhergehenden Status zu retten und wiederherzustellen.

Gruß, Harald

von D.J. P. (djlinux)


Lesenswert?


von Karsten W. (lsmod)


Angehängte Dateien:

Lesenswert?

Mario L. schrieb:
> Bei Pollin gibt es u.a. das Display HB10401 (Bestellnr. 121 148) für
> derzeit 1,75€:
>
> https://www.pollin.de/p/lcd-modul-hb10401-4x10-121148
>
> Stiftleiste 2x12 Pins (davon nur 20 Pins verwendet):

Vielen Dank für die Veröffentlichung der Anschlußbelegung!

Zum Ausgleich wird hier nun eine Erweiterungsplatine vorgestellt, mit 
der ein einfacher Anschluß dieses Displays ermöglicht wird und 
gleichzeitig die Tasten über den Multiplexer CD4051 ausgelesen werden 
können.

Das Ziel war es eine kleine Adapter-Platine zu schaffen, die eine 
kompatible Anschlußbelegung zu einem Standard 16X2 LCD-Display zur 
Verfügung stellt.
(Damit das Display korrekt ausgerichtet ist, ragt die Platine seitlich 
heraus. Eine weitere Variante die unter das Display geklappt wird ist in 
Planung.)
Darüber hinaus ist eine optionale Ansteuerung über I2C mit nur 4 
Anschlußdrähten mit einem PCF8574 möglich.

Eine Library für Arduino wurde angepaßt und Funktionen zum Auslesen der 
Tasten über I2C wurden hinzugefügt.

: Bearbeitet durch User
von Karsten W. (lsmod)


Lesenswert?

Wenn jemand Interesse an solchen Platinen hat, gibt es noch eine 
bestimmte Anzahl die übrig sind und erworben werden können:

* 5 Stück für 2,50 Euronen
* Versand für 1,- Eurone als Standardbrief
* Optional CD4051 passend in SOP16 für 0,24 Euronen pro Stück
(PCF8574 sind leider keine überzählig vorhanden.)

Einfach hier über Email Kontakt aufnehmen.

Nachtrag:
=========
Ein passende Buchse war für das Display nicht aufzufinden.
Daher wird der Kunstoff-Teil von dem Stecker der Display-Platine einfach 
vorsichtig abgezogen und dann direkt die Pinne in die Bohrungen der 
Platine eingeführt und verlötet.

In der Schaltung ist ein optionaler Pegelwandler für 5V <-> 3,3V für I2C 
vorgesehen.

: Bearbeitet durch User
von Karsten W. (lsmod)


Angehängte Dateien:

Lesenswert?

Es gibt inzwischen nun auch eine Variante mit gespiegeltem 
Anschluss-Stecker, die unter die Display-Platine geklappt ist.
In dem Bild etwas unschön aber sehr stabil verklebt.

So ergibt sich ein schönes kompaktes I2C-Display bei Bedarf mit 
Tastenbedienung.
Dafür existiert ein gedruckter Rahmen in den Ersatz-Gummi-Tasten für 
eine Play-Station eingelegt werden können.

: Bearbeitet durch User
von Gerrit (gb1407)


Lesenswert?

Hallo.

Ich möchte kurz ergänzen, dass ich eine Möglichkeit für den Gegenstecker 
gefunden habe:
https://www.ebay.de/itm/183794057215

Zwar einreihig, aber 2-reihig nebeneinander passt es!
Entsprechend auf 2x 10Pins gekürzt natürlich.

Grüsse!

: Bearbeitet durch User
von Thomas S. (thomas55)


Lesenswert?

Gerrit schrieb:
> Ich möchte kurz ergänzen, dass ich eine Möglichkeit für den Gegenstecker
> gefunden habe:

ich auch, beim Chinesen meines Vertrauens.
https://de.aliexpress.com/item/1005003817088431.html?spm=a2g0o.order_list.order_list_main.9.7c4b5c5fW6a21e&gatewayAdapt=glo2deu

lg aus Spandau

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.