PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wiedermal eine LCD Frage



meddie
30.09.2011, 10:24
Hallo Leute ich habe ein Problemchen:

Ich habe RN-Control 1.4, ein LCD vom Pollin LCD YL 162-90 16x2 Und ein RN Adapter Wannenstecker auf Steckklemmen.
Link zum Pollin Datenblatt:
http://www.pollin.de/shop/downloads/D120060D.PDF
Und hier noch eins:

20156

So nun wirds kompliziert, zumindestens für mich. Ich habe das Display wie folgt angeschlossen:

Pin1 GND am RN Adapter
Pin2 +5V am RN Adapter
Pin3 Leer
Pin4 auf Pin6 RN Adapter
Pin5 Leer
Pin6 auf Pin5 RN Adapter
Pin7 Leer
Pin8 Leer
Pin9 Leer
Pin10 Leer
Pinn11 auf Pin1 RN Adapter
Pinn12 auf Pin2 RN Adapter
Pinn13 auf Pin3 RN Adapter
Pinn14 auf Pin4 RN Adapter
Pinn15 +5V am RN Adapter

Der RN Adapter ist mit dem PortB verbunden
(gerade beim Tippen ist mir jetzt was aufgefallen. Am RN Adapter sind es Pin0-Pin7 und Im Bascom Pin1-bis Pin8 dann bin ich um ein Pin verschoben oder?)

Ich habe kein Poti dram um Kontrast zu regeln.

Eigentlich sollte doch auf dem Display Hallo Welt erscheinen. Aber das Display bleibt leer kein cursor kein Zeichen nur die Hintergrundbeleuchtung leuchtet.
Kann mir da jemand helfen bitte.
Und das ist mein Bascom Code:


Declare Sub Zufallszahlperseriellsenden()
'Declare Sub Motortest()
'Declare Sub Lauflicht()
'Declare Sub Showporta()
'Declare Sub Showdigitalporta()
Declare Function Tastenabfrage() As Byte

$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32

Dim I As Integer
Dim N As Integer
Dim Ton As Integer
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Lcdmode = Port
Cls
Locate 1 , 1
Lcd "Hallo Welt"
Const Ref = 5 / 1023 'Für Batteriespannungsberechnung
Dim Taste As Byte
Dim Volt As Single
I = 0
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print
Print "**** RN-CONTROL 1.4 *****"
Print "Eddies Test und Lernprogramm"
Print
Do


Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
Call Zufallszahlperseriellsenden 'Batteriespannung 'Taste 1 Zeigt Bateriespannung über RS232 an
Case 2
Call Zufallszahlperseriellsenden 'Motortest 'Taste 2 Motoren beschleunigen und abbremsen
Case 3
Call Zufallszahlperseriellsenden 'Lauflicht 'Einige Male Lauflicht über LEDs anzeigen.
'Am I2C-Port darf in diesem Moment nichts angeschlossen sein
Case 4
Call Zufallszahlperseriellsenden 'Showporta 'Zeigt Messwerte an allen Port A PINs
Case 5
Call Zufallszahlperseriellsenden 'Showdigitalporta 'Zeigt digitalen I/O Zustand von PA0 bis PA5 an

End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End

'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
If Ws < 500 Then
Select Case Ws
Case 400 To 450
Tastenabfrage = 1
Ton = 550
Case 330 To 380
Tastenabfrage = 2
Ton = 500
Case 260 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 90 To 130
Tastenabfrage = 5
Ton = 350
' Case Else
' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If

End Function

Sub Zufallszahlperseriellsenden()
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
A = Rnd(100)
B = Rnd(100)
C = Rnd(100)
D = Rnd(100)
Print Val(a) ; ";" ; Val(b) ; ";" ; Val(c) ; ";" ; Val(d) ; ";"
End Sub



































'(

'dieser Abschnitt kommt oben nach Dim Vvolt rein
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
'Diese Unterfunktion zeigt Batteriespannung an
Sub Batteriespannung()
Local W As Word
Start Adc
W = Getadc(6)
Volt = W * Ref
Volt = Volt * 5.2941
Print "Die aktuelle Spannung beträgt: " ; Volt ; " Volt"
End Sub
'Testet Motoren und Geschwindigkeitsreglung
Sub Motortest()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 0 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN

