Forum: Mikrocontroller und Digitale Elektronik Display geht immernoch nicht.


von 321x45 (Gast)


Angehängte Dateien:

Lesenswert?

Hi,
Ich habe einfach mal einen neuen Thread aufgemacht da der andere schon 
etwas voll ist und es hier um ein anderes "Testprojekt" geht.

Wie schon gesagt, das Display zeigt nichts an, nur die 
Hintergrundbeleuchtung.

Ich habe mir jetzt ein Projekt aus dem Internet gesucht , womit ich 
testen wollte, ob das Display was ausgibt.

Link: 
http://www.code2impress.com/2013/04/how-to-make-digital-watch-with-16x2-lcd.html

Benutzt habe ich meinen ATMega8 und das Display wie im Schaltplan 
angeschlossen, dazu VCC und GND angeschlossen.

Den internen Takt habe ich auf 1Mhz gestellt und einfach die .Hex Datei 
übertragen. Muss man noch etwas einstellen, damit man PortC freigibt 
oder so? Wie z.B Jtag bei AtMega16 ?

Falls jemand irgendein Programm etc. hat wo er sagt "hiermit muss das 
Display 100% was Anzeigen" dann wäre es nett, wenn ich es zum testen 
haben könnte...

Ich habe jetzt noch ein Bild hinzugefügt, wie ich das Display 
angeschlossen habe, ich habe es noch nicht verlötet, da es eig. in eine 
fertige Platine eingebaut werden soll. KÖnnte dort der Fehler liegen?

Vielen Dank!

von Ewiger Gast (Gast)


Lesenswert?

321x45 schrieb:
> Ich habe einfach mal einen neuen Thread aufgemacht da der andere schon
> etwas voll ist und es hier um ein anderes "Testprojekt" geht.
Deswegen musst du den doch nicht gleich mit einem gefühlten 6 
Bildschirme großen Bild eröffnen.

Was sollen diese halb sichtbaren Kabel zur Lösung deines Problems 
beitragen?

von 321x45 (Gast)


Lesenswert?

Vllt, dass die Verkabelung "wackelig" ist und somit kein Kontakt 
entsteht?

Wenn du eine Lösung für mein Problem hast, dann nenn Sie mir einfach , 
statt rumzumeckern...

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Glaube kaum, dass diese "Steckverbindung" funktionieren kann.

von Mirco C. (Firma: s@Td) (mcontroller)


Lesenswert?

Hallo,

wenn die Kontakte nur durchgesteckt wurden kann dadurch natürlich ein 
Fehler entstehen. Wenn der Kontakt in einer Datenphase unterbrochen wird 
kommen die Daten fehlerhaft an.

Abhilfe -> festlöten

Wenn es dann nicht funktioniert:

- Passt der Code zu deinem Display-Controller (nicht der mega8)?
- Code selber übersetzen und schauen ob/was passiert

von Otto (Gast)


Lesenswert?

321x45 schrieb:
> Vllt, dass die Verkabelung "wackelig" ist und somit kein Kontakt
> entsteht?
>
das kannst nur du prüfen.....

1. Weshalb hast du den Aufbau nicht so fotografiert, dass man alles 
sieht?
2. Weshalb hast du für den Anschluss desselben nicht "passende" Farben 
verwendet?
3. Wo ist der Schaltplan auf den du dich beziehst?

von 321x45 (Gast)


Angehängte Dateien:

Lesenswert?

Der Schaltplan und das C Programm mit den lcd routinen ist auf der 
Internetseite. Aber kann ich gerne hochladen.
Schaltplan und main programm füge ich auch hinzu.

Hab alles so eben nochmal aufgebaut.

Wahrscheinlich muss ich es wohl doch mit löten versuchen.. Naja solche 
Displays kosten ja bei Ebay nicht die Welt.

von SW (Gast)


Lesenswert?

Kauf dir eine Stiftleiste im 2,54mm-Raster und löte die ein. Sowas kann 
man im Zweifel auch wieder auslöten....

von 321x45 (Gast)


Lesenswert?

Ich löte die Kabel dran, lohnt sich nicht stiftleisten zu kaufen und 
dazu dann 5€ Versand...

von Thomas D. (thomasderbastler)


Lesenswert?

Man kann viel erkennen...Stecken etwa dir Steckbrücken lose im Display ?

Wenn Ja - So wirds nix
Wenn Nein, ...ich sehe nichts..

