.. note::
Ciao, benvenuto nella Community di Appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.
**Perché unirsi a noi?**
- **Supporto esperto**: Risolvi problemi post-vendita e sfide tecniche con l'aiuto della nostra community e del nostro team.
- **Impara e Condividi**: Scambia consigli e tutorial per migliorare le tue competenze.
- **Anteprime esclusive**: Ottieni l'accesso anticipato a nuovi annunci di prodotti e anteprime.
- **Sconti speciali**: Goditi sconti esclusivi sui nostri prodotti più recenti.
- **Promozioni festive e Giveaway**: Partecipa a giveaway e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi!
.. _ar_7_segment:
2.5 Display a 7 Segmenti
==========================
Benvenuto in questo affascinante progetto! In questo progetto esploreremo il mondo incantevole della visualizzazione dei numeri da 0 a 9 su un display a sette segmenti.
Immagina di attivare questo progetto e vedere un piccolo, compatto display illuminarsi vivacemente con ciascun numero da 0 a 9. È come avere uno schermo in miniatura che mostra le cifre in modo coinvolgente. Controllando i pin di segnale, puoi cambiare facilmente il numero visualizzato e creare vari effetti accattivanti.
Attraverso semplici collegamenti di circuito e programmazione, imparerai come interagire con il display a sette segmenti e portare in vita i numeri desiderati. Che si tratti di un contatore, di un orologio, o di qualsiasi altra applicazione interessante, il display a sette segmenti sarà il tuo affidabile compagno, aggiungendo un tocco di brillantezza ai tuoi progetti.
**Componenti necessari**
In questo progetto, avremo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nome
- ELEMENTI IN QUESTO KIT
- LINK
* - ESP32 Starter Kit
- 320+
- |link_esp32_starter_kit|
Puoi anche acquistarli separatamente dai link sottostanti.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUZIONE AI COMPONENTI
- LINK PER L'ACQUISTO
* - :ref:`cpn_esp32_wroom_32e`
- |link_esp32_wroom_32e_buy|
* - :ref:`cpn_esp32_camera_extension`
- |link_esp32_extension_board|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_resistor`
- |link_resistor_buy|
* - :ref:`cpn_7_segment`
- |link_7segment_buy|
* - :ref:`cpn_74hc595`
- |link_74hc595_buy|
**Pin Disponibili**
Ecco un elenco di pin disponibili sulla scheda ESP32 per questo progetto.
.. list-table::
:widths: 5 20
* - Pin Disponibili
- IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23
**Schema Elettrico**
.. image:: ../../img/circuit/circuit_2.5_74hc595_7_segment.png
Qui il principio del cablaggio è sostanzialmente lo stesso di :ref:`ar_74hc595`, l'unica differenza è che Q0-Q7 sono collegati ai pin a ~ g del Display a 7 Segmenti.
.. list-table:: Cablaggio
:widths: 15 25
:header-rows: 1
* - 74HC595
- Display a Segmenti LED
* - Q0
- a
* - Q1
- b
* - Q2
- c
* - Q3
- d
* - Q4
- e
* - Q5
- f
* - Q6
- g
* - Q7
- dp
**Cablaggio**
.. image:: ../../img/wiring/2.5_segment_bb.png
:width: 800
**Codice**
.. note::
* Apri il file ``2.5_7segment.ino`` nel percorso ``esp32-starter-kit-main\c\codes\2.5_7segment``.
* Dopo aver selezionato la scheda (ESP32 Dev Module) e la porta appropriata, clicca sul pulsante **Carica**.
* :ref:`unknown_com_port`
.. raw:: html
Dopo che il codice è stato caricato con successo, vedrai il Display a Segmenti LED visualizzare i numeri da 0 a 9 in sequenza.
**Come funziona?**
In questo progetto, stiamo usando la funzione ``shiftOut()`` per scrivere il numero binario nel registro a scorrimento.
Supponiamo che il Display a 7 Segmenti visualizzi il numero "2". Questo schema di bit corrisponde ai segmenti **f**, **c** e **dp** spenti (low), mentre i segmenti **a**, **b**, **d**, **e** e **g** sono accesi (high). Questo è "01011011" in binario e "0x5b" in notazione esadecimale.
Pertanto, dovresti chiamare ``shiftOut(DS,SHcp,MSBFIRST,0x5b)`` per visualizzare il numero "2" sul display a 7 segmenti.
.. image:: img/7_segment2.png
* `Hexadecimal `_
* `BinaryHex Converter `_
La seguente tabella mostra gli schemi esadecimali che devono essere scritti nel registro a scorrimento per visualizzare i numeri da 0 a 9 su un display a 7 segmenti.
.. list-table:: Codice delle Cifre
:widths: 20 20 20
:header-rows: 1
* - Numeri
- Codice Binario
- Codice Esadecimale
* - 0
- 00111111
- 0x3f
* - 1
- 00000110
- 0x06
* - 2
- 01011011
- 0x5b
* - 3
- 01001111
- 0x4f
* - 4
- 01100110
- 0x66
* - 5
- 01101101
- 0x6d
* - 6
- 01111101
- 0x7d
* - 7
- 00000111
- 0x07
* - 8
- 01111111
- 0x7f
* - 9
- 01101111
- 0x6f
Scrivi questi codici in ``shiftOut()`` per far visualizzare al Display a Segmenti LED i numeri corrispondenti.