Official Hobby Components Online Store | Buy Electronic Kits, Components, Boards, Shields, Modules

Registro de desplazamiento vs. expansor I2C: añadir salidas a Arduino

Registro de desplazamiento vs. expansor I2C: añadir salidas a Arduino

By Official Hobby Components Online Store | Buy Electronic Kits, Components, Boards, Shields, Modules | Published: 2026-10-16

Category: Comparativas

Compara el registro de desplazamiento 74HC595 con los expansores de puerto I2C, como el PCF8574, para ampliar los pines de Arduino, con ventajas e inconvenientes claros y cuándo usar cada uno.

Respuesta rápida

Si necesitas muchas salidas simples de encendido/apagado y deseas el menor coste por pin, utiliza un registro de desplazamiento 74HC595. Si necesitas pocas salidas y quieres ahorrar pines del microcontrolador, utiliza un expansor I2C como el PCF8574. La compensación está entre el número de pines y la simplicidad del cableado y la capacidad de corriente.

Cómo funciona el registro de desplazamiento 74HC595

El 74HC595 es un registro de desplazamiento serie-paralelo de 8 bits. Envía datos bit a bit usando tres pines del microcontrolador: datos, reloj y latch. Una vez activado el latch, las ocho salidas mantienen su estado hasta que las actualices de nuevo. Esto lo hace ideal para controlar LEDs, relés u otras cargas de baja corriente. Al ser un registro de desplazamiento, puedes encadenar varios chips para añadir 8, 16, 24 o más salidas usando solo tres pines del microcontrolador. El 74HC595 puede suministrar o absorber suficiente corriente para LEDs estándar, pero para cargas de mayor potencia necesitarás un driver como un transistor o un circuito integrado driver dedicado. El encapsulado DIP-16 es apto para placas de prototipado, y nuestro 74HC595 8 bits Registro de Desplazamiento Serie (DIP 16) (Paquete de 5) te ofrece cinco chips por menos de $1.40, lo que supone un coste muy bajo por salida.

Cómo funcionan los expansores de puertos I²C

Los expansores de puertos I²C como el PCF se comunican a través del bus I²C de dos hilos (SDA y SCL). Cada expansor tiene una dirección I²C única, por lo que puedes conectar varios en el mismo bus sin usar pines adicionales. El PCF proporciona pines de E/S cuasi-bidireccionales, pero no son salidas push-pull reales; pueden hundir corriente pero suministran muy poca. Esto los hace mejores para entradas o para manejar cargas que necesitan una señal baja, como llevar la base de un transistor a nivel bajo. Como I²C es un bus, el cableado es más simple: solo dos cables para datos más alimentación y tierra. Sin embargo, la compensación es la velocidad y la capacidad de corriente. I²C es más lento que la interfaz serie del registro de desplazamiento, y la corriente limitada significa que a menudo necesitas controladores externos para LED o relés. Además, cada dispositivo I²C necesita una dirección única, por lo que solo puedes tener número limitado en un bus.

Diferencias clave: velocidad, corriente y coste del pin

El 74HC595 gana en velocidad y capacidad de corriente. Se puede actualizar muy rápidamente, lo que lo hace adecuado para efectos de multiplexación o similares a PWM si se alterna el latch rápidamente. Sus salidas pueden proporcionar o absorber suficiente corriente para LEDs estándar directamente. El expansor I2C es más lento y tiene una capacidad de salida más débil, pero utiliza solo dos pines del microcontrolador en total, independientemente de cuántos expansores encadenes. El registro de desplazamiento utiliza tres pines por cadena, pero puedes encadenar muchos chips sin conflictos de direcciones. El coste por salida es menor con el 74HC595, especialmente cuando compras paquetes como el de 5 unidades que ofrecemos. Para los expansores I2C, el coste por pin es mayor, y es posible que necesites componentes controladores adicionales para cargas que requieran más corriente.

Consideraciones prácticas de cableado y código

Cablear un 74HC595 es sencillo: conecta VCC y GND, luego conecta SER (datos) a un pin del microcontrolador, SRCLK (reloj) a otro y RCLK (latch) a un tercero. Puedes encadenar varios conectando Q7' de un registro de desplazamiento a SER del siguiente. Para expansores I2C, conecta SDA y SCL a los pines I2C de tu microcontrolador y ajusta los pines de dirección para evitar conflictos. En el código, el 74HC595 usa shiftOut() o SPI, mientras que el PCF8574 usa comandos de la librería Wire. Si necesitas leer entradas, el PCF8574 puede hacerlo, pero el 74HC595 no puede leer; es solo de salida. Esa es una limitación clave: si tu proyecto necesita tanto entradas como salidas, es posible que necesites un expansor diferente o una combinación.

Cuándo elegir cada opción

