Forum: Mikrocontroller und Digitale Elektronik LCD Ansteuerung


von A. B. (developer_x)


Lesenswert?

Sehr geehrtes Forum,
ich habe jetzt schon seit 2 Tagen den Artikel
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD
durchgearbeitet, habe mich nun herangemacht, den Code an meinen
Mikrocontroller (ATMega48PA mit 1MHz Schwingungsfrequenz) angepasst.

Heute war es dann so weit, ich wollte das Programm mal starten, doch 
leider
passiert irgendwie nichts außer natürlich dass die Backlight Beleuchtung 
angeht.

Der Quellcode den Ich verwende ist folgender :
-----------------------------------------------------
1
.include "m48PAdef.inc"
2
 
3
; .def definiert ein Synonym (Namen) für ein µC Register
4
.def temp1 = r16
5
.def temp2 = r17
6
.def temp3 = r18
7
 
8
           ldi temp1, LOW(RAMEND)      ; LOW-Byte der obersten RAM-Adresse
9
           out SPL, temp1
10
           ldi temp1, HIGH(RAMEND)     ; HIGH-Byte der obersten RAM-Adresse
11
           out SPH, temp1
12
 
13
           ldi temp1, 0xFF    ; Port D = Ausgang
14
           out DDRD, temp1
15
 
16
           rcall lcd_init     ; Display initialisieren
17
           rcall lcd_clear    ; Display löschen
18
 
19
           ldi temp1, 'T'     ; Zeichen anzeigen
20
           rcall lcd_data
21
 
22
           ldi temp1, 'e'     ; Zeichen anzeigen
23
           rcall lcd_data
24
           
25
           ldi temp1, 's'     ; Zeichen anzeigen
26
           rcall lcd_data
27
 
28
           ldi temp1, 't'     ; Zeichen anzeigen
29
           rcall lcd_data
30
 
31
loop:
32
           rjmp loop
33
 
34
.include "lcd-routines.asm"            ; LCD-Routinen werden hier eingefügt
-----------------------------------------------------

Die Datei lcd-routines.asm ist natürlich die vom Tutorial.

Die Schaltung habe ich ebenso wie im Tutorial angegeben gemacht, mein 
LCD Display Modul ist folgendes : ADM1602K-NSR-FBS/3.3V
Das Datenblatt dazu gibt es hier :
ADM1602K-NSR-FBS/3.3V

Hat jemand eine Idee woran es liegen könnte, oder was ich falsch machen 
könnte?

Danke,
m.f.G. Developer_X

von Icke ®. (49636b65)


Lesenswert?

Mit welcher Betriebsspannung arbeitet die Schaltung?

von chris (Gast)


Lesenswert?

dreh mal am kontrast wenn nicht schon geschehen und wie siehts mit den 
datenpins aus? da die routine im 4bitmode arbeitet

von A. B. (developer_x)


Lesenswert?

Also ich kann mit meiner Schaltung mit 3V oder 5V arbeiten, habe 
natürlich beides ausprobiert, ohne dass es funktionierte, meine 
schaltung ist so wie im Tutorial beschrieben, d.h . :

1   VSS   GND (beim TC1602E: VCC)
2   VCC   +5 V (beim TC1602E: Gnd)
3   VEE   GND oder Poti
4   RS   PD4 am AVR
5   RW   GND
6   E   PD5 am AVR
7   DB0   nicht angeschlossen
8   DB1   nicht angeschlossen
9   DB2   nicht angeschlossen
10   DB3   nicht angeschlossen
11   DB4   PD0 am AVR
12   DB5   PD1 am AVR
13   DB6   PD2 am AVR
14   DB7   PD3 am AVR
15   A   Vorsicht! Meistens nicht direkt an +5 V abschließbar,
sondern nur über einen Vorwiderstand, der an die Daten
der Hintergrundbeleuchtung angepasst werden muss.
16   K   GND

Ich bin die Kontakte auch nochma durchgegangen, stimmt alles soweit

von A. B. (developer_x)


Angehängte Dateien:

