Risposta rapida

Se hai bisogno di molte uscite semplici on/off e vuoi il costo più basso per pin, usa un registro a scorrimento 74HC595. Se hai bisogno di poche uscite e vuoi risparmiare pin del microcontrollore, usa un espansore I2C come il PCF8574. Il compromesso è tra numero di pin, semplicità di cablaggio e capacità di corrente.

Come funziona il registro a scorrimento 74HC595

Il 74HC595 è un registro a scorrimento seriale-parallelo a 8 bit. Invia i dati un bit alla volta utilizzando tre pin del microcontrollore: dati, clock e latch. Una volta latchati, le otto uscite mantengono il loro stato finché non le aggiorni nuovamente. Questo lo rende ideale per pilotare LED, relè o altri carichi a bassa corrente. Essendo un registro a scorrimento, puoi concatenare più chip per aggiungere 8, 16, 24 o più uscite utilizzando solo tre pin del microcontrollore. Il 74HC595 può fornire o assorbire corrente sufficiente per LED standard, ma per carichi di potenza maggiore avrai bisogno di un driver come un transistor o un IC driver dedicato. Il package DIP-16 è adatto per breadboard, e il nostro 74HC595 8 bit Registro a Scorrimento Seriale (DIP 16) (Pacco da 5) ti offre cinque chip per meno di $1.40, un costo molto basso per uscita.

Come funzionano gli expander di porte I²C

Gli expander di porte I²C come il PCF comunicano tramite il bus I²C a due fili (SDA e SCL). Ogni expander ha un indirizzo I²C unico, quindi puoi collegarne diversi sullo stesso bus senza usare pin extra. Il PCF fornisce pin I/O quasi-bidirezionali, ma non sono vere uscite push-pull; possono assorbire corrente ma ne forniscono pochissima. Questo li rende migliori per ingressi o per pilotare carichi che necessitano di un segnale basso, come portare a massa la base di un transistor. Poiché I²C è un bus, il cablaggio è più semplice: solo due fili per i dati più alimentazione e terra. Tuttavia, il compromesso è la velocità e la capacità di corrente. I²C è più lento dell'interfaccia seriale del registro a scorrimento, e la corrente limitata significa che spesso servono driver esterni per LED o relè. Inoltre, ogni dispositivo I²C necessita di un indirizzo unico, quindi puoi averne solo un numero limitato su un bus.

Differenze principali: velocità, corrente e costo del pin

Il 74HC595 vince in velocità e capacità di pilotaggio in corrente. Può essere aggiornato molto rapidamente, rendendolo adatto per effetti di multiplexing o simili a PWM se si commuta rapidamente il latch. Le sue uscite possono fornire o assorbire corrente sufficiente per LED standard direttamente. L'espansore I2C è più lento e ha una capacità di uscita più debole, ma utilizza solo due pin del microcontrollore in totale, indipendentemente da quanti espansori colleghi in cascata. Il registro a scorrimento utilizza tre pin per catena, ma puoi collegare molti chip in cascata senza conflitti di indirizzi. Il costo per uscita è inferiore con il 74HC595, specialmente quando acquisti pacchi come il pacco da 5 che offriamo. Per gli espansori I2C, il costo per pin è più alto e potresti aver bisogno di componenti driver aggiuntivi per carichi che richiedono più corrente.

Considerazioni pratiche su cablaggio e codice

Collegare un 74HC595 è semplice: collega VCC e GND, poi collega SER (dati) a un pin del microcontrollore, SRCLK (clock) a un altro e RCLK (latch) a un terzo. Puoi collegarli in cascata connettendo Q7' di un registro a scorrimento a SER del successivo. Per gli expander I2C, collega SDA e SCL ai pin I2C del tuo microcontrollore e imposta i pin di indirizzo per evitare conflitti. Nel codice, il 74HC595 usa shiftOut() o SPI, mentre il PCF8574 usa i comandi della libreria Wire. Se devi leggere input, il PCF8574 può farlo, ma il 74HC595 non può leggere; è solo per output. Questa è una limitazione fondamentale: se il tuo progetto richiede sia input che output, potresti aver bisogno di un expander diverso o di una combinazione.

Quando scegliere ciascuna opzione

