Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino 16×2 LCD-Tutorial – Alles, was Sie wissen müssen

In diesem Arduino-Tutorial lernen wir, wie man ein LCD (Liquid Crystal Display) anschließt und verwendet mit Arduino . LCD-Displays wie diese sind sehr beliebt und werden häufig in vielen Elektronikprojekten eingesetzt, da sie sich hervorragend zum Anzeigen einfacher Informationen wie Sensordaten eignen und gleichzeitig sehr erschwinglich sind.

Ich habe sie bereits in mehreren meiner Arduino-Projekte verwendet, und Sie können sie sich hier ansehen:

  • Arduino Sicherheits- und Alarmsystemprojekt
  • DIY Vending Machine – Arduino-basiertes Mechatronik-Projekt
  • Arduino-Entfernungsmesser und digitales Wasserwaagenprojekt

Sie können sich das folgende Video ansehen oder das schriftliche Tutorial unten lesen. Es enthält alles, was Sie über die Verwendung eines LCD-Zeichendisplays mit Arduino wissen müssen, z. B. LCD-Pinbelegung, Schaltplan und mehrere Beispielcodes.

Was ist LCD-Zeichenanzeige?

Ein LCD-Zeichendisplay ist ein einzigartiger Displaytyp, der nur einzelne ASCII-Zeichen mit fester Größe ausgeben kann. Aus diesen einzelnen Zeichen können wir dann einen Text bilden.

Wenn wir uns das Display genauer ansehen, können wir feststellen, dass es kleine rechteckige Bereiche gibt, die aus einem 5 × 8-Pixel-Raster bestehen. Jedes Pixel kann einzeln aufleuchten, und so können wir innerhalb jedes Rasters Zeichen erzeugen.

Die Anzahl der rechteckigen Bereiche definiert die Größe des LCD. Das beliebteste LCD ist das 16×2-LCD, das zwei Reihen mit 16 rechteckigen Bereichen oder Zeichen hat. Natürlich gibt es auch andere Größen wie 16×1, 16×4, 20×4 und so weiter, aber sie funktionieren alle nach dem gleichen Prinzip. Außerdem können diese LCDs unterschiedliche Hintergrund- und Textfarben haben.

16×2-LCD-Pinbelegung

Es hat 16 Pins und der erste von links nach rechts ist die Masse Stift. Der zweite Pin ist der VCC die wir den 5-Volt-Pin auf dem Arduino Board verbinden. Als nächstes kommt der Vo-Pin, an dem wir ein Potentiometer anbringen können, um den Kontrast des Displays zu steuern.

Als nächstes der RS Pin oder Register Select Pin wird verwendet, um auszuwählen, ob wir Befehle oder Daten an das LCD senden. Wenn zum Beispiel der RS-Pin auf Low-Zustand oder Null Volt eingestellt ist, senden wir Befehle an das LCD wie:Setze den Cursor an eine bestimmte Stelle, lösche die Anzeige, schalte die Anzeige aus und so weiter. Und wenn der RS-Pin auf High-Zustand oder 5 Volt eingestellt ist, senden wir Daten oder Zeichen an das LCD.

Als nächstes kommt das R/W Pin, der den Modus auswählt, ob wir auf das LCD lesen oder schreiben. Hier ist der Schreibmodus offensichtlich und wird zum Schreiben oder Senden von Befehlen und Daten an das LCD verwendet. Der Lesemodus wird vom LCD selbst verwendet, wenn das Programm ausgeführt wird, worüber wir in diesem Tutorial nicht sprechen müssen.

Als nächstes kommt das E Pin, der das Schreiben in die Register ermöglicht, oder die nächsten 8 Datenpins von D0 bis D7. Über diese Pins senden wir also die 8-Bit-Daten, wenn wir in die Register schreiben, oder wenn wir beispielsweise den letzten Großbuchstaben A auf dem Display sehen möchten, senden wir 0100 0001 gemäß der ASCII-Tabelle an die Register. Die letzten beiden Pins A und K , oder Anode und Kathode sind für die LED-Hintergrundbeleuchtung.

