Forum: Mikrocontroller und Digitale Elektronik LCD Display funktioniert nicht


von Markus (Gast)


Lesenswert?

Hallo
Ich habe ein LCD Display zuhause. Diese Funktioniert einwandfrei an 
einem Atmega 16

Nun habe ich mir ein anderes gekauft bei Conrad EA DIP162-D
leider bekomme ich es nicht zum laufen!

Das Dispplay wird zwar initialisiert ,, also beim einschalten hat es nur 
eine Reihe einen Balken, sobald ich dann einen reset mache auf meinem 
STK 500 werden 2 schwarze balkenreihen angezeigt.
Aber es wird kein Text angezeigt`?
Habe beim Ersten Probelauf die pins vertauscht(Die Display Data pins) 
aber dies müsste doch das LCD nicht zerstören oder?
Gruß Markus

von holger (Gast)


Lesenswert?

>STK 500 werden 2 schwarze balkenreihen angezeigt.
>Aber es wird kein Text angezeigt`?

Kontrast mal runter gedreht?

von Nico (nico123)


Lesenswert?

Hast Du mal versucht den Kontrast runter zu stellen?

von Markus (Gast)


Lesenswert?

ja klar alles ausprobiert
Hintergrundbeleucht steht von 3.0V - 3,6   da bin ich auf 2,8 Aber 
dürfte nicht das problem sein

von Nico (nico123)


Lesenswert?

Die Hintergrundbeleuchtung hat nichts mit dem Kontrast zu tun!

von Markus (Gast)


Lesenswert?

Habe des Problem vermutlich gefunden! Muss kurz mal umlöten dann meld 
ich mich wieder

von Markus (Gast)


Lesenswert?

Hm Ja aber die Balken verschwinden ganz normal und werden wieder 
angezeigt!
Gibts nocht Lösungsvorschläge?

Gruß

von Nico (nico123)


Lesenswert?

Zeige deinen Schaltplan und den Quellcode und wir können dir besser 
helfen!

von (prx) A. K. (prx)


Lesenswert?

Markus schrieb:
> Hintergrundbeleucht steht von 3.0V - 3,6   da bin ich auf 2,8 Aber
> dürfte nicht das problem sein

Die Hintergrundbeleucht braucht keine bestimmte Spannung sondern einen 
bestimmten Strom.

von Markus (Gast)


Lesenswert?

Ja leider kann ich aus dem Datenblatt von Conrad nichts herauslesen
dort steht nur .
Der BEtrieb der Huntergrundbeleuchtung erfordert eine Stromquelle oder 
einen externen Vorwiderstand zur Strombegrenzung. DIe Flussspannung 
liegt zwischen 3,0V und 3,6 Volt.
habe gerade nochmal geschaut . habe hierz einen 33 Ohm widerstand 
geschalten

von Markus (Gast)


Lesenswert?

habs gefunden sie benötigt 45mA

von Markus (Gast)


Lesenswert?

hm hätte nur mit 45mA reinfahren dürfen  bin aber laut meinen 
berechnungen mit 145mA reingefahren... hoffen wir dass es nicht kaputt 
ist

von Kuchen backen (Gast)


Lesenswert?

Was Nico schon schrieb,

Hintergrundbeleuchtung und Kontrast sind zwei verschiedene Dinge,
wie Kuchen backen und Arschbacken.

von Markus (Gast)


Lesenswert?

ja

trozdem will das ding nicht so wie ich will
hab nun mal den stromverbrauch zur beleuchtung gemssen
diese waren 53mA     laut datenblatt jedoch max 45mA
is mir immer noch rätselhaft warums nicht funkioniert

Den Code brauche ich nicht poste weil weinn ich ein anderes LCD 
anschließe funktioniert alles sofort

von Nico (nico123)


Lesenswert?

Anderes LCD -> andere Timings!
Oder ist es genau das Selbe?

von (prx) A. K. (prx)


Lesenswert?

Wenn ein HD44780-Display ist, dann sind die eigentlich immer gleich.

von Hmm (Gast)


Lesenswert?

>Wenn ein HD44780-Display ist, dann sind die eigentlich immer gleich.
Leider nicht. Es gibt manchmal subtile Unterschiede im Timing.
Hatten wir hier auch schon Threads über das Thema.

von Ingo (Gast)


Lesenswert?

Is deine VCC zu hoch? Wenn man ein 3,3V LCD mit 5V versorgt führt das zu 
dem von dir beschriebenen Effekt