Lesenswert?

Ich habe alle gnd pins (1,3,5) einfach an den gnd pin vom mc geklemmt,
und den vcc an den vcc vom mc.

Ich mein so soll das ja sein, anbei eine Fotographie der Schaltung :
ich hoffe daran könnt ihr vielleicht nen fehler in der verschaltung 
feststellen

Danke,
m.f.G. Developer_X

von Mosfred (Gast)


Lesenswert?

Hallo developer_X,
du hast doch bestimmt ein Oszi um mal nachzuschauen was da los ist.
Reichen deine Mikrocontroller-Erfahrungen aus, um auszuschließen,
dass der Controller falsch angeschlossen wurde?

Grüße, Fred

von Icke ®. (49636b65)


Lesenswert?

Kevin R. schrieb:
> Also ich kann mit meiner Schaltung mit 3V oder 5V arbeiten,

Dann schau nochmal ins Datenblatt deines LCDs, unter "9. Electrical 
Characteristics". Dort steht "Input Voltage VDD" -> Max. 3,5V

Außerdem...

> Ich habe alle gnd pins (1,3,5) einfach an den gnd pin vom mc geklemmt

...muß an Pin 3 des LCDs die Kontrastspannung angelegt werden (über Poti 
einstellbar). Wenn die fest auf GND liegt, siehst du nix.

von A. B. (developer_x)


Lesenswert?

>...muß an Pin 3 des LCDs die Kontrastspannung angelegt werden (über Poti
>einstellbar). Wenn die fest auf GND liegt, siehst du nix.

Ich hab jetzt Pin3 mal an VCC angeschlossen, da sieht man aber auch 
nichts.

>du hast doch bestimmt ein Oszi um mal nachzuschauen was da los ist.
>Reichen deine Mikrocontroller-Erfahrungen aus, um auszuschließen,
>dass der Controller falsch angeschlossen wurde?

Ich habe einen Multimeter und habe mehrmals geprüft, dass die verbindung 
zwischen mc und lcd stimmt, ich habe es ja auch hinbekommen den mc so 
anzuschließen, dass er per ISP programmiert werden kann, dann dürfte ich 
das ja eigentlich auch hinbekommen...

von Mosfred (Gast)


Lesenswert?

Ok, du scheinst keine größeren Erfahrungen zu haben.

Typische Probleme bei der LCD-Ansteuerung:
- Konstrastspannung (falls eingestellt -> man sieht nichts)
- Verwechslung 4-bit/8-bit Modus
- Timing falsch (Quartz/Fuses prüfen)
- Timing falsch (Quelltext prüfen, Initialisierung)

Hoffe das hilft dir.

von Electronics'nStuff (Gast)


Lesenswert?

Kevin R. schrieb:
> Ich hab jetzt Pin3 mal an VCC angeschlossen, da sieht man aber auch
> nichts.

Warum?
Dir wurde schon mal gesagt, dass da die Kontrastspannung hingehört.
Du siehst kein einziges Zeichen bei GND oder VCC, das Potentiometer da 
hat schon seinen Zweck!

von A. B. (developer_x)


Lesenswert?

OK, sorry, habe jetzt den Potentiometer genommen, sodass Pin 3 zu Pin 1 
zusätzlich ne Spannungsdifferenz von 1,45 Volt hat, bei 3V 
Betriebsspannung

Da sieht man aber immer noch nichts,
noch ne Idee woran es liegen könnte?

Im Tutorial bspw. heißt es, dass wenn man zumindest Spannung an alles 
dranschließen würde, wenigstens ein Balken zu sehen sein sollte, was bei 
mir aber irgendwie auch nciht der Fall ist...

von Icke ®. (49636b65)


Lesenswert?

Kevin R. schrieb:
> Ich hab jetzt Pin3 mal an VCC angeschlossen, da sieht man aber auch
> nichts.

Ja logisch. Durchlesen bitte:

http://www.sprut.de/electronic/lcd/index.htm#strom

von A. B. (developer_x)


Lesenswert?

