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!
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?
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...
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
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?
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.
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.
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
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!
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.
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
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..
Ups AVCC hab ich ja ganz vergessen...
Angeschlossen, selber Fehler...
Abblockkondensatoren sind auch dran.
Wie gesagt es soll nur zum testen der LCD dienen.
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
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
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 :/
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
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.
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"?
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
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
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.
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.
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"?
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.
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.
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