.. note::
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
**Perché unirti a noi?**
- **Supporto esperto**: Risolvi problemi post-vendita e sfide tecniche con l'aiuto della nostra comunità e del nostro team.
- **Impara e condividi**: Scambia suggerimenti e tutorial per migliorare le tue competenze.
- **Anteprime esclusive**: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.
- **Sconti speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
- **Promozioni festive e concorsi**: Partecipa a concorsi e promozioni durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi stesso!
.. _1.1.7_py:
1.1.7 LCD1602 I2C
======================
Introduzione
------------------
LCD1602 è un display a cristalli liquidi di tipo carattere, che può visualizzare 32
(16*2) caratteri contemporaneamente.
Componenti Necessari
------------------------------
In questo progetto, abbiamo bisogno dei seguenti componenti.
.. image:: ../img/list_i2c_lcd.png
È sicuramente comodo acquistare un kit completo, ecco il link:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nome
- ARTICOLI IN QUESTO KIT
- LINK
* - Kit Raphael
- 337
- |link_Raphael_kit|
Puoi anche acquistarli separatamente dai link qui sotto.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUZIONE AI COMPONENTI
- LINK PER L'ACQUISTO
* - :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|
Schema Elettrico
---------------------
============ ========
T-Board Name physical
SDA1 Pin 3
SCL1 Pin 5
============ ========
.. image:: ../img/schematic_i2c_lcd.png
Procedure Sperimentali
-----------------------------
**Passo 1:** Costruisci il circuito.
.. image:: ../img/image96.png
**Passo 2**: Configura l'I2C (vedi :ref:`i2c_config`. Se hai già configurato l'I2C, salta questo passaggio.)
**Passo 3:** Cambia directory.
.. raw:: html
.. code-block::
cd ~/raphael-kit/python/
**Passo 4:** Esegui.
.. raw:: html
.. code-block::
sudo python3 1.1.7_Lcd1602.py
Dopo l'esecuzione del codice, vedrai visualizzato su LCD il messaggio ``Greetings!, From SunFounder``.
.. note::
* Se ricevi l'errore ``FileNotFoundError: [Errno 2] No such file or directory: '/dev/i2c-1'``, devi fare riferimento a :ref:`i2c_config` per abilitare l'I2C.
* Se ricevi l'errore ``ModuleNotFoundError: No module named 'smbus2'``, esegui ``sudo apt install python3-smbus2``.
* Se compare l'errore ``OSError: [Errno 121] Remote I/O error``, significa che il modulo è cablato male o è danneggiato.
* Se il codice e i collegamenti sono corretti, ma l'LCD non visualizza ancora contenuti, puoi regolare il potenziometro sul retro per aumentare il contrasto.
**Codice**
.. note::
Puoi **Modificare/Reimpostare/Copiare/Eseguire/Interrompere** il codice qui sotto. Ma prima devi accedere al percorso del codice come ``raphael-kit/python``. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l'effetto.
.. raw:: html
.. code-block:: python
import LCD1602
import time
def setup():
LCD1602.init(0x27, 1) # init(indirizzo slave, retroilluminazione)
LCD1602.write(0, 0, 'Greetings!')
LCD1602.write(1, 1, 'From SunFounder')
time.sleep(2)
def destroy():
LCD1602.clear()
if __name__ == "__main__":
try:
setup()
except KeyboardInterrupt:
destroy()
**Spiegazione del Codice**
.. code-block:: python
import LCD1602
Questo file è un file open source per controllare l'I2C LCD1602. Ci consente di utilizzare facilmente l'I2C LCD1602.
.. code-block:: python
LCD1602.init(0x27, 1)
La funzione inizializza il sistema I2C con il simbolo del dispositivo designato. Il primo parametro è l'indirizzo del dispositivo I2C, che può essere rilevato tramite il comando i2cdetect (vedi Appendice per i dettagli). L'indirizzo dell'I2C LCD1602 è generalmente 0x27.
.. code-block:: python
LCD1602.write(0, 0, 'Greetings!')
All'interno di questa funzione, 'Greetings!' è il carattere che sarà stampato sulla riga 0+1, colonna 0+1 dell'LCD.
Ora puoi vedere “Greetings!! From SunFounder” visualizzato su LCD.
Immagine del Fenomeno
--------------------------
.. image:: ../img/image97.jpeg