.. 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_py_pi5:
1.1.7 LCD1602 I2C
========================
Introduction
--------------------
Le LCD1602 est un écran à cristaux liquides de type caractère, capable d'afficher 32 caractères (16*2) simultanément.
Composants nécessaires
--------------------------------
Pour ce projet, nous avons besoin des composants suivants :
.. image:: ../python_pi5/img/1.1.7_i2c_lcd_list.png
Il est très pratique d'acheter un kit complet, voici le lien :
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nom
- ARTICLES DANS CE KIT
- LIEN
* - Kit Raphael
- 337
- |link_Raphael_kit|
Vous pouvez également les acheter séparément à partir des 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:: ../python_pi5/img/1.1.7_i2c_lcd_schematic.png
Procédures expérimentales
--------------------------------
**Étape 1 :** Construisez le circuit.
.. image:: ../python_pi5/img/1.1.7_i2c_lcd1602_circuit.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/python-pi5
**Étape 4 :** Exécuter.
.. raw:: html
.. code-block::
sudo python3 1.1.7_Lcd1602_zero.py
Après l'exécution du code, vous verrez « Greetings!, From SunFounder » s'afficher sur le LCD.
.. note::
* Si vous obtenez l'erreur ``FileNotFoundError: [Errno 2] No such file or directory: '/dev/i2c-1'``, vous devez consulter :ref:`i2c_config` pour activer l'I2C.
* Si vous obtenez l'erreur ``ModuleNotFoundError: No module named 'smbus2'``, veuillez exécuter ``sudo apt install python3-smbus2``.
* Si l'erreur ``OSError: [Errno 121] Remote I/O error`` apparaît, cela signifie que le module est mal câblé ou qu'il est défectueux.
* Si le code et le câblage sont corrects, mais que le LCD n'affiche toujours pas de contenu, vous pouvez tourner le potentiomètre à l'arrière pour augmenter le contraste.
.. warning::
Si vous recevez le message d'erreur ``RuntimeError: Cannot determine SOC peripheral base address``, veuillez consulter :ref:`faq_soc`
**Code**
.. note::
Vous pouvez **Modifier/Réinitialiser/Copier/Exécuter/Arrêter** le code ci-dessous. Mais avant cela, vous devez aller au chemin source du code comme ``raphael-kit/python-pi5``. Après avoir modifié le code, vous pouvez l'exécuter directement pour voir l'effet.
.. raw:: html
.. code-block:: python
#!/usr/bin/env python3
import LCD1602 # Import module for interfacing with LCD1602
import time # Import module for timing functions
def setup():
# Initialize LCD with I2C address 0x27 and enable backlight
LCD1602.init(0x27, 1)
# Display the message 'Greetings!' at the top-left corner (row 0, column 0)
LCD1602.write(0, 0, 'Greetings!')
# Display the message 'From SunFounder' on the second line (row 1, column 1)
LCD1602.write(1, 1, 'From SunFounder')
time.sleep(2) # Display messages for 2 seconds
try:
setup() # Run the setup function to initialize the LCD and display messages
except KeyboardInterrupt:
# Clear the LCD display if a keyboard interruption (e.g., Ctrl+C) occurs
LCD1602.clear()
pass # Proceed with no further action
**Explication du code**
1. Ce fichier est un fichier open source pour contrôler le LCD1602 I2C. Il nous permet d'utiliser facilement le LCD1602 I2C.
.. code-block:: python
import LCD1602 # Import module for interfacing with LCD1602
2. La fonction initialise le système I2C avec le symbole de l'appareil désigné. Le premier paramètre est l'adresse de l'appareil I2C, qui peut être détectée via la commande i2cdetect (voir l'Annexe pour les détails). L'adresse du LCD1602 I2C est généralement 0x27.
.. code-block:: python
# Initialize LCD with I2C address 0x27 and enable backlight
LCD1602.init(0x27, 1)
3. ``LCD1602.write`` est utilisé pour afficher des messages sur le LCD. Les deux premiers paramètres sont les positions de la ligne et de la colonne, et le troisième est le message. Vous pouvez maintenant voir "Greetings! From SunFounder" affiché sur le LCD.
.. code-block:: python
# Display the message 'Greetings!' at the top-left corner (row 0, column 0)
LCD1602.write(0, 0, 'Greetings!')
# Display the message 'From SunFounder' on the second line (row 1, column 1)
LCD1602.write(1, 1, 'From SunFounder')