.. note::
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
**Warum beitreten?**
- **Expertenunterstützung**: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
- **Lernen & Teilen**: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
- **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
- **Spezialrabatte**: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
- **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [|link_sf_facebook|] und treten Sie heute bei!
.. _1.1.7_c_pi5:
1.1.7 I2C LCD1602
=======================
Einführung
------------------
Das LCD1602 ist ein Zeichen-Typ Flüssigkristall-Display, das gleichzeitig 32 (16*2) Zeichen anzeigen kann.
Benötigte Komponenten
------------------------------
Für dieses Projekt benötigen wir folgende Komponenten.
.. image:: ../img/list_i2c_lcd.png
Es ist definitiv praktisch, ein ganzes Set zu kaufen, hier ist der Link:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Name
- ARTIKEL IN DIESEM KIT
- LINK
* - Raphael Kit
- 337
- |link_Raphael_kit|
Sie können diese auch separat über die untenstehenden Links kaufen.
.. list-table::
:widths: 30 20
:header-rows: 1
* - KOMPONENTENBESCHREIBUNG
- KAUF-LINK
* - :ref:`cpn_gpio_board`
- |link_gpio_board_buy|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_i2c_lcd`
- |link_i2clcd1602_buy|
Schaltplan
---------------------
============ ========
T-Board Name physical
SDA1 Pin 3
SCL1 Pin 5
============ ========
.. image:: ../img/schematic_i2c_lcd.png
Experimentelle Verfahren
-----------------------------
**Schritt 1:** Schaltkreis aufbauen.
.. image:: ../img/image96.png
**Schritt 2**: I2C einrichten (siehe :ref:`i2c_config`. Wenn Sie I2C bereits eingerichtet haben, überspringen Sie diesen Schritt.)
**Schritt 3:** Verzeichnis wechseln.
.. raw:: html
.. code-block::
cd ~/raphael-kit/c/1.1.7/
**Schritt 4:** Kompilieren.
.. raw:: html
.. code-block::
gcc 1.1.7_Lcd1602.c -lwiringPi
**Schritt 5:** Ausführen.
.. raw:: html
.. code-block::
sudo ./a.out
Nachdem der Code ausgeführt wurde, sehen Sie ``Grüße!, Von SunFounder`` auf dem LCD.
.. note::
* Wenn ein Fehlerhinweis ``wiringPi.h: No such file or directory`` erscheint, beziehen Sie sich bitte auf :ref:`install_wiringpi_pi5`.
* Wenn der Fehler ``Unable to open I2C device: No such file or directory`` auftritt, müssen Sie auf :ref:`i2c_config` verweisen, um I2C zu aktivieren und zu überprüfen, ob die Verdrahtung korrekt ist.
* Wenn der Code und die Verdrahtung in Ordnung sind, das LCD aber trotzdem keinen Inhalt anzeigt, können Sie das Potentiometer auf der Rückseite drehen, um den Kontrast zu erhöhen.
**Code**
* `1.1.7_Lcd1602.c `_
**Code Erklärung**
.. code-block::
void write_word(int data){……}
void send_command(int comm){……}
void send_data(int data){……}
void init(){……}
void clear(){……}
void write(int x, int y, char data[]){……}
Diese Funktionen werden verwendet, um den I2C LCD1602 Open-Source-Code zu steuern. Sie ermöglichen es uns, das I2C LCD1602 einfach zu verwenden.
Von diesen Funktionen wird ``init()`` zur Initialisierung verwendet, ``clear()`` zum Löschen des Bildschirms, ``write()`` zum Schreiben des anzuzeigenden Inhalts und andere Funktionen unterstützen die oben genannten Funktionen.
.. code-block:: c
fd = wiringPiI2CSetup(LCDAddr);
Diese Funktion initialisiert das I2C-System mit dem angegebenen Gerätesymbol. Der Prototyp der Funktion:
.. code-block:: c
int wiringPiI2CSetup(int devId);
Der Parameter devId ist die Adresse des I2C-Geräts. Sie kann über den Befehl i2cdetect ermittelt werden (siehe Anhang) und die devId des I2C LCD1602 beträgt in der Regel 0x27.
.. code-block:: c
void write(int x, int y, char data[]){}
In dieser Funktion ist ``data[]`` das auf dem LCD zu druckende Zeichen, und die Parameter x und y bestimmen die Druckposition (Zeile y+1, Spalte x+1 ist die Startposition des zu druckenden Zeichens).
Phänomen-Bild
--------------------------
.. image:: ../img/image97.jpeg