I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 1023
Wait 1
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
End Sub

' Einige Male Lauflicht über LEDs anzeigen. Am I2C-Port darf in diesem
' Moment nichts angeschlossen sein
Sub Lauflicht()
Config Portc = Output
Portd = 0
For N = 1 To 10
For I = 0 To 7
Portc.i = 0
Waitms 100
Portc.i = 1
Next I
Next N
Config Portc = Input
End Sub

'Zeigt die analogen Messwerte an Port A an
Sub Showporta()
Local Ws As Word
Config Porta = Input
For I = 0 To 5 ' Alle internen Pullup Widerstände ein, bis auf Batteriespannungsmessungsport
Porta.i = 1
Next I
Print
Print "Ermittelte Messwerte an Port A:"
For I = 0 To 7 ' Alle Eingänge inkl. messen
Start Adc
Ws = Getadc(i)
Volt = Ws * Ref
Print "Pin " ; I ; " ADC-Wert= " ; Ws ; " bei 5V REF waeren das " ; Volt ; " Volt"
Next I
End Sub

'Zeigt den Zustand einiger freier I/O von Die Analogen Messwerte An Port A An
Sub Showdigitalporta()
Local Zustand As String * 6
Config Porta = Input
For I = 0 To 5 ' Alle internen Pullup Widerstände ein, bis auf Batteriespannungsmessungsport
Porta.i = 1
Next I
Print
Print "Ermittelter I/O Zustand Port A:"
For I = 0 To 5 ' Alle Eingänge inkl. messen
If Pina.i = 1 Then
Zustand = "High"
Else
Zustand = "Low"
End If
Print "Pin " ; I ; " I/O Zustand= " ; Pina.i ; " " ; Zustand
Next I
End Sub


')

Hubert.G
30.09.2011, 11:39
Ohne Poti wirst du nichts sehen, zumindest 1k nach GND geben.
Pin5 gehört auf GND

meddie
30.09.2011, 12:06
Hallo Hubert, was meinst Du genau mit dem 1k nach GND. Vom Pin3 auf GND?

Hubert.G
30.09.2011, 12:31
Ja, 1k von Pin3 nach GND. Ein 10k Poti wäre aber besser, das mit dem Widerstand funktioniert nicht bei allen LCD.
Pin5 ist R/W des LCD und gehört, wenn es wie in deinem Fall nicht vom µC her belegt ist, ebenfalls auf GND.

meddie
04.10.2011, 21:05
Hallo Hubert,

habe heute nochmal probiert aber leider ohne erfolg. Das Display zeigt nichts an.

Gruß Eddie

Kampi
04.10.2011, 22:33
Sicher das das LCD auch so angeschlossen ist wie du es im Programm deklariert hast?

meddie
05.10.2011, 21:55
Sciher bin ich mir nicht, drum frage ich hier. :-)

Ich habe mal ein paar Fotos gemacht und habe mal die Kabel markiert. Ich hoffe man kann hier die Anschlüße nachvollziehen.

http://www.fam-markus.de/fotoforum/mc/1.jpg
http://www.fam-markus.de/fotoforum/mc/2.jpg

http://www.fam-markus.de/fotoforum/mc/3.jpg
http://www.fam-markus.de/fotoforum/mc/4.jpg
http://www.fam-markus.de/fotoforum/mc/5.jpg

Bei Pin 3 bei dem grünen Kabel dort ist ein 1k Widerstand eingelötet. Das ist auf dem Foto etwas schwer erkennbar.

Kampi
05.10.2011, 22:07
Mess die Leitungen mal mit einem Multimeter durch und prüfe ob das Display so angeschlossen ist wie du es im Programm festlegst.

Rone
05.10.2011, 22:49
Hallo!


Zuallererst die Lötstellen nachbessern!!!!!!


MfG
Rone

dussel07
05.10.2011, 23:56
Wenn Du tatsächlich das oben abgebildete LCD hast brauchst Du eine negative Kontrastspannung (-2,5V) an Pin3.