Forum: Mikrocontroller und Digitale Elektronik LCD Initialisierung funktioniert nicht


von SNK (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
Ich soll mithilfe eines analogen Temperatursensor die Temperatur auf dem 
lcd Displays ausgeben. Doch auf dem Display kommt nichts aus. Ich hab 
zum testen "Lcd4_Write_String("Test");" eingefügt aber am Display kam 
trotzdem nichts an. Ich glaub mein LCD Display initialisiert nicht 
richtig aber ich weiß nicht warum. Die Initialisierung ist aber glaub 
richtig weil meine Klassenkameraden es genau so gemacht haben. Ich bin 
ein Anfänger und kenn mich so gut wie gar nicht damit aus. Wäre nett 
wenn mir jemand helfen könnte.

Ich nutze ein ATMEGA328P
LCD Display: LCD1602

von Stefan F. (Gast)


Lesenswert?

Wenn der Code bei anderen Funktioniert würde ich mal die Hardware 
überprüfen.

Mit einem Logic-Analyzer kann man bequem alle Leitungen gleichzeitig 
kontrollieren und deren Spannungsverläufe als Zeit-Diagramm darstellen.

von Teo D. (teoderix)


Lesenswert?

Zeig mal den Aufbau!

von Stefan F. (Gast)


Lesenswert?

Reduziere dein Hauptprogramm auf einen minimalen Test, damit du dich 
alleine auf die Kommunikation mit dem Display konzentrieren kannst.
1
Lcd4_Init();                
2
Lcd4_Clear();
3
Lcd4_Set_Cursor(1,0);
4
Lcd4_Write_String("Test");

Dann fällt dir wahrscheinlich auf, dass du vergessen hast, die I/O Pins 
als Ausgang zu konfigurieren (im DDRx Register).

Ich sehe "DDRD = 0xff" aber da fehlen noch die beiden Leitungen von Port 
B. Außerdem musst du das vor der Initialisierung des Displays machen.

von Pandur S. (jetztnicht)


Lesenswert?

Standardmaessig muss man nach dem Reset Command sehr lange warten, 
hunderte von Milisekunden.

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

sind da

#define D4 eS_PORTD4
#define D5 eS_PORTD5
#define D6 eS_PORTD6
#define D7 eS_PORTD7
#define RS eS_PORTB1
#define EN eS_PORTB2

die Leitungen des LCDs wirklich angeschlossen?


Alleine dieser Teil hier

void pinChange(int a, int b)

verkompliziert das Programm so weit, daß man wohl einige der Schüler 
bereits hier scheitern läßt.


mfG

von Cartman (Gast)


Lesenswert?

Man sollte im Fredtitel das [*uino] nicht weglassen.
Da haette ich mir das Lesen sparen koennen.

von Stefan F. (Gast)


Lesenswert?

Cartman schrieb:
> Man sollte im Fredtitel das [*uino] nicht weglassen.

Es hat aber mit Arduino nichts zu tun!

von Andreas S. (Gast)


Lesenswert?

Ich weiß ja nicht in welche Klasse/Schule Du gehst oder wie alt
Du bist. Von den nicht bekannten Vorkenntnissen mal abgesehen.
In der library.txt wurde erwähnt "//LCD Functions Developed by 
electroSome" Also würde ich auf deren Seite:
https://electrosome.com/interfacing-lcd-arduino-uno/
das Beispiel umsetzen und mein LCD incl. Verdratung testen.
Die LiquidCrystal.h findest Du im Web oder Du kannst diese auch direkt 
über
die Arduino IDE importieren.
Wenn dass alles "passt" und Dein LCD in Ordnung ist,dann setze Dein 
eigenes Programm um und bringe es "zum laufen".

von Andreas S. (Gast)


Lesenswert?

Noch eine Frage: warum einen analogen Sensor ?
Sensoren mit I2C + fertige Libs incl. erprobte Beispiele gibt es
im Web mehr als genug.

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

SNK schrieb:
> LCD1602

Hi,
Pinout überprüfen.
Es kursieren viele "162 1602 etc. pp.
Kleine Unterschiede in der Belegung.
Und von oben gesehen oder von unten gesehen.
Dann nimm einmal eine gängige LCDisplay-Initialisierungsroutine.
Das 1602 ist sowas von gängig, das ist kein Exot, der eine Extrawurst 
braucht...

ciao
gustav

: Bearbeitet durch User
von Cartman (Gast)


Lesenswert?

> Es hat aber mit Arduino nichts zu tun!

Ja richtig. Dann wuerde man es mit I2C ansteuern.

von SNK (Gast)


Lesenswert?

Danke, genau das war mein Fehler

von Stefan F. (Gast)


Lesenswert?

SNK schrieb:
> Danke, genau das war mein Fehler

Was war der Fehler? Sicher nicht die I²C Sache im Beitrag davor.

von Christian S. (roehrenvorheizer)


Lesenswert?

SNK schrieb:
> Danke, genau das war mein Fehler

Es geht hier nicht genau darum, den Erkenntsisdurst des geneigten 
Publikums zu stillen.

mfG

Beitrag #6928110 wurde von einem Moderator gelöscht.
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.