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

Registo de deslocamento vs. expansor I2C: adicionar saídas ao Arduino

Registo de deslocamento vs. expansor I2C: adicionar saídas ao Arduino

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

Category: Comparações

Compare o registo de deslocamento 74HC595 com os expansores de portas I2C, como o PCF8574, para expansão de pinos do Arduino, com compromissos claros e quando usar cada um.

Resposta rápida

Se precisar de muitas saídas simples liga/desliga e quiser o menor custo por pino, use um registo de deslocamento 74HC595. Se precisar de poucas saídas e quiser poupar pinos do microcontrolador, use um expansor I2C como o PCF8574. O compromisso está entre o número de pinos, a simplicidade da cablagem e a capacidade de corrente.

Como funciona o registo de deslocamento 74HC595

O 74HC595 é um registo de deslocamento série-paralelo de 8 bits. Envia dados bit a bit usando três pinos do microcontrolador: dados, relógio e latch. Uma vez latchados, as oito saídas mantêm o seu estado até que as atualize novamente. Isto torna-o ideal para acionar LEDs, relés ou outras cargas de baixa corrente. Por ser um registo de deslocamento, pode encadear vários chips para adicionar 8, 16, 24 ou mais saídas usando apenas três pinos do microcontrolador. O 74HC595 pode fornecer ou absorver corrente suficiente para LEDs padrão, mas para cargas de maior potência necessitará de um driver como um transistor ou um CI driver dedicado. O encapsulamento DIP-16 é adequado para breadboard, e o nosso 74HC595 8 bits Registo de Deslocamento Série (DIP 16) (Embalagem de 5) dá-lhe cinco chips por menos de $1.40, o que representa um custo muito baixo por saída.

Como funcionam os expansores de portas I²C

Os expansores de portas I²C como o PCF comunicam através do barramento I²C de dois fios (SDA e SCL). Cada expansor tem um endereço I²C único, pelo que pode ligar vários no mesmo barramento sem usar pinos extra. O PCF fornece pinos de E/S quase bidirecionais, mas não são saídas push-pull verdadeiras; podem absorver corrente, mas fornecem muito pouca. Isso torna-os melhores para entradas ou para acionar cargas que precisam de um sinal baixo, como puxar a base de um transistor para o nível baixo. Como o I²C é um barramento, a cablagem é mais simples: apenas dois fios para dados, mais alimentação e terra. No entanto, a contrapartida é a velocidade e a capacidade de corrente. O I²C é mais lento que a interface série do registo de deslocamento, e a corrente de fonte limitada significa que muitas vezes precisa de drivers externos para LEDs ou relés. Além disso, cada dispositivo I²C precisa de um endereço único, pelo que só pode ter um número limitado. número limitado num barramento.

Principais diferenças: velocidade, corrente e custo do pino

O 74HC595 vence em velocidade e capacidade de corrente. Pode ser atualizado muito rapidamente, tornando-o adequado para efeitos de multiplexagem ou semelhantes a PWM se alternar o latch rapidamente. As suas saídas podem fornecer ou absorver corrente suficiente para LEDs padrão diretamente. O expansor I2C é mais lento e tem uma capacidade de saída mais fraca, mas utiliza apenas dois pinos do microcontrolador no total, independentemente de quantos expansores ligar em cadeia. O registo de deslocamento utiliza três pinos por cadeia, mas pode ligar muitos chips em cadeia sem conflitos de endereços. O custo por saída é menor com o 74HC595, especialmente quando compra packs como o pack de 5 que oferecemos. Para expansores I2C, o custo por pino é mais elevado e poderá necessitar de componentes de driver adicionais para cargas que exijam mais corrente.

Considerações práticas sobre cablagem e código

Ligar um 74HC595 é simples: conecte VCC e GND, depois ligue SER (dados) a um pino do microcontrolador, SRCLK (relógio) a outro e RCLK (latch) a um terceiro. Pode ligá-los em série conectando Q7' de um registo de deslocamento a SER do seguinte. Para expansores I2C, conecte SDA e SCL aos pinos I2C do seu microcontrolador e defina os pinos de endereço para evitar conflitos. No código, o 74HC595 usa shiftOut() ou SPI, enquanto o PCF8574 usa comandos da biblioteca Wire. Se precisar de ler entradas, o PCF8574 pode fazê-lo, mas o 74HC595 não consegue ler; é apenas para saídas. Essa é uma limitação importante: se o seu projeto precisar de entradas e saídas, poderá necessitar de um expansor diferente ou de uma combinação.

Quando escolher cada opção

