In diesem Tutorial erkläre ich, wie Sie ein LCD auf einem Arduino einrichten und Ihnen alle Möglichkeiten zeigen, wie Sie es programmieren können. Ich zeige Ihnen, wie Sie Text drucken, Text scrollen, benutzerdefinierte Zeichen erstellen, Text blinken und Text positionieren. Sie eignen sich hervorragend für jedes Projekt, das Daten ausgibt, und sie können Ihr Projekt viel interessanter und interaktiver machen.

Das Display, das ich verwende, ist ein 16×2 LCD-Display, das ich für ungefähr $5 gekauft habe. Sie fragen sich vielleicht, warum es ein 16×2 LCD genannt wird., Der Teil 16×2 bedeutet, dass das LCD 2 Zeilen hat und 16 Zeichen pro Zeile anzeigen kann. Daher kann ein 16×2-LCD-Bildschirm bis zu 32 Zeichen gleichzeitig anzeigen. Es ist jedoch möglich, mehr als 32 Zeichen mit Bildlauf anzuzeigen.

Der Code in diesem Artikel ist für LCD geschrieben, die den Standard Hitachi HD44780 Treiber verwenden. Wenn Ihr LCD über 16 Pins verfügt, verfügt es wahrscheinlich über den Hitachi HD44780-Treiber. Diese Displays können entweder im 4-Bit-Modus oder im 8-Bit-Modus verdrahtet werden. Verdrahtung der LCD in 4 bit modus ist in der regel bevorzugt, da es verwendet vier weniger drähte als 8 bit modus., In der Praxis gibt es keinen merklichen Unterschied in der Leistung zwischen den beiden Modi. In diesem Tutorial verbinde ich das LCD im 4-Bit-Modus.

BONUS: Ich habe eine Kurzanleitung für dieses Tutorial erstellt, die Sie herunterladen und später wiederherstellen können, wenn Sie dies gerade nicht einrichten können. Es umfasst alle Schritte, Diagramme und Code, die Sie benötigen, um loszulegen.

Anschließen des LCD an den Arduino

Hier ist ein Diagramm der pins auf dem LCD, die ich verwende. Die Verbindungen von jedem Pin zum Arduino sind gleich, aber Ihre Pins können auf dem LCD unterschiedlich angeordnet sein., Überprüfen Sie unbedingt das Datenblatt oder suchen Sie nach Etiketten auf Ihrem LCD:

Möglicherweise müssen Sie auch einen 16-poligen Header an Ihr LCD löten, bevor Sie ihn an ein Steckbrett anschließen. Folgen Sie dem folgenden Diagramm, um das LCD mit Ihrem Arduino zu verbinden:

Der Widerstand im obigen Diagramm stellt die Helligkeit der Hintergrundbeleuchtung ein. Ein typischer Wert ist 220 Ohm, aber andere Werte funktionieren auch., Kleinere Widerstände machen die Hintergrundbeleuchtung heller.

Mit dem Potentiometer wird der Bildschirmkontrast eingestellt. Normalerweise verwende ich ein 10K Ohm Potentiometer, aber andere Werte funktionieren auch.

Hier ist das datenblatt für die 16×2 LCD mit allen technischen informationen über die anzeige:

16×2 LCD Datenblatt

Programmierung die Arduino

Alle der code unten verwendet die LiquidCrystal bibliothek, die kommt pre-installiert mit der Arduino IDE., Eine Bibliothek ist eine Reihe von Funktionen, die einem Programm in einem abgekürzten Format leicht hinzugefügt werden können.

Um eine Bibliothek zu verwenden, muss sie in das Programm aufgenommen werden. Zeile 1 im folgenden Code tut dies mit dem Befehl #include <LiquidCrystal.h>. Wenn Sie eine Bibliothek in ein Programm aufnehmen, wird der gesamte Code in der Bibliothek zusammen mit dem Code für Ihr Programm auf den Arduino hochgeladen.

Jetzt sind wir bereit für die Programmierung! Ich werde auf interessantere Dinge eingehen, die Sie in einem Moment tun können, aber im Moment können Sie einfach ein einfaches Testprogramm ausführen. Dieses Programm druckt „Hallo, Welt!,“auf den Bildschirm. Geben Sie diesen Code in die Arduino IDE ein und laden Sie ihn auf die Platine hoch:

#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() { lcd.begin(16, 2); lcd.print("hello, world!");}void loop() {}

Ihr LCD-Bildschirm sollte so aussehen:

