16x2 vs 20x4 kurze Frage

Bevor ich mir jetzt weiter einen Wolf suche,

Vielleicht kann mir jemand kurz helfen.

Ein LCD-Display 16x2 ksnn ich mit den oberen 4 bit ansteuern.
Ist wohl etwas langsamer, aber braucht halt nicht so viele Verbindungen.

Frage:

Geht das mit dem 20x4 Display auch so, oder muss ich da zwingend alle 8 bit bedienen?

Beide haben den gleichen Kontroller drauf und darum funktionieren beide auf Interfaceebene und Bibliothek gleich.

Was sich ändert ist die logische Aufteilung der Zeilen. Ein 20x4 könnte als 40x2 angesprochen werden müssen, wobei die 1. und 3. Zeile der logischen Zeile 1 entsprechen usw. Probier mal an verschiedenen Stellen Zeichen draufzuschreiben und wo diese dann auf dem Display auftauchen.
Hatte schon mal ein 16x1 das ich als 8x2 ansprechen mußte (das 9. Zeichen war an der ersten Position der 2. Zeile).

Grüße Uwe

Hallo,

was sollen das für Display´s sein ? gib mal einen Link dazu an.

wie meinst Du das mit den "oberen 4 bit ansteuern" ?

Heinz

@ uwefed
D A N K E ! ! !

@ Rentner:
D0 - D3 nicht aschliessen, und nur D4 bis D7 nutzen.
Das war gemeint.

Rentner:
wie meinst Du das mit den "oberen 4 bit ansteuern" ?

Der Controller lässt sich auch über einen 4-Bit Bus ansteuern, dann werden die unteren 4 Bit des Datenbus ignoriert. Das ist eine reine Sache des Interface, und hat mit der Aufteilung des Display ( 16x2, 20x4, 8x2 ... ) nichts zu tun.

Hallo Franz Peter,

gerade eben habe ich noch mal in den Sketch geschaut mit der Lichtsteuerung.

Mir tun sich für ein anderes Projekt da Fragen auf.

Wenn du magst, schau mal bitte auf das Stückchen Code weiter unten.

Was habe ich vor.
Mein jetziges Diplay ist einfarbig 16x2 und so angeschlossen wie unten im Code-Schnipsel zu sehen.

FRAGE:
Kann man die dort angegebenen Ausgänge auch ändern?

Ich bräuchte ein paar freie PWM PIN´s.

Ich möchte gerne ein RGB Display ( LCD mit RGB Backroundbeleuchtung ) anschließen.
Abhängig von der Temperatur soll sich dann die Farbe verändern, soll heißen, einzelne LED Zellen werden in der Helligkeit gesteuert.

Da dachte ich in dem Zusammenhang auch an die fadeled Funktion.
Weiß aber nicht so recht, wie ich das am besten umsetze.

Die nächste Frage, die sich mir stellt, ist, kann man auch “aufwärts” mappen?
Gemeint ist

anstelle von z.B.
map( 0,1023, 0, 255) zu schreiben

map (0,42,0,255)
Geht so etwas?

* LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * LCD VSS pin to ground
 * LCD VCC pin to 5V
 * 10K resistor 1:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3) thats for the contrast
 * 10K resistor 2:
 * ends to +5V and ground
 * wiper to pin (pin A2) thats to set the max. Temp / heater off-Temp 
 * 
 * 
 */



#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

ANTWORT:

Ja kann man. Die Pins stehen ja im Sketch Und du kannst nach belieben / disponibilität welche aussuchen.

Kontrolliere ob die Hintergrundbeleuchtung nicht zuviel strom zieht und Du darum Transistoren verwenden mußt.

map() kann aufwärts, abwerts, negativ und auch außerhalb des angegebenen Bereichs.

Grüße Uwe

Hallo Uwe,

vielen Dank.

Dann kann ich die Steuerung ja recht einfach über analogWrite auf den PWM-Pin´s realisieren.

Das hilft weiter.
Stromaufnahme wird natürlich vorher gecheckt.

Super.

VG
Ludger

#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

In der 2. Zeile wählst Du die Pins.

Du kannst die analogen Pins als Digitale Pins verwenden. A0 bis A5 wird zu D14 bis D19

Grüße Uwe