.. note:: 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 [|link_sf_facebook|] e unisciti oggi! .. _ar_74hc595: 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 -------------------------------- .. image:: img/list_2.6.png * :ref:`cpn_mega2560` * :ref:`cpn_breadboard` * :ref:`cpn_wires` * :ref:`cpn_led` * :ref:`cpn_resistor` * :ref:`cpn_74hc595` Circuito con Fritzing -------------------------- .. image:: img/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: .. image:: img/image434.png Schema del Circuito --------------------------- .. image:: img/image435.png Codice --------------- .. note:: * 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. .. raw:: html 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. .. code-block:: arduino 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. .. code-block:: arduino 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. .. code-block:: arduino 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. .. code-block:: arduino 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 ---------------------------- .. image:: img/image95.jpeg