LCD-Anzeigeoptionen

Es gibt 19 verschiedene Funktionen in der LiquidCrystal Bibliothek zur Verfügung für uns zu verwenden. Diese Funktionen ändern beispielsweise die Position des Textes, verschieben Text über den Bildschirm oder schalten das Display ein oder aus. Was folgt, ist eine kurze Beschreibung jeder Funktion und wie man sie in einem Programm verwendet.,

LiquidCrystal()

Die Funktion LiquidCrystal() legt die Pins fest, die Arduino zum Anschließen an das LCD verwendet. Sie können alle digitalen Pins des Arduino verwenden, um das LCD zu steuern. Setzen sie einfach die Arduino pin zahlen in die klammern in dieser reihenfolge:

LiquidCrystal(RS, E, D4, D5, D6, D7)

RS, E, D4, D5, D6, D7 sind die LCD pins.

Zum beispiel, sagen sie wollen LCD pin D7 zu verbinden zu Arduino pin 12., Setzen Sie einfach“ 12″anstelle von D7 in die folgende Funktion:

LiquidCrystal(RS, E, D4, D5, D6, 12)

Diese Funktion muss vor dem Abschnitt void setup() des Programms platziert werden.

lcd.begin()

Diese Funktion legt die Abmessungen des LCD. Es muss vor jeder anderen LiquidCrystal-Funktion im Abschnitt void setup() des Programms platziert werden. Die Anzahl der Zeilen und Spalten wird als lcd.begin(columns, rows)angegeben., Für ein 16×2-LCD würden Sie und für ein 20×4-LCD lcd.begin(20, 4).

lcd.clear()

Diese Funktion löscht bereits auf dem LCD angezeigte Texte oder Daten., Wenn Sie lcd.clear() mit lcd.print() und der delay() – Funktion im Abschnitt void loop() verwenden, können Sie ein einfaches blinkendes Textprogramm erstellen:

lcd.home()

Diese Funktion platziert den Cursor in der oberen linken Ecke des Bildschirms und druckt alle nachfolgenden Texte von dieser Position aus. Zum Beispiel ersetzt dieser Code die ersten drei Buchstaben von “ Hallo Welt!,“mit X‘ s:

lcd.setCursor()

Ähnlich, aber nützlicher als lcd.home() ist lcd.setCursor(). Diese Funktion platziert den Cursor (und jeden gedruckten Text) an einer beliebigen Position auf dem Bildschirm. Es kann im Abschnitt void setup() oder void loop() Ihres Programms verwendet werden.