Das ist der Code aus der LCD routines :
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                 LCD-Routinen                ;;
3
;;                 ============                ;;
4
;;              (c)andreas-s@web.de            ;;
5
;;                                             ;;
6
;; 4bit-Interface                              ;;
7
;; DB4-DB7:       PD0-PD3                      ;;
8
;; RS:            PD4                          ;;
9
;; E:             PD5                          ;;
10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11
 
12
.def temp2 = r22
13
.def temp3 = r23
14
 
15
.equ LCD_PORT = PORTD
16
.equ LCD_DDR  = DDRD
17
.equ PIN_RS   = 4
18
.equ PIN_E    = 5
19
20
.ifndef XTAL
21
.equ XTAL = 1000000
22
.endif
23
24
 ;sendet ein Datenbyte an das LCD
25
lcd_data:
26
           push  temp2
27
           push  temp3
28
           mov   temp2, temp1            ; "Sicherungskopie" für
29
                                         ; die Übertragung des 2.Nibbles
30
           swap  temp1                   ; Vertauschen
31
           andi  temp1, 0b00001111       ; oberes Nibble auf Null setzen
32
           sbr   temp1, 1<<PIN_RS        ; entspricht 0b00010000
33
           in    temp3, LCD_PORT
34
           andi  temp3, 0x80
35
           or    temp1, temp3
36
           out   LCD_PORT, temp1         ; ausgeben
37
           rcall lcd_enable              ; Enable-Routine aufrufen
38
                                         ; 2. Nibble, kein swap da es schon
39
                                         ; an der richtigen stelle ist
40
           andi  temp2, 0b00001111       ; obere Hälfte auf Null setzen 
41
           sbr   temp2, 1<<PIN_RS        ; entspricht 0b00010000
42
           or    temp2, temp3
43
           out   LCD_PORT, temp2         ; ausgeben
44
           rcall lcd_enable              ; Enable-Routine aufrufen
45
           rcall delay50us               ; Delay-Routine aufrufen
46
47
           pop   temp3
48
           pop   temp2
49
           ret                           ; zurück zum Hauptprogramm
50
 
51
 ; sendet einen Befehl an das LCD
52
lcd_command:                            ; wie lcd_data, nur ohne RS zu setzen
53
           push  temp2
54
           push  temp3
55
56
           mov   temp2, temp1
57
           swap  temp1
58
           andi  temp1, 0b00001111
59
           in    temp3, LCD_PORT
60
           andi  temp3, 0x80
61
           or    temp1, temp3
62
           out   LCD_PORT, temp1
63
           rcall lcd_enable
64
           andi  temp2, 0b00001111
65
           or    temp2, temp3
66
           out   LCD_PORT, temp2
67
           rcall lcd_enable
68
           rcall delay50us
69
 
70
           pop   temp3
71
           pop   temp2
72
           ret
73
 
74
 ; erzeugt den Enable-Puls
75
lcd_enable:
76
           sbi LCD_PORT, PIN_E          ; Enable high
77
           nop                          ; 3 Taktzyklen warten
78
           nop
79
           nop
80
           cbi LCD_PORT, PIN_E          ; Enable wieder low
81
           ret                          ; Und wieder zurück                     
82
 
83
 ; Pause nach jeder Übertragung
84
delay50us:                              ; 50us Pause
85
           ldi  temp1, ( XTAL * 50 / 3 ) / 1000000
86
delay50us_:
87
           dec  temp1
88
           brne delay50us_
89
           ret                          ; wieder zurück
90
 
91
 ; Längere Pause für manche Befehle
92
delay5ms:                               ; 5ms Pause
93
           ldi  temp1, ( XTAL * 5 / 607 ) / 1000
94
WGLOOP0:   ldi  temp2, $C9
95
WGLOOP1:   dec  temp2
96
           brne WGLOOP1
97
           dec  temp1
98
           brne WGLOOP0
99
           ret                          ; wieder zurück
100
 
101
 ; Initialisierung: muss ganz am Anfang des Programms aufgerufen werden
