.. 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