.. note:: Ciao, benvenuto nella comunità di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci il mondo di 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 consigli e tutorial per migliorare le tue competenze. - **Anteprime esclusive**: Ottieni accesso anticipato a nuovi annunci di prodotti e contenuti esclusivi. - **Sconti speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti. - **Promozioni festive e concorsi**: Partecipa a concorsi e promozioni speciali durante le festività. 👉 Sei pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi! .. _ar_7_segment: 2.5 Display a 7 Segmenti =========================== Panoramica ------------ In questa lezione, imparerai a conoscere il Display a 7 Segmenti. Grazie ai suoi numerosi vantaggi, questo dispositivo è ampiamente utilizzato in apparecchiature elettriche, in particolare negli elettrodomestici che mostrano informazioni numeriche, come display, condizionatori d’aria, scaldabagni, frigoriferi e così via. I LED del Display a 7 Segmenti emettono luce in base ai segnali elettrici inviati ai vari pin. Può visualizzare informazioni numeriche come orari, date, temperature e altro ancora. Componenti Necessari ---------------------- .. image:: img/list_2.5.png * :ref:`cpn_mega2560` * :ref:`cpn_breadboard` * :ref:`cpn_wires` * :ref:`cpn_7_segment` * :ref:`cpn_resistor` Circuito con Fritzing ------------------------ .. image:: img/image429.png Collega ciascun pin da a a g del Display a 7 Segmenti a una resistenza limitatrice di corrente da 220 ohm e poi ai pin digitali 4–11. Collega GND a GND. Il cablaggio tra il display a 7 segmenti e la scheda Mega2560 è mostrato di seguito: .. image:: img/image430.png Schema del Circuito ----------------------- .. image:: img/image431.png Codice --------- .. note:: * Puoi aprire direttamente il file ``2.5_7segment.ino`` che si trova nel percorso ``sunfounder_vincent_kit_for_arduino\code\2.5_7segment``. * Oppure copia questo codice nell'Arduino IDE. .. raw:: html Una volta caricato il codice, vedrai il display a 7 segmenti mostrare in sequenza 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, d, E, F. Analisi del Codice ---------------------- Associa i numeri dei pin sul display a 7 segmenti ai pin della scheda Mega2560, dichiarandoli come segue: .. code-block:: arduino const int a=7; // il segmento "a" del display è collegato al pin digitale 7 const int b=6; // il segmento "b" del display è collegato al pin digitale 6 const int c=5; // il segmento "c" del display è collegato al pin digitale 5 const int d=11; // il segmento "d" del display è collegato al pin digitale 11 const int e=10; // il segmento "e" del display è collegato al pin digitale 10 const int f=8; // il segmento "f" del display è collegato al pin digitale 8 const int g=9; // il segmento "g" del display è collegato al pin digitale 9 const int dp=4; // il punto decimale del display è collegato al pin digitale 4 Crea una serie di sottofunzioni per gestire lo stato dei segmenti durante la visualizzazione di numeri o lettere. Ad esempio, per visualizzare il numero "2", i segmenti F e C sono spenti, mentre gli altri sono accesi. .. image:: img/image89.jpeg Per prima cosa, è importante capire come il numero **2** viene mostrato sul display. Si accendono i segmenti a, b, d, e, e g impostando i pin corrispondenti su HIGH, mentre i pin collegati a c e f rimangono su LOW. Si utilizza la funzione ``turnOffAllSegments()`` per spegnere tutti i segmenti prima di accendere solo quelli necessari. .. code-block:: arduino ... void digital_2() // mostra "2" sul display a 7 segmenti { turnOffAllSegments(); digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(g, HIGH); digitalWrite(e, HIGH); digitalWrite(d, HIGH); } ... Nel loop(), richiama la funzione che visualizza il numero. .. code-block:: arduino void loop() { digital_1(); // mostra "1" sul display delay(1000); // attesa di 1 secondo digital_2(); // mostra "2" sul display delay(1000); // attesa di 1 secondo digital_3(); // mostra "3" sul display //... } Immagine del Fenomeno ----------------------- .. image:: img/image90.jpeg