Forum: Mikrocontroller und Digitale Elektronik Nokia 3310 Display; Arduino; 74HC4050


von t0m (Gast)


Lesenswert?

Hallo an alle,
ich habe mein Arduino noch nicht lange und war auf der Suche nach etwas 
Praktischem zum Basteln, da fiel mir ein Nokia 3310 in die Hände, von 
welchem ich das Display zur Anzeige an meinem Arduino betreiben wollte. 
Ich kriege es aber nicht zum laufen und bin langsam mit meinem Latein am 
Ende...

Der Aufbau:
Ich nehme den Pegelwandler 74HC4050, um die Spannung von 5V auf 3,3V 
(die auch vom Board nehme) zu bringen. Also habe ich alle Pins des 
Arduino an die Eingänge gehangen und das Display mit den benötigten 5 
Pins (SCK, D/C, SCE, SDIN, RST) an die Ausgänge. Vcc vom 4050 hängt an 
den 3,3V sowie auch der Vdd vom Display. Alle Grounds sind mit dem GND 
des Arduinos verbunden. Zusätzlich habe ich noch einen 4,7uF/40V Elko 
zwischen Vout und GND gehangen.

Das Problem:
Es tut sich nichts. Wenn ich messe, liegen am Display die gewollten 3,3V 
an. Zum testen habe ich ein Skript vom Arduino-Playground genommen 
(http://playground.arduino.cc/Code/PCD8544). Der Durchgang ist auch 
überall überprüft. Ich sehe bloß etwas auf dem Display, wenn ich den 
Arduino vom Strom trenne und das Kabel wieder hereinstecke (dann kommen 
ein paar Punkte auf das Display). Dabei fiel mir aber auch auf, dass 
über dem Elko 10V abfallen, was ich seehr merkwürdig finde. Im Laufe der 
Zeit stabilisiert sich die Spannung über dem Elko auf 2,8V.

Die Lösung:
???

Ich hoffe meine Beschreibung ist genau genug und jemand hat eine (oder 
von mir aus auch mehrere) Idee/n, was bei mir falsch sein könnte. 
Stutzig bin ich auch beim lesen dieses Beitrags geworden 
(Beitrag "Nokia 3310 Display ohne Rahmen betreiben") hier heißt es, 
3310-Displays haben keine aufgedampften Gold-Kontakte. Aber ich habe 
mein Display aus einem 3310 ausgebaut UND es hat eben solche Kontakte, 
an denen ich wunderbar ein Flachbandkabel anlöten konnte. Kann es 
womöglich sein, das der Kontroller doch kein PCD8544 ist?

Vielen lieben Dank für Eure Mühe.
Grüße t0m

von Ralph S. (jjflash)



Lesenswert?

Um es vorwegzunehmen: Normalerweise werkel ich NICHT mit einem Arduino. 
Allerdings ist der Bootloader des Arduino wirklich gut und für die 
Auszubildenden wurde deshalb ein ultrapreiswerter Arduino-Clone 
gebastelt der aus nichts anderem als aus einem (mit Transistoren 
aufgebauten) invertierenden Pegelwandler für die serielle Schnittstelle 
und einem ATmega168 besteht!

Deshalb konnte ich den Anschluß eines Nokia Display's NICHT an einer 
originalen Arduinohardware testen (weil ich schlicht keinen originalen 
habe):

Die beiden Schaltpläne (kann man so eine kleine Zeichnung Schaltplan 
nennen?) zeigen die Anschaltung des Displays an einen Arduino bzw. an 
einen ATmega168.

Die Pinbelegung des Displays zum Arduino habe ich deshalb geändert, weil 
ich eine Platine so verdrahtet habe (meine C-Bibliothek bedient das 
Nokia Display über das Hardware SPI des ATmega).

Die ersten Versuche die ich mit einem 3310 bzw. 3410 Display gemacht 
hatte, wurden auch über einen Pegelwandler von 5V auf 3,3V vorgenommen. 
Da es auch immer einen inneren "Wettbewerb" gibt, mit weniger Bauteilen 
auszukommen, wurden die Spannungen der Signalleitungen mit 
Spannungsteiler reduziert (das ist zwar nicht so richtig "schön", aber 
klein und sehr preiswert).

Zum Arduino Code:

Erst dachte ich, der Code könne nicht funktionieren, weil der Ascii - 
Zeichensatz nicht richtig gelesen werden könne, kann er aber !

Zuerst sah ich auf dem 3310 Display auch NICHTS ! Das lag allerdings bei 
meinem Display daran, dass nach einem LcdClear() der Adresszeiger des 
Displays dort verblieben ist und somit eine Ausgabe eines Textes NICHT 
im Adressbereich des Displays lag.

Ein dem originalen Code hinzugefügtes gotoxy(char x, char y) setzt den 
Adresszeiger des Displays.

Die Arduino-Datei hat bei mir (mit der Verschaltung wie in den 
Schaltplänen gezeigt) auf beiden Display's 3310 UND 3410 funktioniert!

Sollte die Datei bei dir NICHT funktionieren, kann das eventuell auch 
noch daran liegen, dass es wirklich unterschiedliche 3310 Display's 
gibt, die unterschiedlich initialisiert werden müssen. Hier wirst du 
wohl im Internet schnell fündig werden.

Einen Gruß,
Ralph

PS: würde mich über eine Rückmeldung freuen ob das so funktioniert hat

von t0m (Gast)


Lesenswert?

Ich werd verrückt! Es klappt! und es war tatsächlich die Sache, dass die 
Adresse nach dem Clear nicht wieder zurückgesetzt wurde. Irgendwie hatte 
ich mir ja schon gedacht, dass ich irgendwas - einfaches - übersehen 
hatte Aber ich muss auch zugeben, dass ich nicht davon ausging, den 
Fehler im Skript vom Playground zu finden.

Also vielen vielen Dank!
Grüße t0m

von Ralph S. (jjflash)


Lesenswert?

freut mich dass es geklappt hat !

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.