102
lcd_init:
103
           push  temp1
104
           in    temp1, LCD_DDR
105
           ori   temp1, (1<<PIN_E) | (1<<PIN_RS) | 0x0F
106
           out   LCD_DDR, temp1
107
108
           ldi   temp3,6
109
powerupwait:
110
           rcall delay5ms
111
           dec   temp3
112
           brne  powerupwait
113
           ldi   temp1,    0b00000011   ; muss 3mal hintereinander gesendet
114
           out   LCD_PORT, temp1        ; werden zur Initialisierung
115
           rcall lcd_enable             ; 1
116
           rcall delay5ms
117
           rcall lcd_enable             ; 2
118
           rcall delay5ms
119
           rcall lcd_enable             ; und 3!
120
           rcall delay5ms
121
           ldi   temp1,    0b00000010   ; 4bit-Modus einstellen
122
           out   LCD_PORT, temp1
123
           rcall lcd_enable
124
           rcall delay5ms
125
           ldi   temp1,    0b00101000   ; 4 Bot, 2 Zeilen
126
           rcall lcd_command
127
           ldi   temp1,    0b00001100   ; Display on, Cursor off
128
           rcall lcd_command
129
           ldi   temp1,    0b00000100   ; endlich fertig
130
           rcall lcd_command
131
132
           pop   temp1
133
           ret
134
 
135
 ; Sendet den Befehl zur Löschung des Displays
136
lcd_clear:
137
           push  temp1
138
           ldi   temp1,    0b00000001   ; Display löschen
139
           rcall lcd_command
140
           rcall delay5ms
141
           pop   temp1
142
           ret
143
144
 ; Cursor Home
145
lcd_home:
146
           push  temp1
147
           ldi   temp1,    0b00000010   ; Cursor Home
148
           rcall lcd_command
149
           rcall delay5ms
150
           pop   temp1
151
           ret
152
153
 ; Einen konstanten Text aus dem Flash Speicher
154
 ; ausgeben. Der Text wird mit einer 0 beendet
155
lcd_flash_string:
156
           push  temp1
157
158
lcd_flash_string_1:
159
           lpm   temp1, Z+
160
           cpi   temp1, 0
161
           breq  lcd_flash_string_2
162
           rcall  lcd_data
163
           rjmp  lcd_flash_string_1
164
165
lcd_flash_string_2:
166
           pop   temp1
167
           ret
168
169
 ; Eine Zahl aus dem Register temp1 dezimal ausgeben
170
lcd_number:
171
           push  temp1
172
           push  temp2
173
           push  temp3
174
175
           mov   temp2, temp1
176
                                  ; abzählen wieviele Hunderter
177
                                          ; in der Zahl enthalten sind
178
           ldi   temp1, '0'
179
lcd_number_1:
180
           subi  temp2, 100
181
           brcs  lcd_number_2
182
           inc   temp1
183
           rjmp  lcd_number_1
184
                                          ;
185
                                          ; die Hunderterstelle ausgeben
186
lcd_number_2:
187
           rcall lcd_data
188
           subi  temp2, -100              ; 100 wieder dazuzählen, da die
189
                                          ; vorherhgehende Schleife 100 zuviel
190
                                          ; abgezogen hat
191
192
                                          ; abzählen wieviele Zehner in
193
                                          ; der Zahl enthalten sind
194
           ldi   temp1, '0'
195
lcd_number_3:
196
           subi  temp2, 10
197
           brcs  lcd_number_4
198
           inc   temp1
199
           rjmp  lcd_number_3
200
201
                                          ; die Zehnerstelle ausgeben
202
lcd_number_4:
203
           rcall lcd_data
204
           subi  temp2, -10               ; 10 wieder dazuzählen, da die
205
                                          ; vorhergehende Schleife 10 zuviel
206
                                          ; abgezogen hat
207
208
                                          ; die übrig gebliebenen Einer
209
                                          ; noch ausgeben
210
           ldi   temp1, '0'
211
           add   temp1, temp2
