.. note::
Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l'univers des Raspberry Pi, Arduino et ESP32 avec d'autres passionnés.
**Pourquoi rejoindre ?**
- **Support d'experts** : Résolvez les problèmes après-vente et les défis techniques avec l'aide de notre communauté et de notre équipe.
- **Apprendre et partager** : Échangez des astuces et des tutoriels pour améliorer vos compétences.
- **Aperçus exclusifs** : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
- **Réductions spéciales** : Profitez de réductions exclusives sur nos produits les plus récents.
- **Promotions festives et cadeaux** : Participez à des cadeaux et des promotions de vacances.
👉 Prêt à explorer et à créer avec nous ? Cliquez [|link_sf_facebook|] et rejoignez-nous aujourd'hui !
.. _1.1.7_c_pi5:
1.1.7 LCD1602 I2C
=======================
Introduction
------------------
Le LCD1602 est un affichage à cristaux liquides de type caractère, capable d'afficher 32 caractères (16*2) simultanément.
Composants nécessaires
------------------------------
Dans ce projet, nous avons besoin des composants suivants.
.. image:: ../img/list_i2c_lcd.png
Il est certainement pratique d'acheter un kit complet, voici le lien :
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Name
- ITEMS IN THIS KIT
- LINK
* - Raphael Kit
- 337
- |link_Raphael_kit|
Vous pouvez également les acheter séparément via les liens ci-dessous.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUCTION DES COMPOSANTS
- LIEN D'ACHAT
* - :ref:`cpn_gpio_extension_board`
- |link_gpio_board_buy|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_i2c_lcd`
- |link_i2clcd1602_buy|
Schéma de câblage
---------------------
============ ========
Nom T-Board Physique
SDA1 Pin 3
SCL1 Pin 5
============ ========
.. image:: ../img/schematic_i2c_lcd.png
Procédures expérimentales
-----------------------------
**Étape 1 :** Construire le circuit.
.. image:: ../img/image96.png
**Étape 2 :** Configurer l'I2C (voir :ref:`i2c_config`. Si vous avez déjà configuré l'I2C, passez cette étape.)
**Étape 3 :** Changer de répertoire.
.. raw:: html
.. code-block::
cd ~/raphael-kit/c/1.1.7/
**Étape 4 :** Compiler.
.. raw:: html
.. code-block::
gcc 1.1.7_Lcd1602.c -lwiringPi
**Étape 5 :** Exécuter.
.. raw:: html
.. code-block::
sudo ./a.out
Après l'exécution du code, vous pouvez voir ``Greetings!, From SunFounder`` s'afficher sur le LCD.
.. note::
* Si une erreur ``wiringPi.h: No such file or directory`` apparaît, veuillez vous référer à :ref:`install_wiringpi_pi5`.
* Si vous obtenez l'erreur ``Unable to open I2C device: No such file or directory``, vous devez vous référer à :ref:`i2c_config` pour activer l'I2C et vérifier si le câblage est correct.
* Si le code et le câblage sont corrects, mais que le LCD ne s'affiche toujours pas, vous pouvez tourner le potentiomètre à l'arrière pour augmenter le contraste.
**Code**
* `1.1.7_Lcd1602.c `_
**Explication du code**
.. 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[]){……}
Ces fonctions sont utilisées pour contrôler le code source ouvert I2C LCD1602. Elles nous permettent d'utiliser facilement l'I2C LCD1602.
Parmi ces fonctions, ``init()`` est utilisée pour l'initialisation, ``clear()`` est utilisée pour effacer l'écran, ``write()`` est utilisée pour écrire ce qui est affiché, et d'autres fonctions soutiennent les fonctions ci-dessus.
.. code-block:: c
fd = wiringPiI2CSetup(LCDAddr);
Cette fonction initialise le système I2C avec le symbole de périphérique spécifié. Le prototype de la fonction :
.. code-block:: c
int wiringPiI2CSetup(int devId);
Le paramètre devId est l'adresse du périphérique I2C, elle peut être trouvée via la commande i2cdetect (voir Annexe) et le devId de l'I2C LCD1602 est généralement 0x27.
.. code-block:: c
void write(int x, int y, char data[]){}
Dans cette fonction, ``data[]`` est le caractère à imprimer sur le LCD, et les paramètres x et y déterminent la position d'impression (la ligne y+1, la colonne x+1 est la position de départ du caractère à imprimer).
Image du phénomène
--------------------------
.. image:: ../img/image97.jpeg