Nota

Ciao, benvenuto nella community di appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.

Perché unirsi?

  • Supporto esperto: Risolvi i problemi post-vendita e affronta le 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: Accedi in anteprima agli annunci di nuovi prodotti e alle anteprime esclusive.

  • Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni durante le festività.

👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

5.1 Microchip - 74HC595

Un circuito integrato (integrated circuit) è un dispositivo elettronico miniaturizzato, rappresentato dalla sigla «IC» nel circuito.

Attraverso un certo processo, i transistor, i resistori, i condensatori, gli induttori e altri componenti e cablaggi necessari in un circuito vengono interconnessi, fabbricati su una o più piccole piastre semiconduttrici o substrati dielettrici, e successivamente racchiusi in un package, diventando una microstruttura con le funzioni del circuito richieste; tutti i componenti sono stati strutturati come un tutt’uno, portando i componenti elettronici verso la micro-miniaturizzazione, il basso consumo energetico, l’intelligenza e l’alta affidabilità.

Gli inventori dei circuiti integrati sono Jack Kilby (circuiti integrati basati sul germanio (Ge)) e Robert Norton Noyce (circuiti integrati basati sul silicio (Si)).

Questo kit è dotato di un IC, il 74HC595, che consente di risparmiare notevolmente l’uso dei pin GPIO. In particolare, può sostituire 8 pin per l’uscita del segnale digitale scrivendo un numero binario a 8 bit.

Componenti Necessari

In questo progetto, ci servono i seguenti componenti.

È sicuramente conveniente acquistare un intero kit, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK PER L’ACQUISTO

Kepler Kit

450+

Kepler Ultimate Kit

Puoi anche acquistarli separatamente dai link qui sotto.

SN

INTRODUZIONE COMPONENTE

QUANTITÀ

LINK PER L’ACQUISTO

1

Introduzione al Pico W

1

ACQUISTA

2

Cavo Micro USB

1

3

Breadboard

1

ACQUISTA

4

Cavi Jumper

Diversi

ACQUISTA

5

Resistenza

8(220Ω)

ACQUISTA

6

LED

8

ACQUISTA

7

74HC595

1

ACQUISTA

Schema Elettrico

sch_74hc_led

  • Quando MR (pin10) è a livello alto e OE (pin13) è a livello basso, i dati vengono inseriti nel 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 prima rispetto al registro di memoria.

  • Nel registro di memoria sono presenti un pin di ingresso seriale (Ds), un pin di uscita seriale (Q) e un pulsante di reset asincrono (a livello basso).

  • Il registro di memoria emette un bus parallelo a 8 bit e in tre stati.

  • Quando OE è abilitato (livello basso), i dati nel registro di memoria vengono emessi sul bus (Q0 ~ Q7).

Cablaggio

wiring_74hc_led

Codice

Nota

  • Puoi aprire il file 5.1_microchip_74hc595.ino nel percorso kepler-kit-main/arduino/5.1_microchip_74hc595.

  • Oppure copia questo codice nell”Arduino IDE.

  • Non dimenticare di selezionare la scheda (Raspberry Pi Pico) e la porta corretta prima di cliccare sul pulsante Upload.

Quando il programma è in esecuzione, potrai vedere i LED accendersi uno dopo l’altro.

Come funziona?

Dichiara un array, memorizza diversi numeri binari a 8 bit utilizzati per modificare lo stato di funzionamento degli otto LED controllati dal 74HC595.

int datArray[] = {0b00000000, 0b00000001, 0b00000011, 0b00000111, 0b00001111, 0b00011111, 0b00111111, 0b01111111, 0b11111111};

Imposta STcp a livello basso prima e poi a livello alto. Questo genererà un impulso di salita di STcp.

digitalWrite(STcp,LOW);

shiftOut() viene utilizzato per spostare un byte di dati un bit alla volta, il che significa trasferire un byte di dati in datArray[num] al registro a scorrimento con il pin DS. MSBFIRST significa spostare a partire dai bit più alti.

shiftOut(DS,SHcp,MSBFIRST,datArray[num]);

Dopo aver eseguito digitalWrite(STcp,HIGH), il STcp sarà al fronte di salita. A questo punto, i dati nel registro a scorrimento verranno trasferiti al registro di memoria.

digitalWrite(STcp,HIGH);

Un byte di dati verrà trasferito nel registro di memoria dopo 8 volte. Successivamente, i dati del registro di memoria vengono emessi sul bus (Q0-Q7). Ad esempio, shiftout B00000001 accenderà il LED controllato da Q0 e spegnerà i LED controllati da Q1~Q7.