mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik welches LCD passt zum LCD Tutorial


Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute! Ich grüsse Euch!

Hat Jemand vieleicht Erfahrungen mit diesem interessanten Tutorial???
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Ich möchte für mein kleines Projekt ein LCD ansteuern. Es soll aber 
nicht mehr Arbeit machen als bis her.

LCD (Zeilen x Zeichen 4x20). Controller (ATmega32)

Kann mir da Jemand was empfehlen was garantiert zu diesem Tutorial 
passt?
Ohne die Initialisierungszeiten etc. zu ändern. Es soll einfach laufen!
Auf welches LCD ist dieses Tutorial zugeschnitten??? (Reichelt / Pollin)

Ich habe Beiträge gelesen, in denen doch die Kompatibilität zwischen dem 
HD44780 und KS0066 in Frage gestellt wird.

Bitte nicht falsch verstehen. Ich bin nicht faul, habe aber genug Ärger 
mit dem Rest des Projektes...

Wäre für einpaar Tips sehr dankbar.

Vielen Dank

Autor: Vorname Nachname (logout-name)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn du nach Tutorial vorgehst, dann führt das sicher zum Erfolg.
Ich würde ein LCD mit HD44780-Controller nehmen, damit funktionierts 
ganz sicher!
Viel Erfolg

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könntest Du mit vielleicht ein Modell nennen (mit Bestellnummer) mit dem
es totsicher funktioniert?
Hat es bei dir auch funktioniert?
Wäre sehr dankbar für diese Hilfe.

Danke

Autor: Vorname Nachname (logout-name)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, es hat bei mir auch funktioniert.
Wenn du mir noch sagst wo du normalerweise bestellst, kann ich mal 
schauen ob ich eines finde, welches ich schon erfolgreich getestet habe. 
Ich kann dir aber versprechen (aber keine Geld zurück Garantie) wenn du 
es so machst wie im Tutorial beschrieben und das LCD o.g. Controller 
hat, dass es funktioniert. Bei mir hats auf jeden Fall immer geklappt.

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist mir egal wo ich das LCD bestelle.( Conrad, Pollin, Reichelt)
Hauptsache das LCD funktioniert mit dem Tutorial ohne dass ich am Code 
was verändern muss.

Was für ein Display hast du? Wo hast du das gekauft?

Danke für Deine Antworten.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einsteiger wrote:

> Ich habe Beiträge gelesen, in denen doch die Kompatibilität zwischen dem
> HD44780 und KS0066 in Frage gestellt wird.

Ja, KS0066 und HD44780 funktionieren nicht identisch. Für das Tutorial 
sollte die kompatibilität aber locker langen. Jedenfalls sind die 
meisten Fehler, die hier gemacht werden, Verkabelungsfehler oder 
timingprobleme durch falsche Taktung.

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Niels.

Hast DU schon mal ein 4x20 LCD zum laufen gebracht?
Ich weiss nicht was für ein Display ich kaufen soll?

Gruss

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P.S.

Ist das Tutorial nicht für ein 2 Zeiliges LCD geschrieben?

lg

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einsteiger wrote:

> Hast DU schon mal ein 4x20 LCD zum laufen gebracht?
> Ich weiss nicht was für ein Display ich kaufen soll?

Ja, habe ich.
Aber im Prinzip ist es für die Ansteuerung ziemlich belanglos, ob du ein 
zwei- oder ein vier zeiliges Display hast. Bei Reichelt sollte unter der 
Artikelnummer "LCD-MODUL 16X4" etwas passendes auftauchen.

Für den Anfang empfehle ich vieleicht doch, ein kleineres Display zu 
nehmen, da diese günstiger sind, falls du dich mal verlöten solltest. 
Das kommt bei den ersten Experimenten schonmal vor. "LCD 162C" ist z.B. 
mit knapp 7€ super günstig.

Wie ich bereits sagte, für die prinzipielle Ansteuerrung ist es 
unerheblich, ob das Display 4 oder 2 Zeilen hat. Später kannst du 
einfach das Display austauschen und mit wenigen Handgriffen die Code 
ganz leicht anpassen.

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einsteiger wrote:
> Könntest Du mit vielleicht ein Modell nennen (mit Bestellnummer) mit dem
> es totsicher funktioniert?

Huhu ;)
Schau mal hier:

http://www.reichelt.de/?;ACTION=2;LA=2;GROUP=A523;...

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Michael.
Ich melde mich heute abend noch mal. Bis dahin schasue ich mir das ding 
an..

DANKE

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal kurz!

Welches LCD von den vielen???

