Hallo, ich habe gerade versucht dieses Display http://www.pollin-electronic.de/shop/dt/MzU0OTc4OTk-/Bauelemente/Aktiv/Displays/LCD_Modul_SOLOMON_LM118KFWL2_LM1180SGL2_.html zum Leben zu erwecken. Datenblatt: http://www.pollin-electronic.de/shop/downloads/D120546D.PDF Leider leuchtet nicht mal die Hintergrund LED wenn man VSS und VDD (Pin 1 und 2) verbindet. Laut Datenblatt (Seite 9) ist der LED Widerstand bereits im Display verbaut... Hat jmd. von euch dieses Display schon einmal benutzt? Vielen Dank im Voraus! Grüße,
St S. schrieb: > Laut Datenblatt (Seite 9) ist der LED Widerstand > bereits im Display verbaut... Nur passt das Datenblatt nicht exakt zum Display: Es ist für ein LM1180SGL. Das Backlight ist an Pin 15 und 16 angeschlossen. Vorwiderstände sind im Display aber schon verbaut.
Benedikt K. schrieb: > St S. schrieb: >> Laut Datenblatt (Seite 9) ist der LED Widerstand >> bereits im Display verbaut... > > Nur passt das Datenblatt nicht exakt zum Display: Es ist für ein > LM1180SGL. > Das Backlight ist an Pin 15 und 16 angeschlossen. Vorwiderstände sind im > Display aber schon verbaut. Danke Benedikt. Wie ist die Polung an Pin 15 und 16? Wüsstest du evtl. noch einen C Treiber für das Display? Danke schon mal
Pin 16 ist Minus. Bei dem Display muss man beachten, dass die Reihenfolge der Pins nicht 1-16 ist, sondern 16, 15, 1, 2, 3 .... 14. Schau dir mal die Rückseite vom Display an: In der Nähe von Pin 14 gibt es 4 Lötjumper: Über 2 die schon auf einer Seite gelötet sind, kann man die Polung des Backlights vertauschen, über die anderen beiden die offen sind, kann man das Backlight auch an die normale 5V Versorgung anschließen, wenn man die beiden Jumper schließt. Das Display ist HD44780 kompatibel. Dazu gibt es in der Codesammlung einiges an Software.
Habe dieses Display auch. Die etwas vom Standard abweichende Pinbelegung, die Sache mit den Lötbrücken und die Farbe der Hintergrundbeleuchtung sind wohl der Grund dafür dass es nur 1,95 EUR bei Pollin kostet. Aber Top Preis-Leistungs Verhältnis :-) Mal was zum Thema Befestigung: Wie befestigt ihr eure LCD Displays normalerweise? Ausschnitt in Gehäusefront und mit Distanzbolzen dort befestigen ? Display mit entspr. langen Abstandshaltern auf Platine anbringen? Oder mit Eibaurahmen (die aber teilw. ein vielfaches des Displays kosten)?
Sebastian R. schrieb: > Ausschnitt in Gehäusefront und mit Distanzbolzen dort > befestigen ? Display mit entspr. langen Abstandshaltern auf Platine > anbringen? Ich mache das genau so (falls überhaupt ein Gehäuse außenrum kommt und ganze nicht nur offen auf die Platine geschraubt wird.) Da die Befestigungslöcher meist 2,54mm Durchmesser haben, bohre ich die Platine auf 3mm auf.
Ja, so wie ich auch. Hatte auch einige Male n Gehäuse aus Bastlerglas selbst zusammengeklebt. Ging erstaunlich gut: schnell, sauber, dicht und vor allem transparent. Macht jede Bastelei zu nem Schaustück. Jedoch wäre für manche Sachen, wie z.B. das Touchscreen Display von Pollin, ein Einbaurahmen ne feine Sache....
Vielen Dank! Läuft schon am Testboard. Finde den Kontrast und das Display echt Klasse! Wäre auch noch günstig für 10eur... Super Teil Danke nochmal an! Grüße
Hallo Ich hab auch ne Frage zum Backlight dieses LCD's. Mit welcher Spannung wird das betrieben? Also konkret was kommt an die Pins #15 und 16? Vielen Dank für die Hilfe Grüsse Simon
Hallo, ich versuche grade dieses Display mit einem ATxmega128 zum laufen zu bringen. Allerdings habe ich bei meinen Versuchen nie irgendetwas darauf zu sehen bekommen. Die Stromversorgung kommt vom Board. Details zum Anschluss findet man im Dateianhang. Alle Programme, die ich probiert habe, konnte ich kompilieren und mit avrdude auf den ATxmega laden. 1. Versuch: Sourcecode der Uni umschreiben An der Uni haben wir auch LCDs, die den HD44780 Standard haben, verwendet. Ich habe den Sourcecode auf die von mir verwendete Pinbelegung am Port A angepasst: Pin Leitung 1 RS 2 R/W 3 E 4 DB4 5 DB5 6 DB6 7 DB7 2. Versuch: Anderen Sourcecode probieren Auf http://www.mikrocontroller.net/articles/HD44780 bin ich auf den Code von Peter Fleurys gestoßen und habe entsprechend lcd.h angepasst. Hier ein Ausschnitt:
1 | #define LCD_PORT PORTA_OUT /**< port for the LCD lines */ |
2 | |
3 | #define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */ |
4 | |
5 | #define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */ |
6 | |
7 | #define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */ |
8 | |
9 | #define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */ |
10 | |
11 | #define LCD_DATA0_PIN 4 /**< pin for 4bit data bit 0 */ |
12 | |
13 | #define LCD_DATA1_PIN 5 /**< pin for 4bit data bit 1 */ |
14 | |
15 | #define LCD_DATA2_PIN 6 /**< pin for 4bit data bit 2 */ |
16 | |
17 | #define LCD_DATA3_PIN 7 /**< pin for 4bit data bit 3 */ |
18 | |
19 | #define LCD_RS_PORT LCD_PORT /**< port for RS line */ |
20 | |
21 | #define LCD_RS_PIN 1 /**< pin for RS line */ |
22 | |
23 | #define LCD_RW_PORT LCD_PORT /**< port for RW line */ |
24 | |
25 | #define LCD_RW_PIN 2 /**< pin for RW line */ |
26 | |
27 | #define LCD_E_PORT LCD_PORT /**< port for Enable line */ |
28 | |
29 | #define LCD_E_PIN 3 /**< pin for Enable line */ |
3. Versuch: Handprogrammieren Ich habe ein Programm geschrieben, mit dem ich eine uint8_t Variable über den Eingang mit Pushbuttons geXORt habe d.h. ich konnte über Pushbuttons die Pins der Ausgabe für das LCD unabhängig setzen und rücksetzen. Zur Sicherheit habe ich auch die LEDs auf dem Board die Ausgabe zeigen lassen und habe diese mit den Pins am LCD + Messgerät verglichen. Habe mir das weiter oben verlinkte HD47780U Datenblatt angesehen (insbesondere Seite 42) und bin dann durch Drücken der Taster folgende Sequenz durchgegangen:
1 | DB4, DB5 |
2 | 3x Enable |
3 | DB5 Sets to 4-bit operation |
4 | Enable |
5 | 0 Turns on display and cursor |
6 | Enable |
7 | DB7, DB6, DB5 |
8 | Enable |
9 | 0 Entry mode set |
10 | Enable |
11 | DB6, DB5 |
12 | Enable |
13 | RS, DB6 Writes H |
14 | Enable |
15 | RS, DB7 |
16 | Enable |
Keine der Versuche hat irgendwann auch nur irgendetwas auf dem LCD angezeigt. Ich bin für jede Hilfe dankbar.
Hallo nochmal, ihr braucht euch erstmal nicht den Kopf zu zerbrechen, denn mir ist aufgefallen, dass die Versorgungsspannung des Displays 5V beträgt. Weiß nicht genau, ob das wirklich die Ursache ist, denn dazu müsste ich erstmal einen Lötkolben unter die Finger bekommen, wäre aber eine gute Erklärung.
Hallo, ich habe das LCD nochmal ausgegraben und diesmal mit 5V Versorgungsspannung versucht, etwas anzuzeigen. Habe mich am HD44780 Datenblatt orientiert. Dabei wollte ich wie auf Seite 42 beschrieben eine Ausgabe im 4-bit Modus hinbekommen. Dazu habe ich die Pinbelegung auch von dort übernommen, um Ablesefehler zu vermeiden. Den untenstehenden code habe ich auch schon so verändert, dass anstatt einem delay eine Warteschleife steht, aus die man per Tastendruck (Interrupt) wieder herausgelangt. So konnte ich die Werte nochmal direkt am Display abmessen, ob sie auch an der richtigen Stelle anliegen. Weiß jemand weiter? Muss man den Kontrast noch irgendwie einstellen? Mehr außer der Hintergrundbeleuchtung habe ich nicht hinbekommen.
1 | #include <avr/io.h> |
2 | #include <util/delay.h> |
3 | |
4 | /*
|
5 | Pinbelegung nach Dokument "HD44780U (LCD-II)" von HITACHI (Seite 42):
|
6 | |
7 | Pin Belegung
|
8 | 0 DB4
|
9 | 1 DB5
|
10 | 2 DB6
|
11 | 3 DB7
|
12 | 4 RW
|
13 | 5 RS
|
14 | 6 E
|
15 | |
16 | delays sind orientiert am code von Peter Fleury.
|
17 | Laut Dokument brauchen die meisten Befehle 37 us (Seite 24).
|
18 | */
|
19 | |
20 | #define PIN_Enable 0b01000000
|
21 | |
22 | void LCD_Enable(void) { |
23 | PORTD_OUT |= PIN_Enable; |
24 | _delay_us(2); |
25 | PORTD_OUT &= ~PIN_Enable; |
26 | }
|
27 | |
28 | int main(void) |
29 | {
|
30 | PORTD_DIR = 0xff; // set Port D output |
31 | |
32 | _delay_us(16000); // power on, step 1 |
33 | PORTD_OUT = 0b00000010; // 4-bit operation, step 2 |
34 | LCD_Enable(); |
35 | |
36 | _delay_us(4992); |
37 | LCD_Enable(); // step 3 |
38 | |
39 | _delay_us(64); |
40 | LCD_Enable(); // 3. Wiederholung |
41 | |
42 | _delay_us(64); |
43 | PORTD_OUT = 0b00000000; // Display on, step 4 |
44 | LCD_Enable(); |
45 | |
46 | _delay_us(64); |
47 | PORTD_OUT = 0b00001110; |
48 | LCD_Enable(); |
49 | |
50 | _delay_us(64); |
51 | PORTD_OUT = 0b00000000; // Entry mode set, step 5 |
52 | LCD_Enable(); |
53 | |
54 | _delay_us(64); |
55 | PORTD_OUT = 0b00001100; |
56 | LCD_Enable(); |
57 | |
58 | _delay_us(64); |
59 | PORTD_OUT = 0b00100100; // Write data to CGRAM/DDRAM, step 6 |
60 | LCD_Enable(); |
61 | |
62 | _delay_us(64); |
63 | PORTD_OUT = 0b00101000; |
64 | LCD_Enable(); |
65 | |
66 | _delay_ms(5000); |
67 | PORTD_OUT |= 0b10000000; |
68 | return 0; |
69 | }
|
Bei mir laufen einige dieser Displays mit einer LCD-Bibliothek in C, afair die von Peter Fleury. Hast Du mal eine Bibliothek probiert, anstatt den Kram selbst zu schreiben, um sicherzustellen, dass das Display, Verkabelung etc. OK ist ? Eine Kontrastspannung hast Du angelegt ? Ohne die gehts nicht. Ich habe die mit einem Poti zum fest einstellen gemacht.
So, dein Bild habe ich nochmal genauer angeschaut. Ich sehe nicht, dass Du eine Kontrastspannung angeschlossen hast. Im oben verlinkten Datenblatt ist auf der letzten Seite ein Schematic. Dort ist zu sehen, dass VO auch angeschlossen sein muss - ich habs mit einem 10k Poti einstellbar gemacht. Einstellen kann man daran von gar nichts auf der Anzeige -> Zeichen werden dargestellt -> alle Segmente sind immer schwarz. Ohne diese Spannung tut sich natürlich nichts...
Hallo us73, habe gerade nur einen 100KOhm Trimmer zur Hand. Mit dem habe ich aber schon was angezeigt bekommen, als ich den weißen Drehknopf schon fast auf Masse umgedreht hatte. Die erste Zeile ist leer, in der zweiten Zeile sind die Buchstaben komplett ausgefüllt, wie schwarze Blöcke. Vielen Dank, immerhin sehe ich jetzt was. Hoffentlich schaffe ich noch irgendetwas sinnvolles anzuzeigen.
Korrekt, ohne Kontrastspannung kannst Du soviel richtig ansteuern wie Du willst - Du wirst nichts sehen. Wenn man das Ding nun so einstellt, dass die schwarzen Vierecke leicht grau sind, dann erkennt man auf jeden Fall, wenn sich etwas am dargestellten Inhalt ändert. Viel Erfolg ! Uwe
Ich hatte genau das Gleiche Problem mit einem meiner LCDs. wenn du nun ganz vorsichtig die Kontrastspannung änderst, müsstest du relativ flink wechselnde Symbole in den Kästchen erkennen. Als ich vor jenem Problem stand hab ich irgendwann in wilder Rage wahllos die En RS RW Leitungen wild nach masse und plus gesteckt, immer wieder dabei mal die Versorgungsspannung unterbrochen, und siehe da, nach einem kurzen Massaker lief das display tadellos :) Grüsse Mateo P.S. natürlich übernehme ich keine Haftung für jegliche zerstörte Displays :D
Vielen Dank nochmal an euch. Mit dem 100K Trimmer habe ich noch ziemlich schwierigkeiten den richtigen Kontrast einzustellen. Nach euren Tips habe ich dann nochmal rumgespielt und dabei ist mir aufgefallen, dass man von der Seite aus ab einem bestimmten Winkel den Buchstaben "H" erkennt. Der obige Code hat die ganze Zeit funktioniert, ich habs nur nicht gesehen. Werde mir wohl noch einen anderen Trimmer holen, um das ganze feiner einstellen zu können. Danke nochmal.
Und weil ich jetzt wieder glücklich bin, vor allem nach dem ganzen Frust, noch ein kleines Photo zum Abschluss :)
Öhm, und aus dem Bauch heraus hätte ich jetzt gesagt, das Display steht auf dem Kopf... Bei einem H erkennt man das allerdings nur schwierig.... Ansonsten weiterhin viel Spaß ! Uwe
Jetzt nachdem nochmal ein paar Bauteile angekommen sind und ich mir nochmal etwas Zeit genommen habe, um vor allem den Kabelverhau etwas einzudämmen, wurde mein kleines Projekt abgeschlossen. Den Code habe ich für Angänger wie mich nochmal überarbeitet und dokumentiert. Marc
Ein allerletztes Update: - Bauteilliste (übersetzt) aufgeschrieben - kleine Veränderungen am code - Kontrast bildhaft erleutert (mein voriges Vergehen :) - html Ansicht vom code - R/W Pin auf Masse gesetzt vor allem am letzten Punkt habe ich die ganze Zeit gegrübelt, ob da was passieren kann. Der Gedanke, dass man Software seitig auf read stellen kann und dann den busy Status auf DB7 hat, hat mich noch genervt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.