Escolha o 74HC595 quando precisar de muitas saídas, atualizações rápidas e acionamento direto de LEDs. É perfeito para matrizes de LEDs, displays de 7 segmentos ou para acionar muitos relés através de um driver. Escolha um expansor I2C quando tiver poucos pinos do microcontrolador e precisar apenas de algumas saídas, ou quando quiser adicionar também entradas. I2C também é melhor quando tiver vários dispositivos no mesmo barramento e quiser minimizar a cablagem. Se precisar de acionar motores, considere um shield dedicado como o Motor Drive Shield L293D para Arduino, que lida com a corrente e fornece uma interface conveniente. Para indicadores de estado simples, alguns LEDs difusos de 3 mm (branco) acionados diretamente a partir de um 74HC595 ou através de um transistor a partir de um expansor I2C podem funcionar bem. E se estiver a prototipar com chips DIP, um soquete ZIF preto de 28 pinos facilita a troca de CIs e reduz danos nos pinos.

Compensações num relance

  • Custo vs. simplicidade de cablagem: 74HC595 utiliza 3 pinos do microcontrolador por cadeia, mas pode adicionar muitas saídas de forma económica. Os expansores I2C usam apenas 2 pinos no total, mas custam mais por saída e têm limitações de endereço. Escolha registo de deslocamento para muitas saídas; escolha I2C para poucas saídas e pinos mínimos.
  • Corrente de saída e velocidade: 74HC595 pode fornecer/absorver corrente suficiente para LEDs e atualiza rapidamente. Os expansores I2C têm corrente de fonte fraca e taxas de atualização mais lentas. Para acionamento direto de LED ou atualizações rápidas, use 74HC595. Para sinais de baixa corrente ou entradas, I2C é suficiente.
  • Capacidade de entrada: 74HC595 é apenas para saídas. Os expansores I2C como PCF8574 podem ler entradas, mas com pinos quase bidirecionais. Se precisar de entradas, um expansor I2C é mais flexível; caso contrário, um registo de deslocamento é mais simples para saídas.

Factos do produto

  • 74HC595 registo de deslocamento série de 8 bits (DIP 16) (embalagem de 5): Contém 5 74HC595 8 bit de registos de deslocamento série (DIP 16) ICs. A ficha de dados está disponível no nosso fórum de suporte aqui. Note que o fabricante deste chip pode mudar. Cinco registos de deslocamento fornecem até 40 saídas a um custo muito baixo, e o encapsulamento DIP é fácil de usar numa placa de ensaio. A ficha de dados ajuda a verificar a pinagem e o temporização.
  • Shield de controlo de motor L293D para Arduino: Este Shield de Acionamento de Motores L293D para Arduino foi projetado para ajudá-lo a adicionar controlo de motores aos seus projetes. Fornece duas interfaces para 5V servos, ligadas ao temporizador dedicado de alta resolução do Arduino, permitindo um funcionamento preciso do servo. Compatível com placas Arduino Uno (placa não incluída). Inclui duas interfaces para 5V servos para as necessidades do seu projeto. Se o seu projeto precisar de acionar motores ou servos, este shield gere a corrente e fornece uma interface limpa, para que não precise de construir um driver a partir de componentes discretos.
  • 3mm LED Difuso (Branco): LED branco de alta qualidade padrão de 3 mm em embalagem branca difusa / fosca. Adequado para indicadores de alimetação e estado, retroiluminação, ecrãs de mensagens, cubos 3D, etc. O preço é baseado em um (1) LED. Quanto mais comrar, menor o custo. Estes LEDs são ideais para testar as suas novas saídas. A embalagem difusa dá um brilho suave, e o preço dimimui com a quatidade, por isso pode comrar suficientes para um projto comleto.
  • Preto, soquete ZIF de 28 pios: Estes soquetes ZIF (Zero Insertion Force) incorporam uma alavanca que aciona o mecanismo de força de inserção zero (ZIF) para ajudar a reduzir danos aos dispositivos. Estes soquetes DIP de 2.54 mm fornecem uma excelente interface de teste e burn-in para pacotes duais em linha com um passo de 2.54 mm e largura do corpo de 0.3. Se estiver a trocar chips 74HC595 ou outros CIs DIP durante a prototipagem, um soquete ZIF evita pinos entortados e torna os testes mais fáceis.

Qual deve usar?

Melhor para

  • Projetos que precisam de muitas saídas (LEDs, relés) com orçamento limitado
  • Requisitos de atualização rápida como multiplexagem ou PWM
  • Acionamento direto de cargas de baixa corrente sem transístores adicionais

Não adequado para

  • Projetos que precisam de ler entradas (escolher expansor I2C)
  • Quando precisar de minimizar os pinos do microcontrolador para apenas dois
  • Cargas de alta corrente sem drivers adicionais

Shop Related Products

Motor Drive Shield L293D for Arduino

Motor Drive Shield L293D for Arduino

$1.41 $2.08

Shop Now
74HC595 Registo de Deslocamento Série 8 bits (DIP 16) (Pack de 5)

74HC595 Registo de Deslocamento Série 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