Nota
Ciao, benvenuto nella comunità di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e contenuti esclusivi.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e concorsi: Partecipa a concorsi e promozioni speciali durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!
2.6 74HC595
Panoramica
In questa lezione, imparerai come utilizzare il 74HC595. Il 74HC595 è composto da un registro a scorrimento a 8 bit e un registro di memoria con uscite parallele a tre stati. Converte l’input seriale in output parallelo, consentendo di risparmiare porte IO di un microcontrollore.
Componenti Necessari
Circuito con Fritzing
In questo esempio, utilizziamo il 74HC595 per controllare i LED. Collega a ogni uscita dati (Q0-Q7) una resistenza da 220 ohm e poi al LED. Il diagramma dei collegamenti è il seguente:
Schema del Circuito
Codice
Nota
Puoi aprire direttamente il file
2.6_74HC595.inoche si trova nel percorsosunfounder_vincent_kit_for_arduino\code\2.6_74HC595.Oppure copia questo codice nell’Arduino IDE.
Dopo aver caricato il codice sulla scheda Mega2560, vedrai i LED accendersi uno dopo l’altro.
Analisi del Codice
Dichiara un array per memorizzare diversi numeri binari a 8 bit che servono a cambiare lo stato operativo degli otto LED controllati dal 74HC595.
int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};
Imposta STcp a livello basso prima e poi a livello alto. Questo genera un impulso sul fronte di salita di STcp.
digitalWrite(STcp,LOW);
Usa shiftOut() per inviare un byte di dati un bit alla volta, cioè per trasferire un byte di dati in datArray[num] al registro di scorrimento tramite il pin DS. MSBFIRST indica che i bit più significativi vengono inviati per primi.
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
Dopo aver eseguito digitalWrite(STcp,HIGH), STcp sarà sul fronte di salita. In questo momento, i dati nel registro di scorrimento vengono trasferiti al registro di memoria.
digitalWrite(STcp,HIGH);
Un byte di dati verrà trasferito nel registro di memoria dopo 8 cicli. Poi i dati del registro di memoria verranno inviati al bus (Q0-Q7). Ad esempio, shiftOut「B00000001」accenderà il LED controllato da Q0 e spegnerà i LED controllati da Q1~Q7.
Immagine del Fenomeno