Newbie-Frage zum LCD-Display anschließen (R/W Anschluß)

Hallo Arduino-Gemeinde!

´bin auch absoluter Newbie, besitze seit 1.Jan einen Arduino Uno und habe die ersten Schritte für Anfänger (LED blinkt / Taster Schalten LED) erfolgreich hinter mich gebracht. → Große Freude !!!

So, jetzt möchte ich das LCD-Display anschließen. Also habe ich mich durch die diversen Anleitungen im Internet durchgewurstelt.

Was mich erstaunt bzw. verwirrt:
Den R/W (Read/Write) Anschluß des Displays kann man wohl an z.B. Digital 11 oder an GND anschließen.

Na da denke ich mir doch → toll, ´kann ich mir einen Port sparen und für was anderes verwenden. :slight_smile:

Aber irgend ein Haken muss doch dran sein sonst würden das alle machen.

Also die Frage an Euch:
Welchen Unterschied besteht bzw. welche Probleme / Einschränkungen handle ich mir ein wenn ich R/W (Read/Write) statt an Digital x an GND anschließe?

Gruß
Martin

Sorry :frowning: , habe vergessen zu erwähnen:

Es ist ein Dot-Matrix LCD Modul mit 2x16 Zeichen, das hier:

http://www.reichelt.de/LCD-162C-BL/3/index.html?ACTION=3;ARTICLE=31655;SEARCH=LCD%20162F%20LED

Den kannst du mit Masse verbinden.

Und wenn du noch mehr Pins sparen möchtest, dann verwende I2C für das Display.
Da benötigst du nur 2 Pins.

Dann nimm so einen Adapter:

http://www.ebay.de/itm/like/221717504003?ul_noapp=true&chn=ps&lpid=106

Normalerweise will man Daten aufs Display schicken und das Display nicht auslesen.
Deshalb verbindet man R/W mit GND.

Gruß Jürgen

Wuehlmaus:
Aber irgend ein Haken muss doch dran sein sonst würden das alle machen.

Also die Frage an Euch:
Welchen Unterschied besteht bzw. welche Probleme / Einschränkungen handle ich mir ein wenn ich R/W (Read/Write) statt an Digital x an GND anschließe?

Über das R/W Signal legst Du fest, ob Du Zeichen auf das Display schreiben oder ob Du umgekehrt Zeichen vom Display ablesen möchtest.

Das Lesen vom Display ist allerdings auf Microcontrollern mit 2048 Bytes RAM relativ unwesentlich: Für ein Display mit 16x2=32 Zeichen kannst Du Dir ja auch in einem char-Array merken, welche Zeichen Du auf das Display geschrieben hast, wenn Du diese Angaben später nochmal brauchst, dann brauchst Du sie nicht vom Display lesen, sondern ziehst die Daten aus dem Array.

Und wenn Du nichts vom Display ablesen möchtest, was Du vorher drauf geschrieben hast, kann das R/W Signal ständig auf "Write" eingestellt sein.

Hallo Leute!

Danke für die sehr klare und eindeutige Beantwortung der Frage!

Als Anfänger bin ich nie auf die Idee gekommen das eine LCD-Anzeige auch "rückwärts funktionieren könnte" und konnte also mit dem Satz

"..A Read/Write (R/W) pin that selects reading mode or writing mode .."

überhaupt nix anfangen.

Ich frage mich nur warum man in keiner der Anleitungen (insb. Deutsche) die ich bis jetzt gefunden habe über diese Frage / Sachverhalt aufgeklärt wird. Steht nur drin "..kann man so oder so machen...".

Ich glaube es ist sinnvoll dass ich an meinem eigenen Tutorial weiterschreiben :slight_smile: :slight_smile: :slight_smile:

´hätte noch ´ne Frage, schreibe die aber in einen neuen Thread...
"Welche Anschlüsse / Pins verwenden"

bis gleich

Die LCD Libraries verwenden das gar nicht. Einfach weil bei 16x2 oder 20x4 Displays auf dem Controller wie schon oben gesagt genug RAM ist dass man einen Bildspeicher im RAM anlegen kann wenn nötig.

Der R/W Pin bestimmt ob vom Display gelesen oder geschrieben wird.

Die meisten LCD Lib’s schreiben nur in das Display, deshalb wird dieser Pin in den Anleitungen dazu auf 0 Pegel geschaltet.

Das Lesen aus dem Display hätte zum Beispiel (unter anderem) den Sinn, dem Arduino zu sagen das das Display die Daten verarbeitet hat, und neue entgegennehmen kann.