von Markus (Gast)


Lesenswert?

Nein ist ein anderes LCD!

Und Laut datenblatt wird es mit 5V Versorgt

von routine (Gast)


Lesenswert?

Dann kann es aber auch am Code liegen!
Jedes Display hat einen eigenen Befehlssatz.
Dass Heißt, du musst die Routinen anpassen!

von Markus (Gast)


Lesenswert?

puh was heißt den das nun für mich?

"routinen" was wird dabei geändert? gruß

von Hmm (Gast)


Lesenswert?

Wenn ich mich mal kurz einmischen darf:

Du hast geschrieben, das Du schon vorher ein anderes Display mit dem 
selben Code erfolgreich betrieben hast.
Nun hast Du das andere Display und es geht nicht.
Dieses zweite Display ist ein  HD44780-kompatibles.

Wenn also auch das erste Display ein  HD44780-kompatibles ist, was Du 
leider nicht ausdrücklich geschrieben hast, dann liegt Dein Problem 
nicht in unterschiedlichen Befehlen. Das folgt gerade aus der 
Kompatibilität.

Andererseits gibt es, wie schon geschrieben, zwischen verschiedenen zwar 
HD44780-kompatiblen Displays dennoch gewisse Unterschiede im Timing. 
(Was dann zwar dem Terminus "kompatibel" widerspricht, aber das ist eben 
schon seit Jahrzehnten ein relativer Begriff).

von routine (Gast)


Lesenswert?

Naja hängt alles von dem Display ab.
Ich vermute mal, dass das Display (und auch das alte) über RS232 an dem 
uC hängt.

In dem Datenblatt wird es einen Abschnitt geben, was du dem Display 
schicken musst, um es zu initialieren, für einen Zeilenvorschub und 
ähnliches.

Woher hast du die Funktionen, die du für das alte Display benutzt?
Hast du die selbst geschrieben?

Die Funktionen müssen entsprechend dem Datenblatt angepasst werden.

Wenn du mit mehr Informationen rausrückst (Datenblatt, Schaltplan, 
etc.), kann man dir auch besser helfen.

von Hmm (Gast)


Lesenswert?

Kurz und gut: Um ganz sicher zu gehen, das man hier an den richtigen 
Schrauben dreht, solltest Du uns die Bezeichnug des Displays nennen, das 
mit diesem Code schon funktioniert hat.

Und poste doch bitte den Code.

von Markus (Gast)


Lesenswert?

Also

Das Alte Display mit dem es Funkitoniert heißt BT 21605 v1
Leider habe ich hierzu keine genauen Pläne

https://docs.google.com/viewer?a=v&q=cache:2XKWcUHvl-4J:www.qscomp.cz/Pdf/BT_21605_dm.pdf+&hl=de&gl=de&pid=bl&srcid=ADGEEShmtufLovhZ9l1i3-v2hXmOepvQGZEROiEUQL0OFCk24EY2-gqegf5WyR2ajCjV3H9hwYGo1pxzkF2LfwoNHkxS3EAkNyhby6KBGb5CK6qQdeGPQWNMfl7Wn0I2-8qyNypumix3&sig=AHIEtbTRJxS0bVs1RN_Hj2--XKQwywlZkQ

ich verwende die orignale lcd.h und habe derweitig nichts verändern
wenn ich genau abzüge von der lcd.h haben wollt schicke ich die euch 
gerne


Nun verwende ich das Display  EA DIP 162-D von Conrad

http://www.conrad.de/ce/de/product/181731/Alphanumerisches-Dotmatrix-LCD-Modul-zum-Einstecken-DIP162-DN3LW-Zeichenformat-2-x-16-Zeichenhoehe-668-mm-Blau-Weiss/SHOP_AREA_17651&promotionareaSearchDetail=005



int main()
{
uint16_t ADC_Messung1, ADC_Messung2;
char Umwandlung[20];
lcd_init(LCD_DISP_ON_CURSOR);       // Display initialisieren
lcd_puts("Spannung\n");             // Spannungnzeige
lcd_puts("Strom");                  // Stromverbauch
}

von Spess53 (Gast)


Lesenswert?

Hi

Erläre doch endlich mal wie du den Kontrastspannungseingang (Pin 3) 
beschaltet hast.

MfG Spess

von Hmm (Gast)


Lesenswert?

