Nota
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 [qui] e unisciti oggi!
2.4 Microchip - 74HC595¶
Benvenuto in questo entusiasmante progetto! In questo progetto utilizzeremo il chip 74HC595 per controllare una sequenza di accensione di 8 LED.
Immagina di avviare questo progetto e di assistere a un affascinante flusso di luce, come se un arcobaleno scintillante saltasse tra gli 8 LED. Ogni LED si accenderà uno alla volta e si spegnerà rapidamente, mentre il LED successivo continuerà a brillare, creando un effetto dinamico e spettacolare.
Grazie all’uso intelligente del chip 74HC595, possiamo controllare lo stato di accensione e spegnimento di più LED per ottenere l’effetto di flusso. Questo chip ha più pin di uscita che possono essere collegati in serie per controllare la sequenza di illuminazione dei LED. Inoltre, grazie all’espandibilità del chip, possiamo facilmente aggiungere altri LED al display in movimento, creando effetti ancora più spettacolari.
Componenti necessari
In questo progetto, avremo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
ESP32 Starter Kit |
320+ |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Pin Disponibili
Ecco un elenco di pin disponibili sulla scheda ESP32 per questo progetto.
Pin Disponibili |
IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23 |
Schema Elettrico
Quando MR (pin10) è a livello alto e CE (pin13) è a livello basso, i dati vengono immessi sul fronte di salita di SHcp e passano al registro di memoria attraverso il fronte di salita di SHcp.
Se i due clock sono collegati insieme, il registro a scorrimento è sempre un impulso in anticipo rispetto al registro di memoria.
Nel registro di memoria c’è un pin di ingresso di scorrimento seriale (DS), un pin di uscita seriale (Q7”) e un pulsante di reset asincrono (livello basso).
Il registro di memoria fornisce un bus con uscita parallela a 8 bit e in tre stati.
Quando OE è abilitato (livello basso), i dati nel registro di memoria vengono inviati al bus (Q0 ~ Q7).
Cablaggio
Codice
Nota
Apri il file
2.4_74hc595.inonel percorsoesp32-starter-kit-main\c\codes\2.4_74hc595.Dopo aver selezionato la scheda (ESP32 Dev Module) e la porta appropriata, clicca sul pulsante Carica.
Una volta completato il caricamento del codice sulla scheda ESP32, vedrai i LED accendersi uno dopo l’altro.
Come funziona?
Dichiarare un array, memorizzare diversi numeri binari a 8 bit che vengono utilizzati per cambiare lo stato operativo degli otto LED controllati da 74HC595.
int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};
Funzione
loop().void loop() { for(int num = 0; num <10; num++) { digitalWrite(STcp,LOW); //Imposta ST_CP e tieni basso finché trasmetti shiftOut(DS,SHcp,MSBFIRST,datArray[num]); digitalWrite(STcp,HIGH); //solleva ST_CP per salvare i dati delay(1000); } }
Scorre attraverso il
datArray[], inviando sequenzialmente i valori binari al registro a scorrimento.I comandi
digitalWrite(STcp, LOW)edigitalWrite(STcp, HIGH)agganciano i dati nel registro di memoria.La funzione
shiftOut()invia i valori binari dadatArray[]al registro a scorrimento utilizzando il pin dati (DS) e il pin clock del registro a scorrimento (SHcp).MSBFIRSTsignifica muoversi dai bit più alti.Poi crea una pausa di 1 secondo tra ogni aggiornamento del pattern dei LED.