von Otto (Gast)


Lesenswert?

1. An RESET fehlt ein 10k Pull-up
2. Das Programm erwartet ein Display an port d - du hast es an c 
angeschlossen

von 321x45 (Gast)


Lesenswert?

Ich bin nach der Seite gegangen, und dort steht ja, dass der LCD auf 
PORTC angeschlossen wird.
Hab wie gesagt nur die .hex datei übertragen, nichts komplimiert.

von Otto (Gast)


Lesenswert?

Dann sieh mal in die von dir angehangene lcd.h

von Dietrich L. (dietrichl)


Lesenswert?

Otto schrieb:
> 2. Das Programm erwartet ein Display an port d - du hast es an c
> angeschlossen

Hinweis für 321x45:
Entweder so verdrahten, wie es lcd.h angegeben ist oder lcd.h ändern.
Übrigens:
1
#define F_CPU 1000000UL
sollte immer vor
1
#include <util/delay.h>
stehen (auch wenn es hier nicht stört, da der Default-Wert auch 1MHz 
ist).

Gruß Dietrich

von 321x45 (Gast)


Lesenswert?

So habe nun Kabel an das Display gelötet werde nun lcd.h von PortB auf 
PortC ändern und das Programm kompilieren übertragen und testen. Ich 
gebe dann bescheid!

von Rudolph (Gast)


Lesenswert?

321x45 schrieb:
> Muss man noch etwas einstellen, damit man PortC freigibt
> oder so? Wie z.B Jtag bei AtMega16 ?

Der M8 hat keinen JTAG, also nein.

von Dietrich L. (dietrichl)


Lesenswert?

321x45 schrieb:
> werde nun lcd.h von PortB auf PortC ändern