Die Cursorposition wird mit lcd.setCursor(column, row)definiert. Die Spalten – und Zeilenkoordinaten beginnen bei Null (0-15 bzw., Verwenden Sie beispielsweise lcd.setCursor(2, 1) im Abschnitt void setup() des Abschnitts „Hallo, Welt!“programm oben druckt“ hallo, Welt!“in die untere Zeile und verschiebt es nach rechts zwei Räume:

lcd.write()

Sie können diese funktion verwenden, um verschiedene arten von daten an das LCD, zum Beispiel das Lesen von einem Temperatursensor oder die Koordinaten von einem GPS-Modul., Sie können damit auch benutzerdefinierte Zeichen drucken, die Sie selbst erstellen (mehr dazu unten). Verwenden Sie lcd.write() im Abschnitt void setup() oder void loop() Ihres Programms.

lcd.print()

Mit dieser Funktion wird Text auf das LCD gedruckt. Es kann im Abschnitt void setup() oder im Abschnitt void loop() des Programms verwendet werden.

Zum Drucken von Zahlen sind keine Anführungszeichen erforderlich. Verwenden Sie zum Drucken von 123456789 beispielsweise lcd.print(123456789).,

lcd.print() kann Zahlen in dezimalen, binären, hexadezimalen und oktalen Basen drucken. Zum Beispiel:

lcd.cursor()

Diese Funktion erzeugt einen sichtbaren cursor. Der Cursor ist eine horizontale Linie unterhalb des nächsten Zeichens, das auf das LCD gedruckt werden soll.

Die Funktion lcd.noCursor() schaltet die cursor aus., lcd.cursor() und lcd.noCursor() können zusammen im Abschnitt void loop() verwendet werden, um einen blinkenden Cursor ähnlich dem zu machen, was Sie in vielen Texteingabefeldern sehen:

Dies platziert einen blinkenden Cursor nach dem Ausrufezeichen in “ Hallo, Welt!“

Cursor können mit der Funktion lcd.setCursor() an beliebiger Stelle auf dem Bildschirm platziert werden. Dieser Code platziert einen blinkenden Cursor direkt unter dem Ausrufezeichen in “ Hallo Welt!,“:

lcd.blink()

Diese Funktion erzeugt einen Cursor im Blockstil, der mit ungefähr 500 Millisekunden pro Zyklus ein-und ausgeschaltet wird. Verwenden Sie es im Abschnitt void loop(). Die Funktion lcd.noBlink() deaktiviert den blinkenden Blockcursor.

lcd.display()

Diese Funktion schaltet alle auf dem LCD-Bildschirm gedruckten Texte oder Cursor ein. Die Funktion lcd.noDisplay() schaltet auf dem LCD gedruckten Text oder Cursor aus, ohne ihn aus dem Speicher des LCD zu löschen.,

Diese beiden Funktionen können zusammen im Abschnitt void loop() verwendet werden, um einen blinkenden Texteffekt zu erzeugen. Dieser Code wird die „Hallo, Welt!“text blink on and off:

lcd.scrollDisplayLeft()

Diese Funktion nimmt alles auf das LCD gedruckt und bewegt es nach links. Es sollte im Abschnitt void loop() mit einem folgenden Verzögerungsbefehl verwendet werden. Die Funktion verschiebt den Text 40 Leerzeichen nach links, bevor er zum ersten Zeichen zurückläuft. Dieser code bewegt die „Hallo, Welt!,“text nach links, mit einer Geschwindigkeit von einer Sekunde pro Zeichen:

Textzeichenfolgen, die länger als 40 Leerzeichen sind, werden nach der 40.

lcd.scrollDisplayRight()

Diese Funktion verhält sich wie lcd.scrollDisplayLeft(), verschiebt den Text jedoch nach rechts.

lcd.autoscroll()

Diese Funktion nimmt eine Textzeichenfolge und scrollt sie in Schritten der Zeichenanzahl der Zeichenfolge von rechts nach links., Wenn Sie beispielsweise eine Textzeichenfolge mit einer Länge von 3 Zeichen haben, wird der Text bei jedem Schritt um 3 Leerzeichen nach links verschoben:

Wie die Funktionen lcd.scrollDisplay() kann der Text vor der Wiederholung bis zu 40 Zeichen lang sein. Auf den ersten Blick scheint diese Funktion weniger nützlich zu sein als die Funktionen lcd.scrollDisplay(), kann jedoch sehr nützlich sein, um Animationen mit benutzerdefinierten Zeichen zu erstellen.

lcd.noAutoscroll()

lcd.noAutoscroll() schaltet die Funktion lcd.autoscroll() aus., Verwenden Sie diese Funktion vor oder nach lcd.autoscroll() im Abschnitt void loop(), um Sequenzen von Bildlauftext oder Animationen zu erstellen.

lcd.rightToLeft()

Diese Funktion legt die Richtung fest, in die der Text auf dem Bildschirm gedruckt wird. Der Standardmodus ist von links nach rechts mit dem Befehl lcd.leftToRight(), aber Sie können einige Fälle finden, in denen es nützlich ist, Text in umgekehrter Richtung auszugeben:

Dieser Code druckt das “ Hallo, Welt!“text „!dlrow ,olleh“., Sofern Sie die Platzierung des Cursors nicht mit lcd.setCursor() angeben, wird der Text von der Position (0, 1) gedruckt und nur das erste Zeichen der Zeichenfolge wird angezeigt.

lcd.createChar()

Mit diesem Befehl können Sie Ihre eigenen benutzerdefinierten Zeichen erstellen. Jedes Zeichen eines 16×2 LCD hat eine 5 Pixel Breite und eine 8 Pixel Höhe. Bis zu 8 verschiedene benutzerdefinierte Zeichen können in einem einzigen Programm definiert werden., Um Ihre eigenen Zeichen zu entwerfen, müssen Sie eine binäre Matrix Ihres benutzerdefinierten Charakters aus einem LCD-Zeichengenerator erstellen oder selbst zuordnen. Dieser Code erstellt ein Gradsymbol (°):

Es gibt viele coole Dinge, die Sie mit diesen 16×2 LCDs passieren können! Versuchen Sie, einige dieser Funktionen zu kombinieren und zu sehen, was passiert.

Hier ist eine Videoversion dieses Tutorials, damit Sie in Echtzeit sehen können, was jede Funktion auf dem LCD tut:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.