Scegli il 74HC595 quando hai bisogno di molte uscite, aggiornamenti rapidi e pilotaggio diretto dei LED. È perfetto per matrici LED, display a 7 segmenti o per pilotare molti relè tramite un driver. Scegli un espansore I2C quando hai pochi pin del microcontrollore e ti servono solo poche uscite, o quando vuoi aggiungere anche ingressi. I2C è anche migliore quando hai più dispositivi sullo stesso bus e vuoi ridurre al minimo i cablaggi. Se devi pilotare motori, considera uno shield dedicato come il Motor Drive Shield L293D per Arduino, che gestisce la corrente e fornisce un'interfaccia comoda. Per semplici indicatori di stato, pochi LED diffusi da 3 mm (bianco) pilotati direttamente da un 74HC595 o tramite un transistor da un espansore I2C possono funzionare bene. E se stai prototipando con chip DIP, uno zoccolo ZIF nero a 28 pin rende facile la sostituzione dei CI e riduce i danni ai pin.

Compromessi a colpo d'occhio

  • Costo vs semplicità di cablaggio: 74HC595 utilizza 3 pin del microcontrollore per catena ma può aggiungere molte uscite a basso costo. Gli espansori I2C usano solo 2 pin in totale ma costano di più per uscita e hanno limitazioni di indirizzo. Scegli il registro a scorrimento per molte uscite; scegli I2C per poche uscite e pin minimi.
  • Corrente di uscita e velocità: 74HC595 può fornire/assorbire corrente sufficiente per LED e si aggiorna rapidamente. Gli espansori I2C hanno una corrente di source debole e velocità di aggiornamento più lente. Per pilotaggio diretto di LED o aggiornamenti rapidi, usa 74HC595. Per segnali a bassa corrente o ingressi, I2C è adatto.
  • Capacità di ingresso: 74HC595 è solo per uscite. Gli espansori I2C come PCF8574 possono leggere ingressi, ma con pin quasi bidirezionali. Se hai bisogno di ingressi, un espansore I2C è più flessibile; altrimenti, un registro a scorrimento è più semplice per le uscite.

Dati prodotto

  • 74HC595 registro a scorrimento seriale a 8 bit (DIP 16) (confezione da 5): Contiene 5 74HC595 8 bit di registri a scorrimento seriale (DIP 16) IC. La scheda tecnica è disponibile sul nostro forum di supporto qui. Si prega di notare che il produttore di questo chip può cambiare. Cinque registri a scorrimento forniscono fino a 40 uscite a un costo molto basso, e il package DIP è facile da usare su breadboard. La scheda tecnica aiuta a verificare pinout e temporizzazione.
  • Shield per motore L293D per Arduino: Questo Motor Drive Shield L293D per Arduino è progettato per aiutarti ad aggiungere il controllo motori ai tuoi progetti. Fornisce due interfacce per 5V servo, collegate al timer dedicato ad alta risoluzione di Arduino, consentendo un funzionamento preciso del servo. Compatibile con schede Arduino Uno (scheda non inclusa). Include due interfacce per 5V servo per le esigenze del tuo progetto. Se il tuo progetto necessita di pilotare motori o servo, questo shield gestisce la corrente e fornisce un'interfaccia pulita, così non devi costruire un driver con componenti discreti.
  • 3mm LED Diffuso (Bianco): LED bianco di alta qualità standard da 3 mm in contenitore bianco diffuso / satinato. Adatto per indicatori di alimentazione e stato, retroilluminazione, display di messaggi, cubi 3D, ecc. Il prezzo si riferisce a un (1) LED. Più ne acquisti, più il costo scende. Questi LED sono ideali per testare le tue nuove uscite. Il contenitore diffuso offre una luce morbida e il prezzo diminuisce con la quantità, così puoi acquistarne abbastanza per un intero progetto.
  • Nero, zoccolo ZIF a 28 pin: Questi zoccoli ZIF (Zero Insertion Force) incorporano una leva che aziona il meccanismo a forza di inserimento zero (ZIF) per ridurre i danni ai dispositivi. Questi zoccoli DIP da 2.54 mm offrono un'interfaccia eccellente per test e burn-in di pacchetti dual in-line con passo di 2.54 mm e larghezza del corpo di 0.3. Se stai sostituendo chip 74HC595 o altri IC DIP durante la prototipazione, uno zoccolo ZIF previene pin piegati e semplifica i test.

Quale usare?

Ideale per

  • Progetti che richiedono molte uscite (LED, relè) con budget limitato
  • Requisiti di aggiornamento rapido come multiplexing o PWM
  • Comando diretto di carichi a bassa corrente senza transistor aggiuntivi

Non adatto per

  • Progetti che necessitano di leggere ingressi (scegli expander I2C)
  • Quando è necessario ridurre i pin del microcontrollore a soli due
  • Carichi ad alta corrente senza driver aggiuntivi