212
           rcall lcd_data
213
214
           pop   temp3
215
           pop   temp2
216
           pop   temp1
217
           ret
218
219
; eine Zahl aus dem Register temp1 hexadezimal ausgeben
220
lcd_number_hex:
221
           push  temp1
222
223
           swap  temp1
224
           andi  temp1, $0F
225
           rcall lcd_number_hex_digit
226
227
           pop   temp1
228
           push  temp1
229
230
           andi  temp1, $0F
231
           rcall lcd_number_hex_digit
232
233
           pop   temp1
234
           ret
235
236
lcd_number_hex_digit:
237
           cpi   temp1, 10
238
           brlt  lcd_number_hex_digit_1
239
           subi  temp1, -( 'A' - '9' - 1 )
240
lcd_number_hex_digit_1:
241
           subi  temp1, -'0'
242
           rcall  lcd_data
243
           ret

Das ist die Hauptdatei :
1
.include "m48PAdef.inc"
2
 
3
; .def definiert ein Synonym (Namen) für ein µC Register
4
.def temp1 = r16
5
.def temp2 = r17
6
.def temp3 = r18
7
 
8
           ldi temp1, LOW(RAMEND)      ; LOW-Byte der obersten RAM-Adresse
9
           out SPL, temp1
10
           ldi temp1, HIGH(RAMEND)     ; HIGH-Byte der obersten RAM-Adresse
11
           out SPH, temp1
12
 
13
           ldi temp1, 0xFF    ; Port D = Ausgang
14
           out DDRD, temp1
15
 
16
           rcall lcd_init     ; Display initialisieren
17
           rcall lcd_clear    ; Display löschen
18
 
19
           ldi temp1, 'T'     ; Zeichen anzeigen
20
           rcall lcd_data
21
 
22
           ldi temp1, 'e'     ; Zeichen anzeigen
23
           rcall lcd_data
24
           
25
           ldi temp1, 's'     ; Zeichen anzeigen
26
           rcall lcd_data
27
 
28
           ldi temp1, 't'     ; Zeichen anzeigen
29
           rcall lcd_data
30
31
loop:
32
           rjmp loop
33
34
.include "Lcd-routines.asm"            ; LCD-Routinen werden hier eingefügt

von Icke ®. (49636b65)


Lesenswert?

K. R. schrieb:
> Im Tutorial bspw. heißt es, dass wenn man zumindest Spannung an alles
> dranschließen würde, wenigstens ein Balken zu sehen sein sollte, was bei
> mir aber irgendwie auch nciht der Fall ist...

Das ist schon mal schlecht. Das LCD muß bei angelegter Betriebsspannung 
und richtig eingestelltem Kontrastpoti zumindest auf einer Zeile 
schwarze Kästchen anzeigen. Also teste das. Zieh den µC temporär aus dem 
Steckbrett raus, damit das LCD nicht angesteuert wird. Lege die 
Betriebsspannung an und drehe LANGSAM am Poti, bis sich auf dem Display 
was tut. Die richtige Stellung ist erreicht, wenn die Kästchen geradeso 
satt schwarz sind.

von erik (Gast)


Angehängte Dateien:

Lesenswert?

... noch mal zum LCD-Anschluss inc. Poti s. Anhang (zur 
Prinzipverdeutlichung)

von A. B. (developer_x)


Lesenswert?

Also ich habe jetzt nur folgende Pins am LCD verbunden :

Pin1 ; GND
Pin2 ; VCC
Pin3 ; V am Poti, ich hab den dabei auch mehrmals mit Drehen rumprobiert
Pin5 ; GND

Und es sind trotzdem keine Balken zu erkennen!

Aber warum?

Ich kann mir gar nicht vorstellen, dass der schon kaputt ist, habt ihr 
da zufällig ne idee wie man das testen kann?

von Uwe (de0508)


Lesenswert?

Hallo,

bei 3,3V LCD benötigt man noch eine negative Hilfsspannung für Vee !

Das steht aber auch immer im Datenblatt des LCD, man muss es nur lesen.

