Nota
Ciao, benvenuto nella Community di Appassionati di Raspberry Pi & Arduino & ESP32 di SunFounder su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché Unirsi?
Supporto da Esperti: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci dei nuovi prodotti e alle anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni e Giveaway Festivi: Partecipa ai giveaway e alle promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
5.1 Microchip - 74HC595
Il circuito integrato (integrated circuit) è un tipo di dispositivo elettronico o componente miniaturizzato, rappresentato dalla sigla «IC» nel circuito.
Viene utilizzato un certo processo per interconnettere transistor, resistori, condensatori, induttori e altri componenti e cablaggi necessari in un circuito, fabbricati su uno o più piccoli wafer semiconduttori o substrati dielettrici, e successivamente racchiusi in un involucro. Si crea così una microstruttura con le funzioni circuitali richieste; tutti i componenti sono strutturati come un insieme, rendendo i componenti elettronici un grande passo verso la 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 può notevolmente risparmiare l’uso dei pin GPIO. In particolare, può sostituire 8 pin per l’output del segnale digitale scrivendo un numero binario a 8 bit.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kepler Kit |
450+ |
Puoi anche acquistarli separatamente dai link sottostanti.
SN |
COMPONENTE |
QUANTITÀ |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Cavo Micro USB |
1 |
|
3 |
1 |
||
4 |
Diversi |
||
5 |
8 (220Ω) |
||
6 |
8 |
||
7 |
1 |
Schema

Quando MR (pin10) è a livello alto e OE (pin13) è a livello basso, i dati vengono inseriti al fronte di salita di SHcp e trasferiti al registro di memoria tramite 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 è presente un pin di ingresso a scorrimento seriale (Ds), un pin di uscita seriale (Q) e un pulsante di reset asincrono (a livello basso).
Il registro di memoria emette un Bus con un’uscita parallela 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
Codice
Nota
Apri il file
5.1_microchip_74hc595.pynel percorsokepler-kit-main/micropythonoppure copia questo codice in Thonny, quindi clicca su «Run Current Script» o semplicemente premi F5 per eseguirlo.Non dimenticare di selezionare l’interprete «MicroPython (Raspberry Pi Pico)» nell’angolo in basso a destra.
Per tutorial dettagliati, fai riferimento a Aprire ed Eseguire Codice Direttamente.
import machine
import time
sdi = machine.Pin(0,machine.Pin.OUT)
rclk = machine.Pin(1,machine.Pin.OUT)
srclk = machine.Pin(2,machine.Pin.OUT)
def hc595_shift(dat):
rclk.low()
time.sleep_ms(5)
for bit in range(7, -1, -1):
srclk.low()
time.sleep_ms(5)
value = 1 & (dat >> bit)
sdi.value(value)
time.sleep_ms(5)
srclk.high()
time.sleep_ms(5)
time.sleep_ms(5)
rclk.high()
time.sleep_ms(5)
num = 0
for i in range(16):
if i < 8:
num = (num<<1) + 1
elif i>=8:
num = (num & 0b01111111)<<1
hc595_shift(num)
print("{:0>8b}".format(num))
time.sleep_ms(200)
Quando il programma è in esecuzione, num verrà scritto nel chip 74HC595 come numero binario a otto bit per controllare l’accensione e lo spegnimento degli 8 LED.
Possiamo vedere il valore corrente di num nella shell.
Come Funziona?
hc595_shift() farà sì che il 74HC595 emetta 8 segnali digitali. Esso invia l’ultimo bit del numero binario a Q0, e il primo bit a Q7. In altre parole, scrivendo il numero binario «00000001» si farà in modo che Q0 emetta un livello alto e Q1~Q7 emettano un livello basso.
