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

../_images/list_2.6.png

Circuito con Fritzing

../_images/image433.png

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:

../_images/image434.png

Schema del Circuito

../_images/image435.png

Codice

Nota

  • Puoi aprire direttamente il file 2.6_74HC595.ino che si trova nel percorso sunfounder_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

../_images/image95.jpeg