Aber Du achtest auch auf die Bitposition der einzelnen Leitung? Nur
1
#define LCD_PORT         PORTD
 ändern reicht nicht ;-(

von 321x45 (Gast)


Lesenswert?

So ernüchternes Ergebnis: Es wird nur der Balken angezeigt, wenn das 
Poti auf Linksanschlag ist.

Wie soll ich nun vorgehen? in der lcd.h hab ich von PORTB auf PORTC 
umgestellt.

von 321x45 (Gast)


Lesenswert?

Der Balken wird aber nicht blass sondern sehr deutlich angezeigt. Bevor 
ich das Display an ein Mc angeschlossen habe, war der Balken nur schwach 
erkennbar

von Jupp (Gast)


Lesenswert?

Meine Fresse....

Versuch halt zu verstehen wie das LCD und  der Code funktioniert!

Gehirn einschalten und Datenblatt lesen.

Jupp

von 321x45 (Gast)


Lesenswert?

Oh ich hab gar nicht die Nachricht von Dietrich gelesen, wie mache ich 
das denn?

Sind die BItpositionen (4-7) nicht schon korrekt?

von Magic S. (magic_smoke)


Lesenswert?

Stimmt der Schaltplan so mit dem Aufbau überein? Ich hoffe nicht.

Was ist mit AVcc? Nicht angeschlossen? Abblockkondensatoren??

von Thomas D. (thomasderbastler)


Lesenswert?

Vom C habe ich keine Ahnung, offentsichlich hat der Junge etwas 
geflasht, wo der Code OK ist. Also kann es nur an seine Verdrahtung 
liegen...???

Solche enorme probleme mit einer LCd habe schon lange nicht gesehen 
hier..

von 321x45 (Gast)


Lesenswert?

Ups AVCC hab ich ja ganz vergessen...

Angeschlossen, selber Fehler...

Abblockkondensatoren sind auch dran.

Wie gesagt es soll nur zum testen der LCD dienen.

von Thomas D. (thomasderbastler)


Lesenswert?

321x45 schrieb:
> Wie gesagt es soll nur zum testen der LCD dienen.

Nach meiner Meinung nach wenn es um testen geht sollte sowas im LCd 
sichbar sein :

Hallo
World

Ich tippe auf Verdrahtung.Schau mal die wichtigste Leitung an.
4,5,6 und 11,12,13,14 noch mal....besonders ob die RS/RWE mit dem Code 
übereinstimmen, Normaleweise RW ist nach GND

LCD-Pin 1  (VSS)      -->  GND
LCD-Pin 2  (VDD)      -->  5 V Versorgungsspannung
LCD-Pin 3  (Kontrast) -->  z.B. Poti/Trimmer für Kontrasteinstellung
LCD-Pin 4  (RS)       -->  an einen Pin des ATmega8 (z.B. PORTD.2)
LCD-Pin 5  (R/W)      -->  GND
LCD-Pin 6  (E)        -->  an einen Pin des ATmega8 (z.B. PORTD.3)
LCD-Pin 7  (D0)       -->  im 4-Bit Modus nach GND schalten
LCD-Pin 8  (D1)       -->  im 4-Bit Modus nach GND schalten
LCD-Pin 9  (D2)       -->  im 4-Bit Modus nach GND schalten
LCD-Pin 10 (D3)       -->  im 4-Bit Modus nach GND schalten
LCD-Pin 11 (D4)       -->  an einen Pin des ATmega8 (z.B. PORTD.4)
LCD-Pin 12 (D5)       -->  an einen Pin des ATmega8 (z.B. PORTD.5)
LCD-Pin 13 (D6)       -->  an einen Pin des ATmega8 (z.B. PORTD.6)
LCD-Pin 14 (D7)       -->  an einen Pin des ATmega8 (z.B. PORTD.7)
LCD-Pin 15 (HG-Bel.)  -->  siehe Datenblatt
LCD-Pin 16 (HG-Bel.)  -->  siehe Datenblatt

von spess53 (Gast)


Lesenswert?

Hi

>LCD-Pin 7  (D0)       -->  im 4-Bit Modus nach GND schalten
>LCD-Pin 8  (D1)       -->  im 4-Bit Modus nach GND schalten
>LCD-Pin 9  (D2)       -->  im 4-Bit Modus nach GND schalten
>LCD-Pin 10 (D3)       -->  im 4-Bit Modus nach GND schalten

Erzähle anderen Anfängern nicht so einen Mist. Die Datenpins sowie RS 
und R/W haben integrierte Pull-Up-Widerstände. Also offen lassen.

MfG Spess

von Thomas D. (thomasderbastler)


Lesenswert?

Nun so nebenbei bemerkt...meine erste Schritte habe ich von hier geholt.
Es hat ALLES ohne Probleme gefunzt...

http://halvar.at/elektronik/kleiner_bascom_avr_kurs/lcd_textanzeige/

von 321x45 (Gast)


Lesenswert?

Ich habe es jetzt einfach mal mit dem aus dem Tutorial getestet...

Immernoch nur schwarze Balken. Die Frequenz ist auf 8Mhz eingestellt und 
halt lcd-routines.h und lcd-routines.c eingefügt..

Ich bin echt mit meinem Latein am Ende :/

von spess53 (Gast)


Lesenswert?

Hi

>Nun so nebenbei bemerkt...meine erste Schritte habe ich von hier geholt.
>Es hat ALLES ohne Probleme gefunzt...

>http://halvar.at/elektronik/kleiner_bascom_avr_kur...

Du glaubst auch jeden Sch..., der im Internet steht. Durch den Anschluss 
an Masse hast du mindestens eine erhöhte Stromaufnahme. Bei Verwendung 
des Statusregistern noch ganz andere Probleme.

Wenn schon hart auf einen Pegel legen, dann auf VCC.

MfG Spess

von Thomas D. (thomasderbastler)


Lesenswert?

spess53 schrieb:
> Du glaubst auch jeden Sch...,

glaube nicht unbedingt....aber vielleicht bin ja doof, aber alle seine 
Schaltungen , wie schon gesagt funzten.

Nach seiner Erklärung habe ich die Grundsteine gelernt, und bis heute 
bestimmt 20 Projekte mit LCD gemacht...hatte nie ein Problem..

Ok, wenn Ihr bessere Vorschläge für den Jungen habt, ziehe mal zurück. 
Bin gespannt.

: Bearbeitet durch User
von Paul Baumann (Gast)


Lesenswert?

Spess schrub:
>Du glaubst auch jeden Sch..., der im Internet steht.

Ich gebe zu bedenken, daß ich diese Maßnahme (Do-D3 hart auf Masse)
auch schon erlebt habe. Das war ein Display aus einer Telefonanlage,
was dort drin auch schon so verdrahtet war und um's Verrecken nicht
ohne diese 4 Verbindungen funktionierte.

Wir haben es mit Elektronik zu tun -da darf Einen Nichts wundern...
;-)

MfG Paul

