Display 16 Zeichen

Beschreibung

Ein Stellen mit zwei Zeilen Display.

Anschluss

image-1671977979488.png

Es werden folgende PINS angeschlossen:



LCD-Ansteuerung mit analoger Kontrastregelung (Poti)

Die relevaten Pins des LCD werden mit dem Arduino verbunden. In die Spannungszuführung der Hintergrundbeleuchtung (so denn überhaupt vorhanden) wurde vorsichtshalber der oben erwähnte Vorwiderstand eingesetzt. Der analoge Eingang der Kontrastregelung (VEE) wird mit dem Schleifkontakt eines Trimmpotentiometers verbunden, welches auf der einen Seite mit +5 V, auf der anderen Seite mit Masse (0 V) verbunden wird. Hierüber lässt sich der Kontrast manuell regeln.

Zur Ansteuerung des LCD wird die LiquidCrystal-Bibliothek von Adafruit genutzt. Der Beispielcode gibt einen Standardtext aus und zählt anschließend die Sekunden seit dem Start des Programms hoch.

LCD-Ansteuerung mit PWM-Kontrastregelung
  • Universal-LCD mit Parallelbus (14 oder 16 Pins)
  • (Widerstand 220 Ω)
  • Jumperkabel (14×)
Steckbrettansicht

Im Normalfall stellt man den Kontrast des LCD einmalig ein und belässt ihn dann in dieser Einstellung. Damit ist das Trimmpotentiometer eigentlich überflüssig und nimmt nur Platz auf dem Breadboard weg. Einen passenden Widerstand (mit festem Wert) zu finden, kann sich aber unter Umständen als schwierig erweisen. Eine Alternative stellt die Kontrastregelung über einen PWM-Ausgang des Arduinos dar. Dazu wird auch der Pin 3 (VEE) an den Arduino angeschlossen und das Trimmpotentiometer kann entfallen. Dafür verliert man natürlich wiederum einen digitalen Ausgang. Man muss von Schaltung zu Schaltung abwägen, was einem lieber ist.

Im Gegensatz zum obigen Beispiel wird bei der Initialisierung mittels der Funktion analogWrite() per PWM der Kontrast des LCD auf einen festen Wert eingestellt. Der optimale Wert muss von Ihnen einmalig auf Ihr LCD angepasst werden.

Einbindung 16 Zeichen Display

Bibliotheken installieren



Wir benötigen dazu die LiquidCrystal Library (Diese im PIO-Home Library herunterladen)
Dazu den Suchbegriff crystal eingeben

Bildschirmfoto vom 2022-12-24 23-32-29.png

Dann auf Add to Project klicken

Bildschirmfoto vom 2022-12-24 23-32-40.png

Und nun das Project auswählen

Bildschirmfoto vom 2022-12-24 23-32-53.png

Code


Code Beispiel Direktanschluss 4 Datenpins ohne IC2 BUS:

#include <LiquidCrystal.h>
#include <Wire.h>
#include <SoftwareSerial.h>

#define PIN_LCD_VEE_VO 6                      // Pin für LCD-Pin Vee/Vo (Kontrastwert)
#define PIN_LCD_RS 13                       // Pin für LCD-Pin RS  (Register Select)
#define PIN_LCD_E 12                        // Pin für LCD-Pin E   (Enable)
#define PIN_LCD_D4 2                       // Pin für LCD-Pin D4  (Datenbit 4)
#define PIN_LCD_D5 3                       // Pin für LCD-Pin D5  (Datenbit 5)
#define PIN_LCD_D6 4                      // Pin für LCD-Pin D6  (Datenbit 6)
#define PIN_LCD_D7 5                      // Pin für LCD-Pin D7  (Datenbit 7)

#define LCD_CONTRAST 10                  // Kontrastwert (muss experimentell an das LCD angepasst werden) 0 ganz Dunkel 100 Total Hell, auch nix mehr zu erkennen)
#define LCD_ROWS 2                         // Anzahl der Zeilen des Displays.
#define LCD_COLS 16                        // Anzahl der Spalten des Displays.

LiquidCrystal lcd(PIN_LCD_RS, PIN_LCD_E, PIN_LCD_D4, PIN_LCD_D5, PIN_LCD_D6, PIN_LCD_D7);
int aSeconds = 0; //Als Zähler für die Sekunden, wird fürs Display nichtebenötigt, aber wie bauen hier im Beispiel einen Zähler
void setup()
{
	analogWrite(PIN_LCD_VEE_VO, LCD_CONTRAST);  // Regele den Kontrast des Display per PWM auf den Wert LCD_CONTRAST. Wenn ein Poti benützt wird überflüssig
    lcd.begin(LCD_COLS, LCD_ROWS);           // Die Größe des Displays festlegen und das Display intialisieren.
    lcd.setCursor(0, 0);                     // Springe mit dem Cursor in der 1. Zeile an Position 1.  lcd.setCursor(Position,Zeile)
    lcd.print("Sekunden seit");              // Schreibe ab dort den Text "Sekunden seit".
    lcd.setCursor(0, 1);                     // Springe mit dem Cursor in der 2. Zeile an Position 1. lcd.setCursor(Position,Zeile)
    lcd.print("Start:");                     // Schreibe ab dort den Text "Start:".
}

void loop()
{
	lcd.setCursor(7, 1);                     // Springe mit dem Cursor in der 2. Zeile an Position 8.
    lcd.print(aSeconds);                     // Schreibe ab dort den aktuellen Wert der Variable aSeconds.
    aSeconds++;                              // Erhöhe den Wert der Variablen aSeconds um 1.

    delay(1000);                             // Warte eine Sekunde.
}

Quelle

https://rotering-net.de/tut/arduino/lcd-ansteuern.html

 




Version #12
Erstellt: 24 Dezember 2022 21:08:10 von Admin
Zuletzt aktualisiert: 29 Dezember 2022 02:24:58 von Admin