Das ist das BF (Busy Flag), dieses steht hier in D7 zur Verfügung.

Die einfachen Lib’s schalten nicht auf den Read Modus um, sondern warten einfach (delay)
Deshalb ist dieser R/W hier auf 0 geschaltet.

Wenn man das BF abfragt, würde dies die Verabeitungszeit auf das Display optimieren.

Danke für die vielen Zuschriften und die ausführliche Unterstützung!

-> HotSystems: Die Lage ist noch nicht so ernst dass ich um jeden freien pin kämpfen muß. Aber ohne zusätzliche Hardware schon mal einen pin einsparen war mir die Frage hier wert.
Wenn es eng wird werde ich sehr gerne auf Deinen Vorschlag zurückkommen.

-> sschultewolter: Ich werde pin 0 und 1 wie oben geschrieben nicht anfassen. Da ich als blutiger Anfänger aber momentan noch keinen Gedanken an I2C-Bus und SPI verschwende wäre mir das heute Abend erst ´mal egal.

-> rudirabbit

Es ist ein Dot-Matrix LCD Modul mit 2x16 Zeichen (für Kurzsichtige wie mich) und zwar das hier:

http://www.reichelt.de/LCD-162C-BL/3/index.html?ACTION=3;ARTICLE=31655;SEARCH=LCD%20162F%20LED

Eine LED Vorwiderstandsberechnung kriege ich noch hin, aber man ist da doch eher so was wie ULED = 2,2 V, If = 20mA gewohnt.

(4,2V, 360mA ergibt tatsächlich 2,2 Ohm Vorwiderstand.)

360mA ! Packt das mein Arduino und mein Laptop USB überhaupt noch????
-> Also zusätzliche LED-Spannungsversorgung ran basteln?

Das Datenblatt ist äußerst verwirrend. Als ich das LCD-Ding bestellt habe dachte ich da steige ich schon durch auch wenn es nur auf Englisch ist. Es geht aber schon damit los dass im Datenblatt 2 Typen erwähnt sind (einer mit 5V und einer mit 3,3V+2V) und sich nirgends auf der Platine eine damit zuordenbare Typenbezeichnet findet. Wenn im Reichelt Katalog Betriebsspannung 5V steht gehe ich einfach mal davon aus dass es ersterer Typ ist.

Wünsche Euch einen spaßigen Abend ohne Rauchzeichen!

Wuehlmaus:
360mA ! Packt das mein Arduino und mein Laptop USB überhaupt noch????

Besser nicht. Ich verwende einen USBN-Hub mit eigener Spannungsversorgung in der Hoffnung, der Hub schützt meinen PC.

Wuehlmaus:
-> Also zusätzliche LED-Spannungsversorgung ran basteln?

Besser ist es, wenn da wirklich soviel Strom fließt. Kann man ja messen.

→ agmue:

Es dankt:

  • Mein Laptop
  • Mein Arduino
  • Meine Feuerlöscher

Und ich dachte ich bekomme mein Display heute noch zum laufen. :frowning:
´bin noch nicht mal dazu gekommen die Stecker Leiste anzulöten.

Jetzt habe ich mir u.a. aber erst mal eine Excel Liste gemacht welcher Anschluss pin vom LCD Display wohin kommt und was da (maximal) angeschlossen wird.

Anschluss V0 (Kontrast) blicke ich nach 3 Bier in dem Datenblatt aber immer noch nicht .
Max ? Min ? Normal?

No Risk no fun → 10k Poti anschließen und schauen was passiert?

wuehlmaus:
Ich glaube es ist sinnvoll dass ich an meinem eigenen Tutorial weiterschreibe

Den Spruch :
"Wenn ich mal ein gutes Buch lesen will, schreib ich mir eins!"
hab ich auch schonmal irgendwo gehört :wink:

Mein Display hat einen 23 Ohm Widerstand für die Beleuchtung und braucht 24 mA Strom, wobei da noch ein ATtiny 2313 für die I2C Schnittstelle mit versorgt wird. Diese 24 mA kann ich meinem UNO problemlos zumuten und die USB-Schnittstelle ist auch nicht gefährdet.

Feuerlöscher können aber nie schaden :slight_smile:

Wenn ich das Datenblatt richtig interpretiere, soll wenn das Display mit 5V versorgt wird, die Spannung an Pin V0 3.5v nicht überschreiten.

Dazu dient Widerstand R über dem Trimmer.
Ich komme bei einem 10K Trimmer auf einen 4,2 k Widerstand ungefähr.