Forum: Mikrocontroller und Digitale Elektronik LCD mit Atmega 16 ansteuern?


von Yannic (Gast)


Lesenswert?

Hi,

ich hab im Keller ein LCD Display PC1602LRM-LSO-C

Datenblatt: http://www.pollin.de/shop/downloads/D120508D.PDF

gefunden. Nun möchte ich das ganze über nen ATMEGA 16 ansteuern und z.B. 
TEST ausgeben lassen.

Wie ich gerade gelesen habe, brauche ich eine Negativ-Kontrastspannung. 
Kann ich dir irgendwie durch die rs232 schnitstelle vom µc erzeugen ? 
Hatte da mal irgendwas von logischer 0 und logischer 1 gelesen.

mfg Yannic

von Johannes M. (johnny-m)


Lesenswert?

Yannic wrote:
> Wie ich gerade gelesen habe, brauche ich eine Negativ-Kontrastspannung.
> Kann ich dir irgendwie durch die rs232 schnitstelle vom µc erzeugen ?
Der µC hat keine RS-232-Schnittstelle, sondern nur ein UART, das mit 
entsprechender Beschaltung mit RS-232 kommunizieren kann. Der µC selbst 
kann auch keine negativen Spannungen ausgeben. Was Du vermutlich meinst 
ist der Baustein MAX232 (oder ein Derivat desselben), der als 
Schnittstellentreiber mit eingebauter Ladungspumpe die negativen Pegel 
erzeugen kann, was manche Bastler ausnutzen, um sich ihre negativen 
Kontrastspannungen erzeugen zu lassen. Hat aber nichts mit dem ATMega16 
zu tun, sondern ist ein extra Bauteil.

BTW:
Aus diesem Kurzdatenblatt kann ich nicht ersehen, dass da eine negative 
Kontrastspannung erforderlich ist. Woher hast Du diese Information?

von Yannic (Gast)


Lesenswert?

Hi,

nen MAX232N hab ich auf meinem controller Board auch drauf.

Ich vermute mal stark das es sich bei der Kontrastspannung um eine 
Negativspannung handelt. Das Datenblatt scheint aber auch nicht ganz mit 
dem Lcd übereinzustimmen. Als ich das Display jedenfalls über den 
Normalweg mit poti angeschlossen habe. Hat das Display bei spannungen im 
positiven bereich jedenfalls keinen Mucks von sich gegeben. also gehe 
ich mal davon aus das es sich um Negativspannung handelt.

wie würde denn dann die Schaltung mit dem MAX232 aussehen ?

von Johannes M. (johnny-m)


Lesenswert?

Wenn an dem MAX232 noch ein TxIN/TxOUT-Paar frei ist, dann kannst Du, 
indem Du den Controller-seitigen TxIN-Pin auf logisch "1" legst, am 
entsprechenden TxOUT eine negative Spannung von ca. -10 V abgreifen.

von Yannic (Gast)


Lesenswert?

Und wie genau mache ich das ?

Gibt es sonst noch eine Möglichkeit um zu testen ob das display nicht 
defekt ist ?

von Yannic (Gast)


Angehängte Dateien:

Lesenswert?

So hab nochmal eine Skizze gemacht wie ich ihn jetzt versucht habe 
anzusteuern. Das funktioniert aber auch nicht wirklich.

Der Max232 bekommt den saft dann vom controllerboard.

von Johannes M. (johnny-m)


Lesenswert?

Warum schreib ich eigentlich was von TxIN/TxOUT, wenn Du dann nen 
RxIN/RxOUT verwendest? Mit RxIN/RxOUT geht es nicht!

BTW:
Ich hoffe, die restliche Beschaltung des MAX stimmt und Du hast sie 
jetzt nur nicht gezeichnet...

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Pin1 an GND
Pin2 an 5V
Pin3 an GND oder - wenn Kontrast zu gering - an Schleifer von Poti, 
welches zwischen 5V und GND hängt.

Bist du sicher, dass du die richtigen Pins erwischt hast? In dem 
Datenblatt ist Pin 1 zur MITTE der Platine hin markiert ;-)

von Yannic (Gast)


Lesenswert?

Jo die pins stimmen. Sind bei mir auch nochmal auf der Platine selber 
beschriftet.

von Yannic (Gast)


Lesenswert?

So ich habe jetzt nochmal Pin 1 an GND Pin 2 an 5V und Pin3 an GND 
gehängt also ohne Poti zwischen. Das ganze hatte den Erfolg das ein paar 
ziffern auf dem Display kurtz geflackert haben und dann aus gegangen 
sind. Immerhin schonmal etwas. Aber so ganz kann es das doch auch noch 
nicht sein oder ?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

> Aber so ganz kann es das doch auch noch nicht sein oder?

Natürlich nicht. Du brauchst jetzt einen sauber aufgebauten µC inkl. 
Energieversorgung, weitere Verbindungen zwischen deinem µC und dem 
LCD-Modul und ein ordentliches Steuerprogramm auf dem µC. Zu allen drei 
Aspekten liefert die Artikelsammlung wertvolle Hinweise ;-)

von Yannic (Gast)


Lesenswert?

Wenn ich den pin fürn Kontast direkt auf Gnd setze müsste doch das ganze 
display schwartz werden oder ? Wenn ja das tut es irgendwie nicht.

Hab das display jetzt ans Controllerboard angeschlossen und ein kleines 
Programm eingespielt. Passieren tut allerdings wieder 0

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Mehr Infos über dieses Display findest du bei 
http://www.powertipusa.com/qa.htm

u.a.