Schließlich müssen wir uns nicht viel Gedanken darüber machen, wie das LCD funktioniert, da sich die Liquid Crystal Library um fast alles kümmert. Auf der offiziellen Website von Arduino können Sie die Funktionen der Bibliothek finden und sehen, die eine einfache Verwendung des LCD ermöglichen. Wir können die Bibliothek im 4- oder 8-Bit-Modus verwenden. In diesem Tutorial werden wir es im 4-Bit-Modus verwenden, oder wir werden nur 4 der 8 Datenpins verwenden.

Anschließen von Arduino an LCD – Schaltplan

So müssen wir das 16×2-LCD-Display an ein Arduino-Board anschließen.

Wir verwenden nur 6 digitale Eingangspins vom Arduino Board. Die LCD-Register reichen von D4 bis D7 wird mit den digitalen Pins 4 bis 7 von Arduino verbunden. Die Enable Pin wird mit Pin Nummer 2 und dem RS verbunden Pin wird mit Pin Nummer 1 verbunden. Der R/W Pin wird mit Ground und demVo verbunden Pin wird mit dem mittleren Pin des Potentiometers verbunden.

Sie können diese Komponenten von einer der folgenden Websites beziehen:

  • 16×2-Zeichen-LCD ……………………..
  • Potentiometer …………………………….
  • Arduino-Board ……………………………
  • Steckbrett und Schaltdrähte ……… 

Anpassen des LCD-Kontrasts

Wir können den Kontrast des LCD anpassen, indem wir den Spannungseingang am Vo anpassen Stift. Wir verwenden ein Potentiometer, weil wir auf diese Weise den Kontrast leicht feinabstimmen können, indem wir die Eingangsspannung von 0 bis 5 V anpassen.

Kann ich das LCD ohne Potentiometer verwenden?

Ja, falls wir kein Potentiometer haben, können wir den LCD-Kontrast immer noch mit einem Spannungsteiler aus zwei Widerständen einstellen. Mit dem Spannungsteiler müssen wir den Spannungswert zwischen 0 und 5 V einstellen, um einen guten Kontrast auf dem Display zu erhalten. Ich fand, dass eine Spannung von etwa 1 V für mein LCD hervorragend funktionierte. Ich habe 1K und 220 Ohm Widerstand verwendet, um einen guten Kontrast zu bekommen.

Es gibt auch eine andere Möglichkeit, den LCD-Kontrast einzustellen, und zwar durch Zuführen eines PWM-Signals vom Arduino zum Vo Stift des LCD. Wir können die Vo verbinden Pin an einen beliebigen Arduino PWM-fähigen Pin, und im Setup-Abschnitt können wir die folgende Codezeile verwenden:

analogWrite(11,100); // Generate PWM signal at pin D11, value of 100 (out of 255) Codesprache:Arduino (arduino)

Es erzeugt ein PWM-Signal an Pin D11 mit einem Wert von 100 von 255, was in eine Spannung von 0 bis 5 V übersetzt wird, es wird etwa 2 V Eingang am Vo sein LCD-Stift.

LCD-Arduino-Code

Hier ist ein einfacher Code, mit dem wir das Arbeitsprinzip der Flüssigkristallbibliothek erklären können. Dies ist der Code des ersten Beispiels aus dem Video:

/*
* Arduino LCD Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/

#include <LiquidCrystal.h> // includes the LiquidCrystal Library 
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7) 

void setup() { 
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } 
}

void loop() { 
 lcd.print("Arduino"); // Prints "Arduino" on the LCD 
 delay(3000); // 3 seconds delay 
 lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed 
 lcd.print("LCD Tutorial"); 
 delay(3000); 
 lcd.clear(); // Clears the display 
 lcd.blink(); //Displays the blinking LCD cursor 
 delay(4000); 
 lcd.setCursor(7,1); 
 delay(3000); 
 lcd.noBlink(); // Turns off the blinking LCD cursor 
 lcd.cursor(); // Displays an underscore (line) at the position to which the next character will be written 
 delay(4000); 
 lcd.noCursor(); // Hides the LCD cursor 
 lcd.clear(); // Clears the LCD screen 
} Codesprache:Arduino (arduino) 

Codebeschreibung:

Als erstes müssen wir die Liquid Crystal Library einfügen. Wir können das so machen:Sketch> Include Library> Liquid Crystal. Dann müssen wir ein LC-Objekt erstellen. Die Parameter dieses Objekts sollten die Nummern der digitalen Eingangspins des Arduino-Boards bzw. der LCD-Pins wie folgt sein:(RS, Enable, D4, D5, D6, D7). Im Setup müssen wir die Schnittstelle zum LCD initialisieren und die Abmessungen des Displays mit begin() festlegen Funktion.

In der Schleife schreiben wir unser Hauptprogramm. Verwenden von print() Funktion drucken wir auf dem LCD.

lcd.print("Arduino"); // Prints "Arduino" on the LCD Codesprache:Arduino (arduino) 

Der setCursor() Die Funktion wird verwendet, um die Position festzulegen, an der nachfolgender Text, der auf das LCD geschrieben wird, angezeigt wird.

lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed  Codesprache:Arduino (arduino) 

Das blinken() Funktion wird verwendet, um einen blinkenden Cursor und noBlink() anzuzeigen Funktion zum Ausschalten.

lcd.blink(); //Displays the blinking LCD cursor Codesprache:Arduino (arduino) 

Der Cursor() Funktion wird zum Anzeigen des Unterstrich-Cursors und des noCursor() verwendet Funktion zum Ausschalten. Mit clear() Funktion können wir den LCD-Bildschirm löschen.

lcd.clear(); // Clears the LCD screen Codesprache:Arduino (arduino) 

Beispiel für scrollenden Text auf 16×2-LCD und Arduino

Falls wir einen Text mit einer Länge von mehr als 16 Zeichen haben, können wir den Text mit scrollDisplayLeft() scrollen oderscrollDisplayRight() Funktion aus der LiquidCrystal-Bibliothek.

Hier ist ein Beispielcode:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2);
  lcd.print("Scrolling Text Example");
}
void loop() {
  lcd.scrollDisplayLeft();
  delay(500);
} Codesprache:Arduino (arduino) 

Mit scrollDisplayLeft() können wir wählen, ob der Text nach links oder rechts scrollen soll oderscrollDisplayRight() Funktionen. Mit der Verzögerung() Funktion können wir die Scrollgeschwindigkeit einstellen.

Wenn Sie mehr Kontrolle darüber haben möchten, wie der Text gescrollt wird, können Sie das Scrollen auch selbst mit einer „for“-Schleife vornehmen. Hier ist ein Beispiel:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display

}

void loop() {
  // scroll text to the right
  for (int i = 0; i <= 13; i++) {
    lcd.setCursor(i, 0); // Sets the location at which subsequent text written to the LCD will be displayed
    lcd.print("LCD");
    delay(500); // 1 second delay
    lcd.clear(); // Write a character to the LCD
  }
  // scroll text to the left
  for (int i = 12; i >= 1; i--) {
    lcd.setCursor(i, 0);
    lcd.print("LCD");
    delay(500); 
    lcd.clear(); 
  }
} Codesprache:Arduino (arduino) 

Generieren und Anzeigen von benutzerdefinierten Zeichen auf dem LCD

Neben den ASCII-Zeichen ist es mit der LiquidCrystal-Bibliothek auch möglich, benutzerdefinierte Zeichen zu generieren und auf dem LCD anzuzeigen.

Wir können das Aussehen jedes Zeichens durch ein Array von 8 Bytes spezifizieren. Hier ist ein Beispielcode:

#include <LiquidCrystal.h>

byte heart[8] = {  // Array of bytes
  B00000,          // B stands for binary formatter and the five numbers are the pixels
  B01010,
  B11111,
  B11111,
  B01110,
  B00100,
  B00000,
  B00000
};

byte smile[8] = {
  B00000,
  B00000,
  B01010,
  B00000,
  B10001,
  B01110,
  B00000,
  B00000
};

byte lock[8] = {
  B01110,
  B10001,
  B10001,
  B11111,
  B11011,
  B11011,
  B11111,
  B00000
};

byte character[8] = {
  B11111,
  B10101,
  B11111,
  B01010,
  B01110,
  B11111,
  B01110,
  B01110
};


LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
  lcd.createChar(0, heart); // Create a custom character
  lcd.createChar(1, smile);
  lcd.createChar(2, lock);
  lcd.createChar(3, character);

  // Clears the LCD screen
  lcd.clear();

  // Print a message to the LCD
  lcd.print("Custom Character");
}

void loop() {
  lcd.setCursor(1, 1);
  lcd.write(byte(0));  // Display the custom character 0, the heart

  lcd.setCursor(5, 1);
  lcd.write(byte(1));

  lcd.setCursor(9, 1);
  lcd.write(byte(2));

  lcd.setCursor(13, 1);
  lcd.write(byte(3));
} Codesprache:Arduino (arduino) 

Wir können sehen, wie wir das Aussehen des Zeichens spezifizieren können, indem wir die 0s in 1s innerhalb des 5×8-Pixel-Rasters ändern.

Im Setup müssen wir den benutzerdefinierten Charakter mit createChar() erstellen Funktion.

lcd.createChar(0, heart); // Create a custom character Codesprache:Arduino (arduino) 

Der erste Parameter in dieser Funktion ist eine Zahl zwischen 0 und 7, oder wir müssen eines der 8 unterstützten benutzerdefinierten Zeichen reservieren. Der zweite Parameter ist der Name des Byte-Arrays.

Wir schreiben das benutzerdefinierte Zeichen mit write() auf das Display Funktion und als Parameter verwenden wir die Nummer des Zeichens.

lcd.write(byte(0));  // Display the custom character 0, or the heart Codesprache:Arduino (arduino) 

Siehe auch: Arduino-Touchscreen-Tutorial | TFT-LCD

Schlussfolgerung

Wir haben also so ziemlich alles behandelt, was wir über die Verwendung eines LCD mit Arduino wissen müssen. Diese LCD-Zeichenanzeigen sind wirklich praktisch, um Informationen für viele Elektronikprojekte anzuzeigen. In den obigen Beispielen habe ich ein 16×2-LCD verwendet, aber das gleiche Arbeitsprinzip gilt für jede andere Größe dieser Zeichenanzeigen.

Ich hoffe, Ihnen hat dieses Tutorial gefallen und Sie haben etwas Neues gelernt. Fühlen Sie sich frei, Fragen im Kommentarbereich unten zu stellen, und vergessen Sie nicht, sich meine vollständige Sammlung von über 30 Arduino-Projekten anzusehen.


Herstellungsprozess

  1. Alles, was Sie über Taucherodieren wissen müssen
  2. Alles, was Sie über Gusseisen wissen müssen
  3. Alles, was Sie über Hochöfen wissen müssen
  4. Alles, was Sie über eine Hobelmaschine wissen müssen
  5. Alles, was Sie über Formmaschinen wissen müssen
  6. Alles, was Sie über die Metallbearbeitung wissen müssen
  7. Alles, was Sie über CNC-Maschinen wissen müssen
  8. Alles, was Sie über Maschinenpressen wissen müssen
  9. Alles, was Sie über hydraulische Pressen wissen müssen
  10. Alles, was Sie über Kunststoff wissen müssen