von A. B. (developer_x)


Lesenswert?

Wo soll denn da Vee sein, geh den Artikel nochmal durch, da gibt es kein 
Vee, !

von Uwe (de0508)


Lesenswert?

Das ist Pin3 und wird wohl bei Dir als V0 Bezeichnet, in meinen Layouts 
ist die Bezeichnung halt anders.

von A. B. (developer_x)


Lesenswert?

Da steht da braucht man ne negative hilfsspannung, aber das mach ich 
doch mit dem poti, und zwar ist das bei mir Vee , also V0 die 
Kontrastspannung, die sich ja von den andere unterscheiden muss...

Auch wenn ich die anschlüsse des poti vertausche und dann das rad drehe 
kommt es trotzdem zu keinen balken...

von Icke ®. (49636b65)


Lesenswert?

Uwe S. schrieb:
> bei 3,3V LCD benötigt man noch eine negative Hilfsspannung für Vee !
>
> Das steht aber auch immer im Datenblatt des LCD, man muss es nur lesen.

An welcher Stelle des Datenblatts steht, daß die Kontrastspnnung negativ 
sein muß? Vielleicht bin ich blind, aber ich kann das dort nicht 
rauslesen.

http://www.sparkfun.com/datasheets/LCD/ADM1602K-NSR-FBS-3.3v.pdf

von Icke ®. (49636b65)


Lesenswert?

K. R. schrieb:
> Ich kann mir gar nicht vorstellen, dass der schon kaputt ist

Das geht in der Tat schneller, als du dir vorstellen kannst. Einmal GND 
und VCC vertauscht reicht schon. Oder GND nicht angeschlossen und 
Display trotzdem angesteuert. Gerade auf dem Steckbrett passiert sowas 
schnell.

Welchen Widerstandswert hat das Poti? Der Schleifer ist mit dem 
Kontrastpin verbunden und die anderen beiden mit GND bzw. VCC?

von A. B. (developer_x)


Lesenswert?

D.h. ein LCD ist empfindlicher als ein MC? (So ein MC kann echt ne Menge 
mit machen) und ganz ehrlich, ich kann mich nicht entsinnen jemals 
vorher irgendwas am display gemacht zu haben, der widerstandswert des 
Poti beträgt :
100k025M

von Spess53 (Gast)


Lesenswert?

Hi

>der widerstandswert des Poti beträgt : 100k025M

Etwas groß. Lt. Datenblatt sollten es 10...20k sein.

MfG Spess

von A. B. (developer_x)


Lesenswert?

Kommt es nicht am Ende darauf an, dass eine Spannung rauskommt, die so 
zwischen 0 und 3V bzw. 0 und -3V liegt? Ich habe da 1,5, perfekt in der 
Mitte, ist doch egal oder nicht?


Ich habe nur einen Poti zuhause^^ sorry aber die habe ich vorher noch 
nit benutzt.

Es muss also ein 10...20k sein. ?

Danke,
m.f.G: Developer_X

von Icke ®. (49636b65)


Lesenswert?

K. R. schrieb:
> D.h. ein LCD ist empfindlicher als ein MC?

Jedes elektronische Baulelement kann kaputt gehen, wenn es außerhalb 
seiner Grenzwerte betrieben wird.

> Kommt es nicht am Ende darauf an, dass eine Spannung rauskommt, die so
> zwischen 0 und 3V bzw. 0 und -3V liegt? Ich habe da 1,5, perfekt in der
> Mitte, ist doch egal oder nicht?

Perfekt ist die Spannung, die genau zum Display paßt. Und deswegen nimmt 
man ein Poti, damit man die Spannung einstellen kann. Wenn sie 
unabhängig von der Schleiferstellung immer bei 1,5V bleibt, dann ist das 
Poti falsch angeschlossen. Möglicherweise hast du eines mit 
Mittelanzapfung. Sind da evtl. mehr als 3 Anschlüsse dran?

von A. B. (developer_x)


Lesenswert?

Ich habe 3 anschlüsse, 2 auf der einen, 1 auf der anderen seite, ich 
dachte mir :
an die 2, schließe ich die + und - an, und an der dritten kommt das raus 
das ich will, den verbinde ich dann mit dem VSS bin, also V0.

Die Spannung (ist ja was zwischen zwei Punkten) zwischen dem V0 bin mit 
dem VCC Pin und dem GND Pin ist bei 1,5V.

(Also die Elektropotentialdifferenz)

von Icke ®. (49636b65)


Lesenswert?

K. R. schrieb:
> Die Spannung (ist ja was zwischen zwei Punkten) zwischen dem V0 bin mit
> dem VCC Pin und dem GND Pin ist bei 1,5V.

Ändert sich diese Spannung, wenn du am Poti drehst?

von Spess53 (Gast)


Lesenswert?

Hi

>Die Spannung (ist ja was zwischen zwei Punkten) zwischen dem V0 bin mit
>dem VCC Pin und dem GND Pin ist bei 1,5V.

>(Also die Elektropotentialdifferenz)

Du solltest deinen Text vor dem Abschicken noch mal durchlesen.

Das, was allgemein als 'Kontrastspannung' bezeichnet wird, ist die 
Stromversorgung des eigentlichen Displays. Daraus werden die 
verschiedenen Spannungen für die Ansteuerung der Zeilen und Spalten 
erzeugt.

Bei deinem Display werden für VDD-V0 3V angegeben. Das wären also, gegen 
GND gemessen, 0,3V an V0.

MfG Spess

von A. B. (developer_x)


Lesenswert?

>Ändert sich diese Spannung, wenn du am Poti drehst?

JA

>>Die Spannung (ist ja was zwischen zwei Punkten) zwischen dem V0 bin mit
>>dem VCC Pin und dem GND Pin ist bei 1,5V.

>>(Also die Elektropotentialdifferenz)

>Du solltest deinen Text vor dem Abschicken noch mal durchlesen.
Sorry, ich meinte dass wenn ich V0 mit VCC die Spannung messe, dass da 
1,5 V sind, bzw. V0 und GND.

>Das, was allgemein als 'Kontrastspannung' bezeichnet wird, ist die
>Stromversorgung des eigentlichen Displays. Daraus werden die
>verschiedenen Spannungen für die Ansteuerung der Zeilen und Spalten
>erzeugt.
Danke für die Erklärung, ich bin noch Anfänger... :)

>Bei deinem Display werden für VDD-V0 3V angegeben. Das wären also, gegen
>GND gemessen, 0,3V an V0.
Ja, aber wenn ich an meinem Poti drehe, während der Strom fließt, kommt 
es kein einziges Mal zu einem Aufleuchten dieser legendären Balken...

von Icke ®. (49636b65)


Lesenswert?

K. R. schrieb:
> Ja, aber wenn ich an meinem Poti drehe, während der Strom fließt, kommt
> es kein einziges Mal zu einem Aufleuchten dieser legendären Balken...

Dann ist das LCD wahrscheinlich defekt. Falls du Ersatz kaufst, nimm 
besser ein 5V-Modell.

von Spess53 (Gast)


Lesenswert?

Hi

>Dann ist das LCD wahrscheinlich defekt. Falls du Ersatz kaufst, nimm
>besser ein 5V-Modell.

Der Controller (ST7066) des Displays verträgt bis 5,5V. Ich würde es 
erst mal mit einem passenden Poti versuchen.

MfG Spess

von Philipp L. (philipp_l89)


Lesenswert?

ST7066 or equivalent...einer meiner Lieblingssätze bei LCDs...versuch an 
ein geeignetes Poti ran zu kommen! An meinem LCD war es so, dass die 
ungenutzten Datenpins gegen GND geschaltet werden mussten, bei ein paar 
anderen müssen sie gegen HIGH geschaltet werden! Da es sich um ein 
Sparkfun-Teil handelt sollte aber eigentlich in irgendeinem der 
gefühlten 20K Sparkfun Foren was finden lassen!

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.