Alcune parti di questo sito web non sono ancora disponibili nella tua lingua. Stiamo lavorando per risolvere questo problema e ci scusiamo per eventuali disagi.
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.
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.
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-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
809-ESP32 Tutorial 10/55 - Arduino code for 2.5 7 segment