Tutorial ESP32 33/55 - Dadi digitali utilizzando il kit di apprendimento IoT ESP32 di SunFounder

Tutorial ESP32 33/55 - Dadi digitali utilizzando il kit di apprendimento IoT ESP32 di SunFounder

In questo tutorial, creeremo un dado digitale utilizzando un display a sette segmenti e l'ESP32 del kit di apprendimento IoT di SunFounder. Il progetto ti permetterà di lanciare un dado virtuale, generando numeri da 1 a 6 premendo un pulsante. Questo è un modo fantastico per esplorare le capacità dell'ESP32 mentre si impara a interfacciarsi con display e pulsanti. Per ulteriore chiarezza, assicurati di controllare il video (nel video a 0:00).

ESP32-33_dadi-digitali-principale

Hardware Spiegato

I principali componenti di questo progetto includono il microcontrollore ESP32, un registro di traslazione 74HC595, un display a sette segmenti e un pulsante. L'ESP32 è un potente microcontrollore che integra Wi-Fi e Bluetooth, rendendolo adatto per applicazioni IoT. Il registro di traslazione 74HC595 ci consente di controllare il display a sette segmenti utilizzando meno pin rispetto al collegamento diretto di ciascun segmento.

Il display a sette segmenti mostra numeri ed è controllato inviando dati dal registro di scorrimento. Il pulsante è utilizzato per attivare il lancio dei dadi, generando un numero casuale che verrà visualizzato. Quando premuto, il pulsante si collega al pin 13 sull'ESP32, che ha una resistenza di pull-up interna per mantenerlo in uno stato alto quando non è premuto.

Dettagli del foglio dati

Produttore Texas Instruments
Numero di parte 74HC595
Tensione logica/IO da 2 V a 6 V
Tensione di alimentazione da 4,5 V a 5,5 V
Corrente di uscita (per canale) 6 mA max
Corrente di picco (per canale) 35 mA max
Indicazioni sulla frequenza PWM Non applicabile
Soglie logiche di ingresso VIH≥ 2 V, VIL≤ 0,8 V
Caduta di tensione / RDS(on)/ saturazione 0,5 V max
Limiti termici 150 °C
Pacchetto DIP-16
Note / varianti Comunemente usato nei display digitali

  • Assicurati di avere livelli di tensione adeguati (da 4,5 V a 5,5 V) per un funzionamento affidabile.
  • Limitare la corrente di uscita per evitare di danneggiare il registro di scorrimento.
  • Usa condensatori di disaccoppiamento vicino ai pin di alimentazione per stabilizzare la tensione.
  • Collega correttamente il display a sette segmenti per evitare la rappresentazione errata dei numeri.
  • Controllare i cablaggi per connessioni allentate che potrebbero portare a un comportamento imprevisto.

Istruzioni di cablaggio

ESP32-33_digital-dice-wiring

Per cablare i dadi digitali, inizia impostando le connessioni di alimentazione. Collega il ground (linea blu) sulla tua scheda di prototipazione al pin di massa sull'ESP32 e assicurati che tutti i punti di massa siano interconnessi. Successivamente, collegati un pin da 3,3V dall'ESP32 al rail di alimentazione (linea rossa) sulla scheda di prototipazione.

ESP32-33_schema_dadi_digitale

Per il registratore di spostamento 74HC595, assicurati che il pin 1 sia collegato al rail da 3,3V e il pin 8 a terra. Collega il pin di uscita dati (DS) al pin 25 dell'ESP32, il pin dell'orologio di spostamento (SHCP) al pin 26 e il pin dell'orologio di memorizzazione (STCP) al pin 27. Il pulsante dovrebbe essere collegato tra il pin 13 dell'ESP32 e terra, consentendo di tirare il pin a basso quando viene premuto.

Esempi di codice e guida passo passo

Nel codice, definiamo prima i pin utilizzati per il registro di scorrimento e il pulsante. Il pin del pulsante è definito comebuttonPine è collegato al pin 13 sull'ESP32. L'array datidatArraycontiene le rappresentazioni binarie dei numeri 0-9 per il display a sette segmenti.


const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP 
const int DS = 25; //DS 
const int buttonPin = 13;
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

Nellasetup()nella funzione, impostiamo il pin del pulsante in modalità input e i pin del registro di scorrimento in modalità output. Questo prepara i pin per leggere l'input dal pulsante e per inviare dati al display.


void setup ()
{
  pinMode(buttonPin,INPUT); 
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}

La logica principale del programma si trova nelloop()funzione. Controlla se il pulsante è premuto, genera un numero casuale e chiama ilshow_number()funzione per visualizzare il numero sul display a sette segmenti.


void loop()
{
  if(digitalRead(buttonPin) == LOW)
  {
    int diceNumber = random(1, 7);
    show_number(diceNumber);
    delay(50);
  }
}

Ilshow_number()La funzione invia il valore appropriato dall'array di dati al registro di scorrimento, che poi controlla i segmenti del display per mostrare il numero generato. Questa funzione è cruciale per il feedback visivo quando il pulsante viene premuto.

74HC595 Display LED: Segmento Settimale Spiegato
Display LED 74HC595: Segmento Settoriale spiegato

Dimostrazione / Cosa Aspettarsi

Quando l'impostazione è completa e il codice è caricato, premere il pulsante genererà un numero casuale tra 1 e 6, che verrà visualizzato sul display a sette segmento. Se tutto è cablato correttamente, il display dovrebbe mostrare un numero ogni volta che il pulsante viene premuto. Fai attenzione agli ingressi flottanti; assicurati che il pulsante sia correttamente collegato a terra per evitare comportamenti erratici (nel video a 1:30).

Timestamp video

  • 00:00 Inizio
  • 1:48 Introduzione del progetto
  • 3:40 Spiegazione del cablaggio per dadi digitali
  • 13:16 Codice Arduino per dadi digitali spiegato
  • 19:19 Selezione della scheda ESP32 e della porta COM nell'Arduino IDE
  • 21:00 Dimostrazione di Dadi Digitali
  • 22:15 Correzione del codice Arduino

Immagini

Display LED 74HC595: Segmento Settembre spiegato
Display LED 74HC595: Segmento Settembre spiegato
ESP32-33_digital-dice-wiring
ESP32-33_digital-dice-wiring
ESP32-33_digital-dice-main
ESP32-33_digital-dice-main
ESP32-33_digital-dice-schematic
ESP32-33_digital-dice-schematic
834-ESP32 Tutorial 33/55- Arduino code for digital dice
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.