Kann mir jemand eine ganaue Bestellnummer nennen???

Grüsse

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einsteiger wrote:
> Kann mir jemand eine ganaue Bestellnummer nennen???

Mach mal die Augen auf. In meinem Posting hatte ich zwei bestellnummern 
genannt.

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK Leute.

Ich habe mir nun folgendes LCD gekauft:

- DEM 20485 SYH-LY
- LCD Controller LSI KS0066
- 4x20

Datenblatt : 
http://www.soselectronic.ro/a_info/resource/d/dem/...

Ich werde mich gleich morgen an die Arbeit machen und das LCD nach 
diesem
Tutorial anschliessen :

http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Ich hoffe Ihr werdet mich einbißchen unterstützen!

Bis dahin danke ich Euch für Eure Hilfe!
(Ich werde es schön dokumentieren und Online stellen damit Anfänger wie 
ich
Euch in Zukunft nicht mit solchen Fragen belästigen)

P.S. Habe ich überhaupt das Richtige LCD gekauft???


Liebe Grüsse

Autor: xXx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
der ganze Krempel den es bei Reichelt gibt an Displays (2*16 usw.) geht 
da, ist sowas wie "Industriestandard".

Autor: Einsteiger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich bin´s wieder!

Wie versprochen habe ich jetzt alles laut diesem Tutorial verdrahtet:
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Es tut sich überhaupt nichts :o(  NATÜRTLICH NICHT...
Klar habe ich mir gedanken gemacht und kam zu dem Ergebnis, dass
dieses Tutorial für den HD44780-Controller erstellt worden ist.

Im Klartext: Die Initialisierung des LCD´s kommt erst garnicht zustande.

Mein LCD benötigt folgende Initialisierung (sehe Anhang)

Leider bin ich (noch) nicht fähig ohne Hilfe diese Initialisierung auf
mein LCD umzuschreiben.


Original aus dem Tutorial :

...
void lcd_init(void)
{
   LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN);   // Port auf 
Ausgang schalten

   // muss 3mal hintereinander gesendet werden zur Initialisierung

   _delay_ms(15);
   LCD_PORT &= 0xF0;
   LCD_PORT |= 0x03;
   LCD_PORT &= ~(1<<LCD_RS);      // RS auf 0
   lcd_enable();

   _delay_ms(5);
   lcd_enable();

   _delay_ms(1);
   lcd_enable();
   _delay_ms(1);

   // 4 Bit Modus aktivieren
   LCD_PORT &= 0xF0;
   LCD_PORT |= 0x02;
   lcd_enable();
   _delay_ms(1);

   // 4Bit  2 Zeilen  5x7
   lcd_command(0x28);

   // Display ein  Cursor aus  kein Blinken
   lcd_command(0x0C);

   // inkrement / kein Scrollen
   lcd_command(0x06);

   lcd_clear();
}
...

Kann bitte mir jemand helfen ??? Wie kann ich die lcd_init Funktion auf
mein LCD unter Einhaltung der richtigen Reihenfolge und Zeiten 
umschreiben???

Für kleine und große Hilfe danke ich Euch vielmals.

Liebe Grüsse

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einsteiger wrote:

> Für kleine und große Hilfe danke ich Euch vielmals.

Zu wenig relevante informationen.
Bitte erstelle einen Vollständigen verdrahtungsplan und hänge den 
kompletten Code an. Welchen Microcontroller auf welchen Board verwendest 
du?

Du Beschreibst, daß sich garnichts tut. Das kann eigentlich nicht sein. 
Nach dem Einschalten des Displays sollten zumindest zwei schwarze Balken 
in Reihe eins und drei sichtbar sein.

Autor: Einsteiger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Niels.
Du hast Recht.


Meine Hardware :
-----------------------------------------
- Atmel Evaluationsboard Version 2.0.1
- ATMega32 Controller
- DEM 20485 SYH-LY

Meine Software :
-----------------------------------------
- AVR Studio
- PonyProg

(Es sollte alles in C programmiert werden)

Meine Kenntnisse :
-----------------------------------------
- Anfänger


Verdrahtung :
-----------------------------------------


ATMEGA32 :
----------

1  Vss  GND
2  Vcc  5V
3  Vee  GND
4  RS  PD4
5  RW  GND
6  E  PD5
7  DB0  offen
8  DB1  offen
9  DB2  offen
10  DB3  offen
11  DB4  PD0
12  DB5  PD1
13  DB6  PD2
14  DB7  PD3


Code :
-------------------------------------------

aus diesem Tutorial...
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Funktion :
-------------------------------------------