@Autor
Hast Du mal ein völlig anderes Programm, was zum Bleistift nur eine LED
blinken läßt ausprobiert? Nur, um sicherzugehen, daß sich der Kontroller
"anständig benimmt"?

von Thomas D. (thomasderbastler)


Lesenswert?

Paul Baumann schrieb:
> Hast Du mal ein völlig anderes Programm, was zum Bleistift nur eine LED
> blinken läßt ausprobiert?

Evtl. kann ein C Profi ihn eine HEX File geben mit Hallo World, er hat 
doch eine LCD Anzeige

von Paul Baumann (Gast)


Lesenswert?

Thomas schrob:
>....er hat doch eine LCD Anzeige

Ach?!
Das ist mir nicht entgangen -ich möchte herausfinden, ob der Kontroller
überhaupt richtig bzw. mit dem richtigen Takt läuft. Das sieht man mit
einem Blinkprogramm noch am Allerbesten. Wenn das Timing nicht stimmt,
zeigt ihm sein Display dann nämlich auch nichts an.

MfG Paul

von 321x45 (Gast)


Lesenswert?

Leider habe ich keine Blinkschaltung momentan parat.

Und ich weiß ehrlich gesagt echt nicht mehr was ich machen soll...

Ich habe den inneren Takt auf 8Mhz gestellt. Und im Bsp Programm aus dem 
Tutorial einfach auf 8Mhz geändert. Die dort angebene Frequenz kann man 
ja ohne Quarz nicht einstellen.

von Eumel (Gast)


Lesenswert?

321x45 schrieb:
> Leider habe ich keine Blinkschaltung momentan parat.

Du wirst doch wohl eine einzelne LED haben. Oder ein Multimeter das 
würde auch gehen.

von Thomas D. (thomasderbastler)


Lesenswert?

321x45 schrieb:
> Leider habe ich keine Blinkschaltung momentan parat.

Du meinst das programm ?

von 321x45 (Gast)


Lesenswert?

Ja das Programm meine ich , eine LED habe ich, wo soll ich diese denn am 
Atmega8 anschließen?

von Staun (Gast)


Lesenswert?

Naja dahin wo du sie I'm program festgelegt hast

von Planlos (Gast)


Lesenswert?

Oder an VCC und GND über einen 470 Ohm

von Lukas T. (tapy)


Lesenswert?

321x45 schrieb:
> Und im Bsp Programm aus dem
> Tutorial einfach auf 8Mhz geändert. Die dort angebene Frequenz kann man
> ja ohne Quarz nicht einstellen.

Mal 'ne ganz blöde Frage:
Danach hast du das ganze aber kompiliert und auf den Mikrocontroller 
"geflasht"?

von Mitleser (Gast)


Lesenswert?

Zeige mal Deine Fuse Einstellung

von Eumel (Gast)


Lesenswert?

Ich glaube wir können hier noch ewig rätseln. Wenn der OP es nichtmal 
gebacken kriegt schnell ein Blinkprogramm zu schreiben und eine LED an 
seinen Controller zu hängen wird es auch nie und nimmer schaffen sein 
LCD an den Start zu kriegen.

von 321x45 (Gast)


Lesenswert?

So gute Nachrichten:

Ich habe hier einen Thread gefunden und dort hat ein Herr Hein Peter 
Posch (Poschi8) das Tutorial schon komplimiert und diese hochgeladen.

Die Frequenz habe ich auf 4Mhz gestellt, so wie es auch bei ihm 
angegeben war. Bin mir jetzt aber nicht sicher, ob es genau das selbe 
Tut ist, der Beitrag stammt von Febr. 2010.

So habe ich den Mc besschaltet:

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

Siehe da, der Text "Test Hello World" erscheint.

JEtzt muss ich nur noch mein eigentliches Projekt zum laufen kriegen
(Thermometer mit ATMega16 auf LCD oder Digitale Uhr mit ATMega8 und LCD)

Danke für eure Hilfe aber ich denke ich werde mich morgen nochmal 
melden, wegen meinem Projekt aus dem anderen Thread.

von Paul Baumann (Gast)


Lesenswert?

321x... schrob:
>Danke für eure Hilfe aber ich denke ich werde mich morgen nochmal
>melden.

Ist das eine Drohung?
;-)

Alte Volksweisheit:
Wer die Flinte nicht in's Korn wirft, macht auch den Mähdrescher nicht 
kaputt.

MfG Paul

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.