Tutorial ESP32 10/55 - Contatore digitale con display a sette segmenti 74HC595 - Kit di apprendimento IoT ESP32

Tutorial ESP32 10/55 - Contatore digitale con display a sette segmenti 74HC595 - Kit di apprendimento IoT ESP32

In questo tutorial, creeremo un contatore digitale utilizzando un display a sette segmenti controllato dal microcontrollore ESP32. Il contatore aumenterà da 0 a 9 e poi decrescerà nuovamente a 0, fornendo una chiara visualizzazione del processo di conteggio. Esploreremo anche come accendere segmenti individuali e visualizzare lettere sul display a sette segmenti.

ESP32_Animte7Segment-segmenti

Questo progetto utilizza un registro di traslazione 74HC595 per controllare il display, permettendoci di gestire efficientemente i segmenti senza utilizzare troppi pin GPIO sull'ESP32. Inviando valori binari al registro di traslazione, possiamo accendere i segmenti corrispondenti per rappresentare numeri e lettere. Per una comprensione più profonda del processo, puoi fare riferimento al video (nel video a 03:15).

ESP32_Animte7Segment-letter

Hardware Spiegato

I componenti principali di questo progetto includono il microcontrollore ESP32, un registratore di scorrimento 74HC595 e un display a sette segmenti. L'ESP32 è un potente microcontrollore con capacità Wi-Fi e Bluetooth integrate, rendendolo adatto per progetti IoT. Il 74HC595 è un registratore di scorrimento che ci consente di controllare più uscite utilizzando solo pochi pin di ingresso. Funziona prendendo dati seriali e convertendoli in uscita parallela, perfetto per pilotare un display a sette segmenti.

Il display a sette segmenti consiste di sette LED individuali disposti in un modello a figuretta. Ogni segmento può essere acceso o spento inviando il valore binario appropriato al registro a scorrimento. Ad esempio, per visualizzare il numero 0, tutti i segmenti tranne quello centrale (G) devono essere accesi.

ESP32_Animte7Segment-contatore-su-giù
ESP32_Animte7Segment-counter-1

Dettagli del datasheet

Produttore Texas Instruments
Numero di parte 74HC595
Tensione logica/IO 2 V a 6 V
Tensione di alimentazione 2 V a 6 V
Corrente di uscita (per canale) 6 mA
Corrente di picco (per canale) 35 mA
Linee guida sulla frequenza PWM Fino a 1 kHz
Soglie logiche di ingresso 0,3 VCCa 0,7 VCC
Caduta di tensione / RDS(on)/ saturazione 0,2 V max
Limiti termici 125 °C
Pacchetto DIP-16
Note / varianti Disponibile in diverse confezioni

  • Assicurati di fornire la giusta tensione (da 2 V a 6 V).
  • Limitare la corrente in uscita per prevenire surriscaldamenti.
  • Utilizzare resistori separati per ciascun segmento per una luminosità ottimale.
  • Fai attenzione al cablaggio per evitare cortocircuiti e connessioni errate.
  • Segui attentamente il pinout per evitare configurazioni errate.

Istruzioni di cablaggio

ESP32-10-seven-segment-wiring

Inizia configurando il tuo breadboard. Collega il binario di terra (linea blu) e il binario di alimentazione (linea rossa). La terra dovrebbe collegarsi alla linea blu su un lato del breadboard, mentre l'alimentazione dovrebbe collegarsi alla linea rossa sul lato opposto. Usa un filo nero per collegare la terra dell'ESP32 al binario di terra e un filo rosso per collegare il pin da 3,3V dell'ESP32 al binario di alimentazione.

Inserire poi il registro di scorrimento 74HC595 nella breadboard, assicurandosi che il profilo sia orientato correttamente. Collegare il pin 11 (DS) al pin 25 dell'ESP32, il pin 12 (SH_CP) al pin 26 e il pin 14 (ST_CP) al pin 27. Collegare il terminale di massa (pin 8) del registro di scorrimento al binario di massa e il pin 10 (MR) al binario di alimentazione per l'attivazione.

Per il display a sette segmenti, collegare i pin corrispondenti ai segmenti (a-g) ai pin di uscita del registratore di scorrimento. Utilizzare una resistenza (220 ohm) in serie per ogni segmento per limitare la corrente. Assicurati di avere collegamenti adeguati per il pin comune, che può essere sia anodo comune che catodo comune a seconda del tipo di display.

Esempi di codice e guida passo passo

Nella funzione di configurazione, iniziamo definendo i pin collegati al registratore di scorrimento come uscite. Questo assicura che il nostro ESP32 possa controllare i dati inviati al display.

void setup ()
{
  //set pins to output
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}

Qui definiamoSTcp,SHcp, eDScome i pin collegati a ST_CP, SH_CP e DS del registro di scorrimento, rispettivamente. Impostare questi pin come uscite ci consente di controllare il registro di scorrimento.

Il ciclo principale del programma conta da 0 a 9, inviando i valori corrispondenti al display usando ilshiftOutfunzione.

for(int num = 0; num <10; num++)
{
    digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
    shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
    digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
    delay(1000);
}

Questo ciclo incrementa ilnumvariabile, inviando il valore corrispondente da thedatArrayalla visualizzazione ogni secondo. IlshiftOutla funzione trasmette i dati al registro di scorrimento, che poi illumina i segmenti appropriati.

Dimostrazione / Cosa Aspettarsi

Una volta completato il cablaggio e caricato il codice, dovresti vedere il display a sette segmenti contare da 0 a 9, facendo una breve pausa prima di contare nuovamente fino a 0. Ogni numero verrà visualizzato per un secondo. Se desideri accelerare il conteggio, puoi regolare il ritardo nel ciclo (nel video alle 15:30).

Quando si manipolano i segmenti singolarmente, ricorda di inviare i valori binari corretti per visualizzare lettere o segmenti specifici. Se il display appare opaco, considera di aggiungere resistori individuali per ogni segmento per garantire una luminosità uniforme su tutto il display.

Timestamp video

  • 00:00 Inizio
  • 1:53 Introduzione ai sette segmenti
  • 4:38 Cablaggio spiegato
  • 13:15 Codice Arduino-1
  • 17:01 Selezionando la porta COM e la scheda ESP32
  • 18:43 Dimostrazione-1
  • 20:13 Visualizzazione di una sola cifra
  • 21:38 Contatore su e giù
  • 23:07 Accendendo/spegnendo ogni segmento
  • 24:53 Visualizzazione di A, B, C, D, E e F

Immagini

ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
ESP32-10-seven-segment-wiring
809-ESP32 Tutorial 10/55 - Arduino code for 2.5 7 segment
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.