Suchcode

Lektion 20/31: Verwendung von LCD1602 mit Arduino zur Textanzeige | Robojax

Lektion 20/31: Verwendung von LCD1602 mit Arduino zur Textanzeige | Robojax

Einführung

Das LCD1602 ist eines der beliebtesten alphanumerischen Displays für Arduino-Projekte, und in Kombination mit einem I2C-Backpack wird es unglaublich einfach zu verwenden. In diesem Tutorial lernst du, wie du Text, Zahlen und benutzerdefinierte Zeichen anzeigst sowie Text über den Bildschirm scrollen lässt. Wir zeigen dir auch, wie du das LCD mit anderen Sensoren kombinierst, um praktische Überwachungswerkzeuge zu erstellen. Dieser Leitfaden ist Teil eines umfassenderen Arduino-Kurses und soll dir helfen, nützliche Geräte für dein Zuhause, die Schule oder die Werkstatt zu bauen.

screenshot-2

Hier sind ein paar praktische Ideen, was du mit diesem Wissen bauen kannst:

  • Ein Temperatur- und Luftfeuchtigkeitsmonitor für ein Gewächshaus oder ein Reptiliengehege.
  • Ein einfaches Voltmeter zur Überprüfung der Batteriestände in deinen Projekten.
  • Ein Distanzsensor für einen Parksassistenten oder einen intelligenten Mülleimer, der anzeigt, wie voll er ist.

Hardware-Übersicht

Das LCD1602 ist ein Display mit 16 Zeichen und 2 Zeilen. Das Modul auf der Rückseite ist ein I2C- (oder I²C-) Adapter, der die Anzahl der benötigten Drähte von einer standardmäßigen parallelen Verbindung auf nur vier reduziert: Ground, VCC, SDA und SCL. Das macht die Verkabelung viel einfacher und gibt viele digitale Pins deines Arduinos frei.

Das Display verfügt über eine Hintergrundbeleuchtung, die per Software ein- oder ausgeschaltet werden kann. Es hat außerdem ein kleines Potentiometer auf dem I2C-Modul, um den Kontrast einzustellen. Wenn du das Display einschaltest und nichts siehst, drehe einfach diese Schraube, bis der Text sichtbar wird (im Video bei 02:47).

Es gibt verschiedene Versionen dieses Displays, wie zum Beispiel das LCD2004, das 20 Zeichen und 4 Zeilen hat. Die I2C-Adresse kann auch durch Löten der A0-, A1- und A2-Jumper auf dem Modul geändert werden (im Video bei 03:51). Die Standardadresse ist oft 0x27, kann aber variieren, daher ist es immer eine gute Idee, einen I2C-Scanner auszuführen, um die richtige Adresse für dein spezifisches Modul zu finden.

Hardware-Komponenten

Um der Hauptdemonstration in diesem Video zu folgen, benötigst du die folgenden Komponenten:

  • Arduino Uno (oder ein beliebiges kompatibles Board)
  • LCD1602 mit I2C-Modul
  • Breadboard und Jumper-Kabel

Für die späteren Abschnitte benötigst du außerdem einen DHT11-Sensor, ein Potentiometer oder einen Ultraschallsensor, je nachdem, welches Projekt du bauen möchtest.

Verkabelungsanleitung

lcd1602_I2C_wiring_sunfounder

Das Anschließen des LCDs ist unkompliziert. Das Schaltbild zeigt die Verbindungen deutlich.

Verbinde die Pins des I2C-Moduls wie folgt mit deinem Arduino:

  • GND mit Arduino GND
  • VCC mit Arduino 5V
  • SDA mit Arduino A4
  • SCL mit Arduino A5

Wenn dein Arduino-Board dedizierte SDA- und SCL-Pins hat, kannst du diese ebenfalls verwenden (im Video bei 05:47).

Installieren der Bibliothek

Dieses Modul erfordert die Bibliothek "Arduino Liquid Crystal I2C". Du kannst sie über den Link in der Videobeschreibung oder von der Robojax-Website herunterladen. Nach dem Herunterladen installierst du sie in deiner Arduino-IDE, indem du zu Sketch > Bibliothek einbinden > .ZIP-Bibliothek hinzufügen gehst und die heruntergeladene Datei auswählst (im Video bei 06:41).

Code-Erklärung

Da keine Code-Ausschnitte bereitgestellt wurden, erklären wir die allgemeine Struktur des im Video verwendeten Codes.

Der Code beginnt mit dem Einbinden der notwendigen Bibliotheken: Wire.h für die I2C-Kommunikation und die Bibliothek LiquidCrystal_I2C.h für das Display. Der wichtigste Teil ist das Erstellen eines Objekts für das LCD. Du musst die korrekte I2C-Adresse und die Abmessungen deines Displays festlegen:

// Setze die LCD-Adresse auf 0x27 für ein Display mit 16 Zeichen und 2 Zeilen
LiquidCrystal_I2C lcd(0x27, 16, 2);

Wenn dein Display nichts anzeigt, musst du möglicherweise 0x27 in 0x3F oder eine andere Adresse ändern, die dein I2C-Scanner findet. Die 16 und 2 repräsentieren die Anzahl der Spalten und Zeilen auf deinem Display.

In der Funktion setup() initialisierst du das LCD und schaltest die Hintergrundbeleuchtung ein:

void setup() {
  lcd.init();
  lcd.backlight();
}

Um Text zu drucken, verwendest du die Funktion lcd.setCursor(Spalte, Zeile), um den Cursor zu positionieren, gefolgt von lcd.print(), um deine Daten anzuzeigen. Zum Beispiel würdest du für das Drucken in der zweiten Zeile lcd.setCursor(0, 1) verwenden. Das Video erklärt auch, wie man Sonderzeichen wie das Gradzeichen mit lcd.write(223) druckt (im Video bei 31:42).

Demonstration

Das Video demonstriert mehrere wichtige Funktionen des LCDs. Zuerst zeigt es das grundlegende Drucken von "Hello World" und wie man die Funktion lcd.scrollDisplayLeft() verwendet, um Text über den Bildschirm zu bewegen. Später kombiniert es das LCD mit einem DHT11-Sensor, um Temperatur und Luftfeuchtigkeit anzuzeigen, mit einem Potentiometer, um Spannung anzuzeigen, und mit einem Ultraschallsensor, um Distanz anzuzeigen.

Für die Temperaturanzeige liest der Code den Sensor und druckt den Wert. Um eine ganze Zahl ohne Dezimalstellen zu zeigen, kannst du den Gleitkommawert in eine Ganzzahl umwandeln, wie im Video gezeigt (im Video bei 32:21).

Für das Spannungsmessgerät liest der Code den analogen Wert vom Potentiometer, skaliert ihn auf einen Spannungsbereich von 0-5 V und zeigt ihn auf dem Bildschirm an (im Video bei 34:31).

Die abschließende Demonstration kombiniert das LCD mit einem Ultraschallsensor, um die gemessene Entfernung in Zentimetern anzuzeigen (im Video bei 37:55).

Verwandte Projekte aus diesem Video

Dieses Video enthält auch andere Projekt-Tutorials. Sie finden sie hier:

Kapitel

  • [00:00] Einführung in das LCD1602 und Kursübersicht
  • [01:30] Hardware-Überblick über das LCD1602 und das I2C-Modul
  • [02:47] Einstellung von Anzeigekontrast und Hintergrundbeleuchtung
  • [03:14] Pin-Verbindungen und I2C-Adressauswahl
  • [05:28] Schaltplan für das LCD
  • [06:16] Installation der erforderlichen Bibliothek
  • [07:24] Grundlegender Code zum Drucken von Text
  • [11:10] Beispiel für blinkenden Cursor
  • [13:46] Benutzerdefinierte Zeichen und Drucken spezieller Symbole
  • [18:51] Beispiel für serielle Anzeige
  • [23:16] Scrollender Text auf dem LCD
  • [36:51] Kombination des LCD mit einem Ultraschallsensor

Bilder

LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602 displaying voltage and title
LCD1602 displaying voltage and title
screenshot-2
screenshot-2
lcd1602_I2C_wiring_sunfounder
lcd1602_I2C_wiring_sunfounder
910-Lesson 20/31: Displaying simple text on LCD1602
Sprache: C++
/*
Lesson 20/31: Displaying text on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg

*/
/*
This is code for LCD1602 Display with I2C module
 * watch the video for this code https://youtu.be/q9YC_GVHy5A
 
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purpose only.
 * This library is based on work done by DFROBOT (www.dfrobot.com).
 */
/*
 *  This code has been modefied from the Arduino library
 *  Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
 *  in Ajax, Ontario, Canada
 *  for Robojax.com
 *  
 *  This is code for LCD1602 Display with I2C module
 *  which can display text on the screen.
 */
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);



void setup()
{
  // Robojax code for LCD with I2C
  // initialize the LCD, 
  lcd.begin();
 
  // Turn on the blacklight and print a message.
  //lcd.backlight();
  // Robojax code for LCD with I2C


}

void loop()
{

  lcd.clear();
  lcd.setCursor (0,0);  
  lcd.print("SunFounder ");
  lcd.setCursor (0,1);
  lcd.write(244);


  delay(500);
 //end of loopcode Robojax code for LCD with I2C
}

Ressourcen & Referenzen

Dateien📁

Arduino-Bibliotheken (zip)