Elige el 74HC595 cuando necesites muchas salidas, actualizaciones rápidas y control directo de LED. Es perfecto para matrices de LED, displays de 7 segmentos o para controlar muchos relés a través de un driver. Elige un expansor I2C cuando tengas pocos pines de microcontrolador y necesites solo unas pocas salidas, o cuando quieras añadir también entradas. I2C también es mejor cuando tienes varios dispositivos en el mismo bus y quieres minimizar el cableado. Si necesitas controlar motores, considera un shield dedicado como el Motor Drive Shield L293D para Arduino, que maneja la corriente y proporciona una interfaz cómoda. Para indicadores de estado simples, unos pocos LED difusos de 3 mm (blanco) alimentados directamente desde un 74HC595 o a través de un transistor desde un expansor I2C pueden funcionar bien. Y si estás prototipando con chips DIP, un zócalo ZIF negro de 28 pines facilita el intercambio de ICs y reduce el daño en los pines.

Compensaciones de un vistazo

  • Costo frente a simplicidad del cableado: 74HC595 utiliza 3 pines del microcontrolador por cadena, pero puede añadir muchas salidas de forma económica. Los expansores I2C usan solo 2 pines en total, pero cuestan más por salida y tienen limitaciones de direcciones. Elija registro de desplazamiento para muchas salidas; elija I2C para pocas salidas y mínimos pines.
  • Corriente de salida y velocidad: 74HC595 puede suministrar/absorber suficiente corriente para LEDs y actualiza rápidamente. Los expansores I2C tienen una corriente de fuente débil y velocidades de actualización más lentas. Para accionamiento directo de LED o actualizaciones rápidas, use 74HC595. Para señales de baja corriente o entradas, I2C es suficiente.
  • Capacidad de entrada: 74HC595 es solo de salida. Los expansores I2C como PCF8574 pueden leer entradas, pero con pines casi bidireccionales. Si necesita entradas, un expansor I2C es más flexible; de lo contrario, un registro de desplazamiento es más simple para salidas.

Datos del producto

  • 74HC595 registro de desplazamiento serie de 8 bits (DIP 16) (paquete de 5): Contiene 5 74HC595 8 bit de registros de desplazamiento serie (DIP 16) ICs. La hoja de datos está disponible en nuestro foro de soporte aquí. Tenga en cuenta que el fabricante de este chip puede cambiar. Cinco registros de desplazamiento le proporcionan hasta 40 salidas a un coste muy bajo, y el encapsulado DIP es fácil de usar en una placa de prototipos. La hoja de datos le ayuda a verificar la asignación de pines y el temporizado.
  • Escudo de control de motor L293D para Arduino: Este Shield Controlador de Motores L293D para Arduino está diseñado para ayudarte a añadir control de motores a tus proyectos. Proporciona dos interfaces para 5V servos, conectadas al temporizador dedicado de alta resolución de Arduino, permitiendo un funcionamiento preciso del servo. Compatible con placas Arduino Uno (placa no incluida). Incluye dos interfaces para 5V servos para las necesidades de tu proyecto. Si tu proyecto necesita accionar motores o servos, este shield maneja la corriente y proporciona una interfaz limpia, por lo que no necesitas construir un controlador a partir de componentes discretos.
  • 3mm LED Difuso (Blanco): LED blanco de alta calidad estándar de 3 mm en un encapsulado blanco difuso / mate. Adecuado para indicadores de encendido y estado, retroiluminación, pantallas de mensajes, cubos 3D, etc. El precio corresponde a un (1) LED. Cuanto más compre, menor será el coste unitario. Estos LEDs son ideales para probar sus nuevas salidas. El encapsulado difuso proporciona un brillo suave, y el precio baja con la cantidad, por lo que puede comprar suficientes para un proyecto completo.
  • Negro, zócalo ZIF de 28 pines: Estos zócalos ZIF (Zero Insertion Force) incorporan una palanca que acciona el mecanismo de fuerza de inserción cero (ZIF) para ayudar a reducir daños en los dispositivos. Estos zócalos DIP de 2.54 mm proporcionan una excelente interfaz de prueba y burn-in para encapsulados duales en línea con un paso de 2.54 mm y un ancho de cuerpo de 0.3. Si está intercambiando chips 74HC595 u otros CI DIP durante la creación de prototipos, un zócalo ZIF evita patas dobladas y facilita las pruebas.

¿Cuál debería usar?

Mejor para

  • Proyectos que necesitan muchas salidas (LEDs, relés) con presupuesto ajustado
  • Requisitos de actualización rápida como multiplexado o PWM
  • Accionamiento directo de cargas de baja corriente sin transistores adicionales

No apto para

  • Proyectos que necesitan leer entradas (elige expansor I2C)
  • Cuando deba minimizar los pines del microcontrolador a solo dos
  • Cargas de alta corriente sin controladores adicionales

Shop Related Products

Motor Drive Shield L293D for Arduino

Motor Drive Shield L293D for Arduino

$1.41 $2.08

Shop Now
74HC595 Registro de Desplazamiento Serie de 8 bits (DIP 16) (Pack de 5)

74HC595 Registro de Desplazamiento Serie de 8 bits (DIP 16) (Pack de 5)

$1.35 $1.82

Shop Now
3mm Diffused LED (White)

3mm Diffused LED (White)

$0.30 $0.41

Shop Now
Black, 28 Pin ZIF Socket

Black, 28 Pin ZIF Socket

$0.56 $0.91

Shop Now