Und es wäre nett wenn Du endlich den verf... Code posten würdest. 
Bitte. Mit Zuckerguss. (was verd... nochmal ist an dieser Aufforderung 
nun nicht zu verstehen)?

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Hier die Bilder als bewei?

von Markus (Gast)


Lesenswert?

Hmm schrieb:
> Und es wäre nett wenn Du endlich den verf... Code posten würdest.
> Bitte. Mit Zuckerguss. (was verd... nochmal ist an dieser Aufforderung
> nun nicht zu verstehen)?

welchen verfickten code`?  steht doch oben!
was willst du genau sehen


Kontrast 2

Ich nehme 5V geh auf nen Widerstand 27kOhm der widerum geht auf nen 
poti..
anschluss(ganz rechts) dann  Mittelanzapfung (der in der Mitte) geht 
direkt auf VEE   linke anschluss von poti geht auf ground

von Hmm (Gast)


Lesenswert?

>steht doch oben!
Wo? Poste bitte einen Link auf eine Beitrag in diesem Thread wo Du den 
Code gepostet hast.

von Markus (Gast)


Lesenswert?

Markus schrieb:
> Also
>
> Das Alte Display mit dem es Funkitoniert heißt BT 21605 v1
> Leider habe ich hierzu keine genauen Pläne
>
> https://docs.google.com/viewer?a=v&q=cache:2XKWcUH...
>
> ich verwende die orignale lcd.h und habe derweitig nichts verändern
> wenn ich genau abzüge von der lcd.h haben wollt schicke ich die euch
> gerne
>
>
> Nun verwende ich das Display  EA DIP 162-D von Conrad
>
> http://www.conrad.de/ce/de/product/181731/Alphanum...
>
>
>
> int main()
> {
> uint16_t ADC_Messung1, ADC_Messung2;
> char Umwandlung[20];
> lcd_init(LCD_DISP_ON_CURSOR);       // Display initialisieren
> lcd_puts("Spannung\n");             // Spannungnzeige
> lcd_puts("Strom");                  // Stromverbauch
> }

hier ganz unten?
welchen code willst du ?
hier meine lcd.h fallst du diese brauchst




1
#ifndef LCD_H
2
#define LCD_H
3
/*************************************************************************
4
 Title  :   C include file for the HD44780U LCD library (lcd.c)
5
 Author:    Peter Fleury <pfleury@gmx.ch>  http://jump.to/fleury
6
 File:      $Id: lcd.h,v 1.13.2.2 2006/01/30 19:51:33 peter Exp $
7
 Software:  AVR-GCC 3.3
8
 Hardware:  any AVR device, memory mapped mode only for AT90S4414/8515/Mega
9
***************************************************************************/
10
11
/**
12
 @defgroup pfleury_lcd LCD library
13
 @code #include <lcd.h> @endcode
14
 
15
 @brief Basic routines for interfacing a HD44780U-based text LCD display
16
17
 Originally based on Volker Oth's LCD library,
18
 changed lcd_init(), added additional constants for lcd_command(), 
19
 added 4-bit I/O mode, improved and optimized code.
20
       
21
 Library can be operated in memory mapped mode (LCD_IO_MODE=0) or in 
22
 4-bit IO port mode (LCD_IO_MODE=1). 8-bit IO port mode not supported.
23
24
 Memory mapped mode compatible with Kanda STK200, but supports also 
25
 generation of R/W signal through A8 address line.
26
       
27
 @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury
28
 
29
30
*/
31
32
/*@{*/
33
34
#if (__GNUC__ * 100 + __GNUC_MINOR__) < 303
35
#error "This library requires AVR-GCC 3.3 or later, update to newer AVR-GCC compiler !"
36
#endif
37
38
#include <inttypes.h>
39
#include <avr/pgmspace.h>
40
41
/** 
42
 *  @name  Definitions for MCU Clock Frequency
43
 *  Adapt the MCU clock frequency in Hz to your target. 
44
 */
45
#ifndef F_CPU
46
  #error "F_CPU not defined, assumed clock frequency 1 MHz!"
47
  #define XTAL 1000000
48
#else
49
  #define XTAL F_CPU              /**< clock frequency in Hz, used to calculate delay timer */
50
#endif
51
52
53
/**
54
 * @name  Definition for LCD controller type
55
 * Use 0 for HD44780 controller, change to 1 for displays with KS0073 controller.
56
 */
57
#define LCD_CONTROLLER_KS0073 0  /**< Use 0 for HD44780 controller, 1 for KS0073 controller */
58
59
/** 
60
 *  @name  Definitions for Display Size 
61
 *  Change these definitions to adapt setting to your display
62
 */
63
#define LCD_LINES           2     /**< number of visible lines of the display */
64
#define LCD_DISP_LENGTH    16     /**< visibles characters per line of the display */
65
#define LCD_LINE_LENGTH  0x40     /**< internal line length of the display    */
66
#define LCD_START_LINE1  0x00     /**< DDRAM address of first char of line 1 */
67
#define LCD_START_LINE2  0x40     /**< DDRAM address of first char of line 2 */
68
#define LCD_START_LINE3  0x14     /**< DDRAM address of first char of line 3 */
69
#define LCD_START_LINE4  0x54     /**< DDRAM address of first char of line 4 */
70
#define LCD_WRAP_LINES      0     /**< 0: no wrap, 1: wrap at end of visibile line */
71
72
73
#define LCD_IO_MODE      1         /**< 0: memory mapped mode, 1: IO port mode */
74
#if LCD_IO_MODE
75
/**
76
 *  @name Definitions for 4-bit IO mode
77
 *  Change LCD_PORT if you want to use a different port for the LCD pins.
78
 *
79
 *  The four LCD data lines and the three control lines RS, RW, E can be on the 
80
 *  same port or on different ports. 
81
 *  Change LCD_RS_PORT, LCD_RW_PORT, LCD_E_PORT if you want the control lines on
82
 *  different ports. 
83
 *
84
 *  Normally the four data lines should be mapped to bit 0..3 on one port, but it
85
 *  is possible to connect these data lines in different order or even on different
86
 *  ports by adapting the LCD_DATAx_PORT and LCD_DATAx_PIN definitions.
87
 *  
88
 */
89
#define LCD_PORT         PORTC        /**< port for the LCD lines   */
90
#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
91
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
92
#define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
93
#define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
94
#define LCD_DATA0_PIN    4            /**< pin for 4bit data bit 0  */
95
#define LCD_DATA1_PIN    5            /**< pin for 4bit data bit 1  */
96
#define LCD_DATA2_PIN    6            /**< pin for 4bit data bit 2  */
97
#define LCD_DATA3_PIN    7            /**< pin for 4bit data bit 3  */
98
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
99
#define LCD_RS_PIN       0            /**< pin  for RS line         */
100
#define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
101
#define LCD_RW_PIN       1            /**< pin  for RW line         */
102
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
103
#define LCD_E_PIN        2            /**< pin  for Enable line     */
104
105
#elif defined(__AVR_AT90S4414__) || defined(__AVR_AT90S8515__) || defined(__AVR_ATmega64__) || \
106
      defined(__AVR_ATmega8515__)|| defined(__AVR_ATmega103__) || defined(__AVR_ATmega128__) || \
107
      defined(__AVR_ATmega161__) || defined(__AVR_ATmega162__)
108
/*
109
 *  memory mapped mode is only supported when the device has an external data memory interface
110
 */
111
#define LCD_IO_DATA      0xC000    /* A15=E=1, A14=RS=1                 */
112
#define LCD_IO_FUNCTION  0x8000    /* A15=E=1, A14=RS=0                 */
113
#define LCD_IO_READ      0x0100    /* A8 =R/W=1 (R/W: 1=Read, 0=Write   */
114
#else
115
#error "external data memory interface not available for this device, use 4-bit IO port mode"
116
117
#endif
118
119
120
/**
121
 *  @name Definitions for LCD command instructions
122
 *  The constants define the various LCD controller instructions which can be passed to the 
123
 *  function lcd_command(), see HD44780 data sheet for a complete description.
124
 */
125
126
/* instruction register bit positions, see HD44780U data sheet */
127
#define LCD_CLR               0      /* DB0: clear display                  */
128
#define LCD_HOME              1      /* DB1: return to home position        */
129
#define LCD_ENTRY_MODE        2      /* DB2: set entry mode                 */
130
#define LCD_ENTRY_INC         1      /*   DB1: 1=increment, 0=decrement     */
131
#define LCD_ENTRY_SHIFT       0      /*   DB2: 1=display shift on           */
132
#define LCD_ON                3      /* DB3: turn lcd/cursor on             */
133
#define LCD_ON_DISPLAY        2      /*   DB2: turn display on              */
134
#define LCD_ON_CURSOR         1      /*   DB1: turn cursor on               */
135
#define LCD_ON_BLINK          0      /*     DB0: blinking cursor ?          */
136
#define LCD_MOVE              4      /* DB4: move cursor/display            */
137
#define LCD_MOVE_DISP         3      /*   DB3: move display (0-> cursor) ?  */
138
#define LCD_MOVE_RIGHT        2      /*   DB2: move right (0-> left) ?      */
139
#define LCD_FUNCTION          5      /* DB5: function set                   */
140
#define LCD_FUNCTION_8BIT     4      /*   DB4: set 8BIT mode (0->4BIT mode) */
141
#define LCD_FUNCTION_2LINES   3      /*   DB3: two lines (0->one line)      */
142
#define LCD_FUNCTION_10DOTS   2      /*   DB2: 5x10 font (0->5x7 font)      */
143
#define LCD_CGRAM             6      /* DB6: set CG RAM address             */
144
#define LCD_DDRAM             7      /* DB7: set DD RAM address             */
145
#define LCD_BUSY              7      /* DB7: LCD is busy                    */
146
147
/* set entry mode: display shift on/off, dec/inc cursor move direction */
148
#define LCD_ENTRY_DEC            0x04   /* display shift off, dec cursor move dir */
149
#define LCD_ENTRY_DEC_SHIFT      0x05   /* display shift on,  dec cursor move dir */
150
#define LCD_ENTRY_INC_           0x06   /* display shift off, inc cursor move dir */
151
#define LCD_ENTRY_INC_SHIFT      0x07   /* display shift on,  inc cursor move dir */
152
153
/* display on/off, cursor on/off, blinking char at cursor position */
154
#define LCD_DISP_OFF             0x08   /* display off                            */
155
#define LCD_DISP_ON              0x0C   /* display on, cursor off                 */  c
156
#define LCD_DISP_ON_BLINK        0x0D   /* display on, cursor off, blink char     */
157
#define LCD_DISP_ON_CURSOR       0x0E   /* display on, cursor on                  */
158
#define LCD_DISP_ON_CURSOR_BLINK 0x0F   /* display on, cursor on, blink char      */
159
160
/* move cursor/shift display */
161
#define LCD_MOVE_CURSOR_LEFT     0x10   /* move cursor left  (decrement)          */
162
#define LCD_MOVE_CURSOR_RIGHT    0x14   /* move cursor right (increment)          */
163
#define LCD_MOVE_DISP_LEFT       0x18   /* shift display left                     */
164
#define LCD_MOVE_DISP_RIGHT      0x1C   /* shift display right                    */
165
166
/* function set: set interface data length and number of display lines */
167
#define LCD_FUNCTION_4BIT_1LINE  0x20   /* 4-bit interface, single line, 5x7 dots */
168
#define LCD_FUNCTION_4BIT_2LINES 0x28   /* 4-bit interface, dual line,   5x7 dots */
169
#define LCD_FUNCTION_8BIT_1LINE  0x30   /* 8-bit interface, single line, 5x7 dots */
170
#define LCD_FUNCTION_8BIT_2LINES 0x38   /* 8-bit interface, dual line,   5x7 dots */
171
172
173
#define LCD_MODE_DEFAULT     ((1<<LCD_ENTRY_MODE) | (1<<LCD_ENTRY_INC) )
174
175
176
177
/** 
178
 *  @name Functions
179
 */
180
181
182
/**
183
 @brief    Initialize display and select type of cursor
184
 @param    dispAttr \b LCD_DISP_OFF display off\n
185
                    \b LCD_DISP_ON display on, cursor off\n
186
                    \b LCD_DISP_ON_CURSOR display on, cursor on\n
187
                    \b LCD_DISP_ON_CURSOR_BLINK display on, cursor on flashing             
188
 @return  none
189
*/
190
extern void lcd_init(uint8_t dispAttr);
191
192
193
/**
194
 @brief    Clear display and set cursor to home position
195
 @param    void                                        
196
 @return   none
197
*/
198
extern void lcd_clrscr(void);
199
200
201
/**
202
 @brief    Set cursor to home position
203
 @param    void                                        
204
 @return   none
205
*/
206
extern void lcd_home(void);
207
208
209
/**
210
 @brief    Set cursor to specified position
211
 
212
 @param    x horizontal position\n (0: left most position)
213
 @param    y vertical position\n   (0: first line)
214
 @return   none
215
*/
216
extern void lcd_gotoxy(uint8_t x, uint8_t y);
217
218
219
/**
220
 @brief    Display character at current cursor position
221
 @param    c character to be displayed                                       
222
 @return   none
223
*/
224
extern void lcd_putc(char c);
225
226
227
/**
228
 @brief    Display string without auto linefeed
229
 @param    s string to be displayed                                        
230
 @return   none
231
*/
232
extern void lcd_puts(const char *s);
233
234
235
/**
236
 @brief    Display string from program memory without auto linefeed
237
 @param    s string from program memory be be displayed                                        
238
 @return   none
239
 @see      lcd_puts_P
240
*/
241
extern void lcd_puts_p(const char *progmem_s);
242
243
244
/**
245
 @brief    Send LCD controller instruction command
246
 @param    cmd instruction to send to LCD controller, see HD44780 data sheet
247
 @return   none
248
*/
249
extern void lcd_command(uint8_t cmd);
250
251
252
/**
253
 @brief    Send data byte to LCD controller 
254
 
255
 Similar to lcd_putc(), but without interpreting LF
256
 @param    data byte to send to LCD controller, see HD44780 data sheet
257
 @return   none
258
*/
259
extern void lcd_data(uint8_t data);
260
261
262
/**
263
 @brief macros for automatically storing string constant in program memory
264
*/
265
#define lcd_puts_P(__s)         lcd_puts_p(PSTR(__s))
266
267
/*@}*/
268
#endif //LCD_H

von Hmm (Gast)


Lesenswert?

Ja. Schon gut. Lass mal. Ich halt' mich 'raus. Viel Erfolg.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Warum lasst ihr es nicht einfach, es hat doch ueberhaupt keinen Sinn.
Man liest doch schon in den ersten paar Beitraegen das dieser Herr 
voellig beratungsresistent und ueberfordert ist.
Der Thread wird wieder 30 Seiten lang und rauskommen tut nbichts, weil 
der Herr Frager keine Fragen beantwortet.

Im Uebrigen, mal die Datenblaetter der beiden Displays genauer angesehen 
?

Und noch was. Wie bescheuert muss man sein 30.- fuer ein simples LCD 
auszugeben ? Vor allem wenn man keinerlei Plan hat was man da macht.
Bei Reichelt haette man dafuer 3 bekommen, in der Bucht 10 und beim 
Chinesen 30.

Zum Quelltext, ich wette der ist aus dem Tutorial. "hello world" oder 
sowas.

von Markus (Gast)


Lesenswert?

ja dann erklär mir warum bei einem display es funktioniert und warum bei 
den anderem nicht?

von Hmm (Gast)


Lesenswert?

Sag mal, wenn Dich jemand bittet ihm Dein Auto zu leihen, rollst Du dann 
auch den rechten Hinterreifen vor seine Haustür und fügst hinzu: Hier 
ist das Auto! Oder was meintest Du mit Auto?

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Und so Sinnvoll. Mit den Zeilenumbruechen sehr ueberschaubar. Man man. 
Ein Link hatte gereicht. Standard LCD.h

von Markus (Gast)


Lesenswert?

achja..
welchen code willst du ?
was soll darin stehen?
mein quellcode steht oben... dieser funktioniert bei dem BT 21605

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Markus schrieb:
> mein quellcode steht oben...

WO ? Muessen wohl alle hier Blind sein, nur Du nicht.

von Hmm (Gast)


Lesenswert?

Na ja. Grummel.

Jedenfalls, falls das wirklich die H-Datei ist mit der das alte Display 
lief, dann war auch das ein HD-Dings kompatibles. Die neueren mit dieser 
Bezeichnung haben den. Die älter'n wohl nicht, sondern ein KS0073. 
Siehe: Beitrag "Re: BT 21605 V1 Manual gesucht?"

Dann besteht die Möglichkeit das es geringe Abweichungen im Timing gibt, 
wie ich hier: Beitrag "Re: LCD Display funktioniert nicht" und 
einige Posts später noch einmal schrieb.

Wenn Du Glück hast, dann findest Du einen für dieses Display angepassten 
Code im Internet.

von Markus (Gast)


Lesenswert?

#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h"


int main()
{
uint16_t ADC_Messung1, ADC_Messung2;
char Umwandlung[20];
lcd_init(LCD_DISP_ON_CURSOR);       // Display initialisieren
lcd_puts("Spannung\n");             // Spannungnzeige
lcd_puts("Strom");                  // Stromverbauch
 }

was bitte ist das? der quellcode oder nicht?

ist nur ein kleinder auszug

von Hmm (Gast)


Lesenswert?

>achja..
>welchen code willst du ?
>was soll darin stehen?

Jetzt geb ich's endgültig auf.

Hast Du das hier gelesen?

>Sag mal, wenn Dich jemand bittet ihm Dein Auto zu leihen, rollst Du dann
>auch den rechten Hinterreifen vor seine Haustür und fügst hinzu: Hier
>ist das Auto! Oder was meintest Du mit Auto?

Ich rede von dem GESAMTEN code.

von Karl H. (kbuchegg)


Lesenswert?

Ich kann mir nicht helfen.
Die Bilder sehen ganz danach aus, als ob der Kontrast zu stark 
aufgedreht ist.


(Das ist die normale Fleury LCD Lib. Sag das doch einfach.
Und nein. Die Hintergrundbeleuchtung hat damit nicht das geringste zu 
tun. Die leuchtet entweder, oder sie leuchtet nicht)

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Ich kann mir nicht helfen.
> Die Bilder sehen ganz danach aus, als ob der Kontrast zu stark
> aufgedreht ist.

Garnicht. Guck Dir mal das linke und rechte Bild an. Das sieht nach 
Initialisierungsfehler aus.
Aber da das hier zu sehr nach Hellseherei geht, halt step by step. 
Obwohl ich persoenlich da garkeinen Bock drauf habe.

Markus schrieb:
> Ich nehme 5V geh auf nen Widerstand 27kOhm der widerum geht auf nen
> poti..
> anschluss(ganz rechts) dann  Mittelanzapfung (der in der Mitte) geht
> direkt auf VEE   linke anschluss von poti geht auf ground

Welchen Wert hat das Poti ?
Lass den Widerstand weg. Poti aeussere Pins auf 5V und GND, Schleifer 
auf Vo

Wenn Du das gemacht hast, meldest Dich wieder und berichtest "mit dem 
ganzen Auto".

Und danach programmierst Du mal ein Standard LCD Testprogramm a la 
Tutorial hier aus dem Forum.

https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Es muss auf jeden Fall erstmal gehen, das du mit deinem Kontrastpoti die 
Balken auch ganz wegdrehen kannst. Bei 5V Spannung und einem typischen 
HD44780 Display liegt die Kontrastspannung recht nah an 0 Volt für 
sichtbare Zeichen.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Schon im ersten Post steht, das das wohl der Fehler sein koennte. Aber 
er hoert ja nicht und misst lieber den Strom der Beleuchtung am 
"Briefkasten".

Markus schrieb:
> Ich nehme 5V geh auf nen Widerstand 27kOhm der widerum geht auf nen
> poti..

Was soll der Widerstand da eigentlich ? Wo im Web findet man solchen
Schwachsinn ? Ueblicherweise kommt da nur ein Trimmer (grob 10k - 50k) 
dran und evtl. noch ein Elko.
Zumindest an Bastel LCDs. Das vom Conrad ist schon ein 
Hochtemperaturdisplay, da reicht es den Kontrast einmal fest 
einzustellen wenn man den Wert kennt. Aber den kennst Du nicht, also 
muss ein Trimmer her.

von holger (Gast)


Lesenswert?

>> Ich kann mir nicht helfen.
>> Die Bilder sehen ganz danach aus, als ob der Kontrast zu stark
>> aufgedreht ist.
>
>Garnicht. Guck Dir mal das linke und rechte Bild an. Das sieht nach
>Initialisierungsfehler aus.

Karl Heinz hat recht.
Das Display ist initialisiert. Das sieht man daran
das die zweite Zeile auch den Balken bekommt.
Der Kontrast stimmt einfach nur nicht. Die Anzeige
ist ja schon rot statt vermutlich weiss.

von Spess53 (Gast)


Lesenswert?

Hi

>Was soll der Widerstand da eigentlich ? Wo im Web findet man solchen
>Schwachsinn ? Ueblicherweise kommt da nur ein Trimmer (grob 10k - 50k)
>dran und evtl. noch ein Elko.

Sieh mal ins Datenblatt des EA DIP162-D. Da steht es genau so drin. Und 
nicht nur in dem Datenblatt von Electronic Assembly.

MfG Spess

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

holger schrieb:
> Das Display ist initialisiert. Das sieht man daran
> das die zweite Zeile auch den Balken bekommt.

Ja, im ersten Bild und im Zweiten ?

> Der Kontrast stimmt einfach nur nicht. Die Anzeige
> ist ja schon rot statt vermutlich weiss.

Kann sein, aber Fotos von LCDs ist immer so eine Sache. Sehen wir das 
raus kommt wenn der Trimmer dran ist und er sich vielleicht mal meldet.

Spess53 schrieb:
> Sieh mal ins Datenblatt des EA DIP162-D.

Das ist aber doch nicht sein Display, also was soll denn der Unsinn 
jetzt ?

von Karl H. (kbuchegg)


Lesenswert?

Peter W. schrieb:
> holger schrieb:
>> Das Display ist initialisiert. Das sieht man daran
>> das die zweite Zeile auch den Balken bekommt.
>
> Ja, im ersten Bild und im Zweiten ?

Im zweiten Bild sehe ich in beiden Zeilen Balken.
Auch das ein Hinweis darauf, dass der Kontrast nicht stimmt.

Bei einem nicht initialisiertem LCD sieht man einen Balken in der ersten 
Zeile. Und zwar nur 1 Balken. Von der anderen Zeile sieht man im 
Idealfall gar nichts.

> Kann sein, aber Fotos von LCDs ist immer so eine Sache.

Das allerdings ist richtig.
Es ist allerdings kein Problem den Gegentest zu machen
(Warum kommen eigentlich immer die wenigsten Anfänger auf die Idee auch 
mal einen Gegentest zu machen? Datenleitungen abklemmen, sodass das LCD 
ganz sicher nicht initialisiert wird. Spannung drauf und dann den 
Kontrast so einstellen, dass man in der ersten Zeile die Balken sauber 
schwarz auf weiß sieht (oder welche Farbe auch immer) und sich in der 
zweiten Zeile noch nichts tut. Das sollte fürs erste eine 
Kontrasteinstellung sein, mit der man auf jeden Fall was sehen wird.

Dann alles wieder verkabeln und mal die Init drauf loslaufen lassen. 
Wenn es initialisierst, dann müsste man jetzt auf jeden Fall etwas vom 
Text sehen. Eventuell noch nicht optimial im Kontrast aber das lässt 
sich ja mit dem Poti noch nachkorrigieren.

>> Sieh mal ins Datenblatt des EA DIP162-D.
>
> Das ist aber doch nicht sein Display, also was soll denn der Unsinn
> jetzt ?

Äh. Doch.
Das ist genau das, welches er sich gekauft hat.

von Karl H. (kbuchegg)


Lesenswert?

Wobei ja auch nicht wirklich klar ist, was denn die beiden Bilder 
überhaupt darstellen. Vor der Initialisierung / danach ?

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
>>> Sieh mal ins Datenblatt des EA DIP162-D.
>>
>> Das ist aber doch nicht sein Display, also was soll denn der Unsinn
>> jetzt ?
>
> Äh. Doch.
> Das ist genau das, welches er sich gekauft hat.

Stimmt Da habe ich was verwechselt. Sry Spess

Eben, weil auf dem zweiten Bild der Kontrast ganz anders aussieht wie 
auf dem ersten Bild, naemlich nicht so roetlich, glaube ich eher an 
Initialisierungsprobleme. Aber da er sich jetzt wohl auf den Schlips 
getreten fuehlt und sich wohl nicht mehr meldet. Egal.

Karl Heinz Buchegger schrieb:
> Wobei ja auch nicht wirklich klar ist, was denn die beiden Bilder
> überhaupt darstellen. Vor der Initialisierung / danach ?

Auch wieder wahr. Also kein Stueck schlauer.

von holger (Gast)


Lesenswert?

Ich habe gerade mal so ein blau weisses Display von EA angeschlossen.
Ist zwar kein EA DIP162 sondern ein W162B, aber was solls.

Die Dinger sind extrem Blickwinkelabhängig.
Drehe ich den Kontrast voll auf ist erstmal alles weiss.
Je nach dem wie man das Display dreht kommt dann aber
auch gelb oder rot dabei raus. Schaut man direkt drauf
kann man den Text nicht lesen. Dreht man es ein bisschen
ist der Text zumindest zu sehen.

Ich geh jetzt davon aus das der Kontrast wohl nicht
das Problem ist. Fleury benutzt ja den Busy Check.
Ich könnte mir vorstellen das die RW Leitung nicht
richtig angeschlossen ist und das Programm dort klemmt.
Deshalb wird kein Text angezeigt. Die Initialisierung
wird ohne Busy Check gemacht und läuft deshalb durch.

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.