- eine genauere Beschreibung der Kontrasteinstellung (10K-20K Poti) und 
Auswahl einer interne/externe Kontrasteinstellung per Jumper!

- eine genaue Beschreibung der RESET/INIT Sequenz (Timing, Anweisungen)

Kann es sein, dass du versuchst mit BASCOM zu programmieren. Speziell 
mit dem Pollin Display liest man einiges von Schwierigkeiten mit BASCOM, 
hingegen sollen übliche C und Assemblerroutinen funktionieren.

Und ich bettele jetzt nicht nochmal nach deinem Schaltplan und dem 
Steuerprogramm. Du wirst wissen, was du machst. Viel Erfolg!

von Yannic (Gast)


Lesenswert?

Danke schonmal für die Info :)

Bisher hab ich alles so aufgebaut wie hier beschriben:

http://www.roboternetz.de/wissen/index.php/Bascom_und_LCD%27s

Den Code in Basecom habe ich auch so übernommen.

Auf der Website verstehe ich die Funktion von den Jumpern nicht so 
genau. Kannst du mir das ggf. noch mal genauer erklären ?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Willst du mich ver*rschen?

Atmega8 (Roboternetzseite) und Atmega16 (du) sind nicht pinkompatibel 
und nicht programmkompatibel. Schau mal was PD0/PD1 am Atmega16 ist und 
was du "noch auf deinem Controllerboard drauf" hast und wie das mit der 
Schaltung und dem Programm von Roboternetz harmoniert.

von Yannic (Gast)


Lesenswert?

Ich hab das Regfile und die Quartzzahlen natürlich angepasst. Die Pins 
sind sonst wie folgt belegt:

PD0 (RXD)
PD1 (TXD)
PD2 (INT0)
PD3 (INT1)
PD4 (OC1B)
PD5 (OC1A)
PD6 (ICP1)
PD7 (OC2)

Verarschen will ich hier keinen. Ich bin halt noch totaler Anfänger und 
kenn mich noch nicht so ganz mit der Materie aus. Deswegen hoffe ich ja 
auch auf möglichst einfache erklärungen so das ich auch dazu lernen 
kann.

Eigentlich würd ich ja erstmal am liebsten Testen ob das LCD überhaupt 
funktionstüchtig ist, oder ob irgendwas durchgeschmorrt ist.

Nur hab ich keine ahnung wie ich das Anstellen soll.

Hat den sonst jemand ne Idee zum Code. Der sollte nur beinhalten das 
erstmal überhaupt irgendetwas mit dem LCD passiert.

von Bastler (Gast)


Lesenswert?

Ich teste LCDs meistens am LPT.
Da gibt es für jeden Displaytyp fertige Programme.
...kostet halt 0,5-1 Stunde um ein passendes Kabel anzufertigen.

von Yannic (Gast)


Lesenswert?

Aber alleine jetzt, wo die Kontrastspannung von meinem LCd über einen 
10K Poti lüft sollte wenn ich das Poti drehe doch irgendetwas auf dem 
LCD Passieren. tut es aber nicht. Also kann man doch davon ausgehen das 
es defekt ist oder ?

von Yannic (Gast)


Lesenswert?

"nochmal rauswühl"

Ist es eigentlich egal mit welchen ports vom µC man ein Display 
ansteuert also ob A,B,C oder D ?

mfg Yannic

von roboterheld (Gast)


Lesenswert?

-10 volt sind ein bisschen zuviel gewesen.

von Yannic (Gast)


Lesenswert?

Nur noch letzte Frage ist aktuell.

Bitte um Antwort :)

von Yannic (Gast)


Lesenswert?

So neuer Versuch:

Ich hab mir gerade dieses Display bei Pollin gekauft.

http://www.pollin.de/shop/shop.php?.....hp&pg=NQ==&a=OTc1OTc4OTk=

Erstmal hab ich das Poti für den Kontrast angeschlossen, das klappte 
auch schon mal alles super.

Dann hab ich die Pins wie folgt belegt:

Atmega16 PinD0 an an DB 4
Atmega16 PinD1 an an DB 5
Atmega16 PinD2 an an DB 6
Atmega16 PinD3 an an DB 7
Atmega16 PinD4 an RS
Atmega16 PinD5 an E

und R/W hab ich auf Masse gelegt.

Dann hab ich versucht das ganze mit folgendem Code anzusteuern:


$regfile = "m16def.dat"
 $crystal = 8000000

 Config Lcd = 16 * 2
 Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , 
Db7 =Portd.3 , E = Portd.5 , Rs = Portd.4

 Cls
 Locate 1 , 1
 Lcd "Hello world."


Nur das Display bleibt leider leer und es tut sich nichts.

Hat wer eine Lösung für das Problem ?

mfg Yannic

von Yannic (Gast)


Lesenswert?

Edit. Oberer Link geht nicht:

http://www.pollin.de/shop/downloads/D120420D.PDF

von Roger (Gast)


Lesenswert?

dann ise Display vieleicht kaputt!

Wenn bei diesen einfachen Character LCDs die Kontrastpannung in der Nähe 
von GND (0.2-0,5V) ist sollte für jeden Char ein schwarzes Kästchen zu 
sehen sein.

10K Poti zwischen VCC und GND. Schleifer auf Kontrasteingangpin LCD.

Graphic LCDs brauchen meist negative Kontrastspannung. (DC/DC Wandler 
oft auf LCD drauf)


mfg
Roger

von Yannic (Gast)


Lesenswert?

Ja wenn ich die Kontrastspannung niedrig einstelle hab ich kästchen in 
der 1. Zeile.

von Paul Baumann (Gast)


Lesenswert?

Setze mal den Befehl "INITLCD" vor das CLS.

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.