Beim Einschalten zeigen sich in der 1. und 3. Zeile waagerechte Balken
s. Anhang

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir Jemand vielleicht die lcd_init Funktion erläutern?
Wie funktioniert das?

Mit dem Tutorial komme ich nicht wirklich zurecht...

Danke im voraus.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einsteiger wrote:

> Mit dem Tutorial komme ich nicht wirklich zurecht...

Wie gut kannst du C? Schon irgendwelche Vorerfahrungen?
Hast du einen Testcode mal ausprobiert, ob der Controller generell 
überhaupt Code ausführt? (zb. in dem man eine LED blinken lässt)

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Niels.

Ja klar. So ein Anfänger bin ich auch noch nicht.
Controller funktioniert auf jeden fall.
Am Port_C ist eine Lichtschranke angeschlossen. (Die Funktion ist da)
Zustand der Lichtschranke derzeit durch eine LED signalsiert.

Soweit alles ok.

Ich möchte einfach nur bezwecken dass mein LCD eine Meldung ausgibt,
wenn die Lichtschranke verdeckt ist...
Einfach ist gut...

Ich komme mit der Initialisierung des LCD´s nicht zu recht.

Gruss

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das häufiste Problem beim Ansteuern eines LCDisplays ist ein falsches 
Timing. Hast du F_CPU korrekt gesetzt?

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja 8 MHz wie im Tutorial.

Die Fuses habe ich wie folgt gesetz.(s. Anhang)

Aber das ist nicht das Problem (denke ich)

Die Initialisierung bei dem KS0066-Controller unterscheidet sich von dem 
KS0070 aus dem Tutorial.
( 
http://www.mikrocontroller.net/attachment/37946/4-... 
)

Und das bekomme ich nicht hin. Die Erfahrung fehlt mir leider.

Kannst Du sowas programmieren???

Gruss

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eine 1:1 umsetzung dieser inits wäre wohl:
lcd_init()
{
  LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN);   
 
   
   _delay_ms(40);
   LCD_PORT &= 0xF0;
   LCD_PORT &= ~(1<<LCD_RS);      // RS auf 0
   LCD_PORT |= 2;
   lcd_enable();
   lcd_enable();
   LCD_PORT &= 0xF0;
   LCD_PORT |= 0x0C;  // N und F auf "1"
   lcd_enable();
   _delay_ms(1);
   LCD_PORT &= 0xf0;
   lcd_enable();
   LCD_PORT |= 0x0F;   // D,C und B auf "1"
   lcd_enable();
   _delay_ms(1);
   LCD_PORT &= 0xF0;
   lcd_enable();
   LCD_PORT |= 0x01;    // display-Clear
   lcd_enable ();   
   _delay_ms(5);        // 5ms warten bis display ok
   LCD_PORT &= 0xF0;
   lcd_enable();
   LCD_PORT |= 0x06;    // I/D="1"  SH="0"
   lcd_enable();   
}

falls das nicht funzt, verlänger mal die delays in der function 
lcd_enable().... grössere Wartenzeiten können nie schade...

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werde es gleich ausprobieren.


Bin echt gespannt. Wenn das klappt dann bist du echt gut.

Bis gleich!!!!!!!!!!!!!!!!!!!

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will dir ja nicht die Hoffnung nehmen, aber ich rechne nicht damit, 
daß es daran liegt. Eigentlich tun die Display-Controller sich alle 
nichts.

Ich würde an deiner Stelle eher nochmal die Verkabelung checken und 
sicherstellen, daß der Mega32 tatsächlich auch mit 8Mhz läuft.

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also.
Es funktioniert nicht.

ABER. Bevor ich eine falsche Diagnose stelle, werde ich erstmal 
ausgiebig
eine fehlersuche durchführen...

Ferner werde ich etwas mit den Zeiten herumspielen...

Ich melde mich sobald ich alles durch habe.

Vielen, vielen Dank erstmal !

Liebe Grüsse

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vieleicht läufts ja damit:

Beitrag "LCD Ansteuerung im 4bit-Modus"

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry Niels.
Wir müssen das ganze auf die nächsten Tage verschieben.

Habe den Atmega32 dank ponyprog (und meines Unwissens) gesperrt.

Muss erstmal einen neuen bestellen.

Aber ich komme wieder. GANZ BESTIMMT.

Ich mache mich bemerkbar. Denke spätestens am mittwoch

Danke erstmal

und vielen dank

Autor: Einsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Niels!

Wollte nur Bescheid geben, daß mich Deine Hilfe zum Erfolg geführt hat!

Super vielen Dank!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.