Um eine gute Kommunikation zwischen Mensch und Maschine herzustellen, spielen Anzeigeeinheiten eine wichtige Rolle. Sie sind daher ein wichtiger Bestandteil eingebetteter Systeme. Anzeigeeinheiten - groß oder klein - arbeiten nach dem gleichen Grundprinzip. Neben komplexen Anzeigeeinheiten wie Grafikanzeigen und 3D-Displays muss man wissen, wie man mit einfachen Anzeigen wie 16x1- und 16x2-Einheiten arbeitet. Die 16x1-Anzeigeeinheit hat 16 Zeichen und befindet sich in einer Zeile. Das 16x2-LCD hat insgesamt 32 Zeichen, 16 in der ersten Zeile und weitere 16 in der zweiten Zeile. Hier muss man verstehen, dass in jedem Zeichen 5x10 = 50 Pixel vorhanden sind. Um ein Zeichen anzuzeigen, müssen alle 50 Pixel zusammenarbeiten. Darüber müssen wir uns jedoch keine Sorgen machen, da sich in der Anzeigeeinheit ein weiterer Controller (HD44780) befindet, der die Pixel steuert. (Sie können es in der LCD-Einheit sehen,es ist das blaue Auge hinten).
In diesem Tutorial werden wir ein 16x2 LCD mit ARDUINO UNO verbinden. Im Gegensatz zu normalen Entwicklungsplatinen ist die Anbindung eines LCD an ein ARDUINO recht einfach. Hier müssen wir uns nicht um das Senden und Empfangen von Daten kümmern. Wir müssen nur die Pin-Nummern definieren und es wird bereit sein, Daten auf dem LCD anzuzeigen.
Erforderliche Komponenten
Hardware: ARDUINO UNO, Netzteil (5 V), JHD_162ALCD (16x2LCD), 100 uF Kondensator.
Software: Arduino IDE (Arduino Nightly).
Schaltplan und Erklärung
Im 16x2-LCD gibt es insgesamt 16 Pins, wenn eine Hintergrundbeleuchtung vorhanden ist. Wenn keine Hintergrundbeleuchtung vorhanden ist, gibt es 14 Pins. Man kann die Gegenlichtstifte mit Strom versorgen oder belassen. Nun in den 14 Stiften sind 8 Datenstifte (7-14 oder D0-D7), 2 Stromversorgungsstifte (1, 2 oder VSS & VDD oder GND & + 5 V), 3 rd Stift für die Kontraststeuerung (VEE-Kontrollen, wie dick die Zeichen sollten gezeigt) und 3 Steuerstifte (RS & RW & E).
In der Schaltung kann man beobachten, dass ich nur zwei Steuerstifte genommen habe, dies gibt die Flexibilität. Das Kontrastbit und READ / WRITE werden nicht oft verwendet, so dass sie gegen Masse kurzgeschlossen werden können. Dies versetzt das LCD in den höchsten Kontrast- und Lesemodus. Wir müssen nur die ENABLE- und RS-Pins steuern, um Zeichen und Daten entsprechend zu senden.
Die Verbindungen, die für LCD hergestellt werden, sind unten angegeben:
PIN1 oder VSS gegen Masse
PIN2 oder VDD oder VCC auf +5V
PIN3 oder VEE gegen Masse (bietet maximalen Kontrast am besten für Anfänger)
PIN4 oder RS (Registerauswahl) zu PIN0 von ARDUINO UNO
PIN5 oder RW (Lesen / Schreiben) nach Masse (versetzt das LCD in den Lesemodus, erleichtert die Kommunikation für den Benutzer)
PIN6 oder E (Aktivieren) zu PIN1 von ARDUINO UNO
PIN11 oder D4 bis PIN8 von ARDUINO UNO
PIN12 oder D5 bis PIN9 von ARDUINO UNO
PIN13 oder D6 bis PIN10 von ARDUINO UNO
PIN14 oder D7 bis PIN11 von ARDUINO UNO
Mit der ARDUINO IDE kann der Benutzer das LCD im 4-Bit-Modus verwenden. Diese Art der Kommunikation ermöglicht es dem Benutzer, die Pin-Verwendung auf ARDUINO zu verringern, im Gegensatz zu anderen muss ARDUINO nicht separat programmiert werden, um es im 4-it-Modus zu verwenden, da ARDUINO standardmäßig für die Kommunikation im 4-Bit-Modus eingerichtet ist. In der Schaltung sehen Sie, dass wir 4-Bit-Kommunikation (D4-D7) verwendet haben.
Aus bloßer Beobachtung aus der obigen Tabelle verbinden wir also 6 Pins des LCD mit dem Controller, wobei 4 Pins Datenpins und 2 Pins zur Steuerung sind.
Die obige Abbildung zeigt den Schaltplan eines 16x2-LCD, das an ARDUINO UNO angeschlossen ist.
Arbeiten
Um ein LCD an die ARDUINO UNO anzuschließen, müssen wir einige Dinge wissen.
|
Wie in der obigen Tabelle müssen wir uns nur diese vier Zeilen ansehen, um eine Kommunikation zwischen einem ARDUINO und einem LCD herzustellen.
Zuerst müssen wir die Header-Datei aktivieren ('#include
Zweitens müssen wir der Platine mitteilen, welchen LCD-Typ wir hier verwenden. Da haben wir so viele verschiedene Arten von LCD (wie 20x4, 16x2, 16x1 usw.). Hier werden wir ein 16x2 LCD an die UNO anschließen, damit wir 'lcd.begin (16, 2);' erhalten. Für 16x1 erhalten wir 'lcd.begin (16, 1);'.
In dieser Anleitung teilen wir der Platine mit, wo wir die Pins angeschlossen haben. Die angeschlossenen Pins müssen in der Reihenfolge „RS, En, D4, D5, D6, D7“ dargestellt werden. Diese Pins sind korrekt darzustellen. Da wir RS mit PIN0 usw. verbunden haben, wie im Schaltplan gezeigt, stellen wir die Pin-Nummer für die Platine als „LiquidCrystal lcd (0, 1, 8, 9, 10, 11);“ dar. Die Daten, die auf dem LCD angezeigt werden müssen, sollten als "cd.print (" Hallo Welt! ");" Geschrieben werden. Mit diesem Befehl zeigt das LCD 'Hallo Welt!' An.
Wie Sie sehen, müssen wir uns um nichts anderes kümmern, wir müssen nur initialisieren und die UNO ist bereit, Daten anzuzeigen. Wir müssen hier keine Programmschleife schreiben, um die Daten BYTE by BYTE zu senden.
Die Art der Kommunikation zwischen LCD und UNO wird im folgenden C-Code Schritt für Schritt erläutert: