빠른 답변

많은 단순 온/오프 출력이 필요하고 핀당 비용을 최소화하려면 74HC595 시프트 레지스터를 사용하세요. 소수의 출력만 필요하고 마이크로컨트롤러 핀을 절약하려면 PCF8574 같은 I2C 익스팬더를 사용하세요. 절충점은 핀 수와 배선 단순성 및 전류 구동 능력 사이에 있습니다.

74HC595 시프트 레지스터 작동 방식

74HC595은(는) 8비트 직렬 입력, 병렬 출력 시프트 레지스터입니다. 데이터, 클록, 래치의 세 가지 마이크로컨트롤러 핀을 사용하여 한 번에 한 비트씩 데이터를 보냅니다. 래치되면 8개의 출력은 다시 업데이트할 때까지 상태를 유지합니다. 따라서 LED, 릴레이 또는 기타 저전류 부하를 구동하는 데 이상적입니다. 시프트 레지스터이므로 여러 칩을 체인으로 연결하여 8, 16, 24 또는 그 이상의 출력을 추가하면서도 마이크로컨트롤러 핀 3개만 사용할 수 있습니다. 74HC595은(는) 표준 LED에 충분한 전류를 소스 또는 싱크할 수 있지만, 더 높은 전력의 부하에는 트랜지스터나 전용 드라이버 IC와 같은 드라이버가 필요합니다. DIP-16 패키지는 브레드보드에 적합하며, 당사의 74HC595 8비트 직렬 시프트 레지스터(DIP 16)(5개 팩)는 5 개의 칩을 $1.40 미만에 제공하여 출력당 비용이 매우 낮습니다.

I²C 포트 확장기의 작동 방식

PCF와 같은 I²C 포트 확장기는 2선식 I²C 버스(SDA 및 SCL)를 통해 통신합니다. 각 확장기에는 고유한 I²C 주소가 있으므로 추가 핀을 사용하지 않고 동일한 버스에 여러 개를 연결할 수 있습니다. PCF는 준양방향 I/O 핀을 제공하지만 실제 푸시풀 출력은 아닙니다. 전류를 싱크할 수는 있지만 소스 전류는 매우 적습니다. 따라서 입력이나 트랜지스터 베이스를 로우로 당기는 등 로우 신호가 필요한 부하를 구동하는 데 더 적합합니다. I²C는 버스이므로 배선이 더 간단합니다. 데이터용 2개의 와이어에 전원과 접지를 추가하면 됩니다. 그러나 속도와 전류 용량에서 절충이 있습니다. I²C는 시프트 레지스터의 직렬 인터페이스보다 느리며, 소스 전류가 제한적이므로 LED나 릴레이에 외부 드라이버가 필요한 경우가 많습니다. 또한 각 I²C 장치에는 고유한 주소가 필요하므로 제한된 수만 연결할 수 있습니다. 버스당 제한된 수량.

주요 차이점: 속도, 전류 및 핀 비용

74HC595은 속도와 전류 구동 능력에서 우수합니다. 래치를 빠르게 전환하면 멀티플렉싱 또는 PWM과 유사한 효가과 가능하도록 매빠우르게 업데이될트 수 있습니.다 출력은 표준 LED를 직 구접동하기에 충분한 전류를 소스 또는 싱크할 수 있습니.다 I2C 익스펜더는 더 느리고 출력 구동 능력이 약하지,만 체인으로 연결된 익스펜더 수에 관계없이 총 2개의 마이크로컨트롤러 핀만 사욯합니.다 시프트 레지스터는 체인당 3개의 핀을 사욯하지만, 주소 충돌 없이 많어은 칩을 체인으로 연결할 수 있습니.다 출럭당 비용은 74HC595를 사할용 때 더 낮으며, 특히 당사가 제하공는 5개 팩과 같은 팩을 구매할 때 그렇습니.다 I2C 익스펜더의 경우 핀당 비용이 더 높으며, 더 많은 전류가 필요한 부하에는 추구가 동 부품이 필요할 수 있습니.다

실제 배선 및 코딩 고려 사항

74HC595 배선은 간단합니다. VCC와 GND를 연결한 다음 SER(데이터)을 마이크로컨트롤러 핀에, SRCLK(클록)을 다른 핀에, RCLK(래치)를 세 번째 핀에 연결합니다. 한 시프트 레지스터의 Q7'를 다음 시프트 레지스터의 SER에 연결하여 데이지 체인으로 연결할 수 있습니다. I2C 익스팬더의 경우 SDA와 SCL을 마이크로컨트롤러의 I2C 핀에 연결하고 주소 핀을 설정하여 충돌을 방지합니다. 코드에서 74HC595는 shiftOut() 또는 SPI를 사용하고, PCF8574는 Wire 라이브러리 명령을 사용합니다. 입력을 읽어야 하는 경우 PCF8574는 가능하지만 74HC595는 읽을 수 없으며 출력 전용입니다. 이것이 핵심 제한 사항입니다. 프로젝트에 입력과 출력이 모두 필요한 경우 다른 익스팬더나 조합이 필요할 수 있습니다.

각 옵션을 선택해야 하는 경우

많은 출력, 빠른 업데이트, 직접 LED 구동이 필요할 때는 74HC595를 선택하세요. LED 매트릭스, 7-세그먼트 디스플레이, 또는 드라이버를 통해 많은 릴레이를 구동하는 데 적합합니다. 마이크로컨트롤러 핀이 부족하고 소수의 출력만 필요하거나 입력도 추가하려는 경우 I2C 익스팬더를 선택하세요. 동일한 버스에 여러 장치가 있고 배선을 최소화하려는 경우에도 I2C가 더 좋습니다. 모터를 구동해야 한다면 Arduino용 Motor Drive Shield L293D와 같은 전용 쉴드를 고려하세요. 전류를 처리하고 편리한 인터페이스를 제공합니다. 간단한 상태 표시기의 경우 3mm 확산 LED(흰색) 몇 개를 74HC595에서 직접 구동하거나 I2C 익스팬더에서 트랜지스터를 통해 구동하면 잘 작동합니다. DIP 칩으로 프로토타입을 제작하는 경우 검은색 28핀 ZIF 소켓을 사용하면 IC 교체가 쉬워지고 핀 손상이 줄어듭니다.

트레이드오프 한눈에 보기

  • 비용 대 배선 단순성: 74HC595는 체인당 3개의 마이크로컨트롤러 핀을 사용하지만 저렴하게 많은 출력을 추가할 수 있습니다. I2C 확장기는 총 2개의 핀만 사용하지만 출력당 비용이 더 많이 들고 주소 제한이 있습니다. 많은 출력에는 시프트 레지스터를 선택하고, 적은 출력과 최소 핀에는 I2C를 선택하세요.
  • 출력 전류 및 속도: 74HC595은(는) LED에 충분한 전류를 공급/흡수할 수 있으며 빠르게 업데이트됩니다. I2C 확장기는 소스 전류가 약하고 업데이트 속도가 느립니다. 직접 LED 구동 또는 빠른 업데이트가 필요하면 74HC595을(를) 사용하세요. 저전류 신호나 입력에는 I2C로 충분합니다.
  • 입력 기능: 74HC595은 출력 전용입니다. PCF8574과 같은 I2C 익스팬더는 준양방향 핀으로 입력을 읽을 수 있습니다. 입력이 필요하다면 I2C 익스팬더가 더 유연합니다. 그렇지 않으면 출력에는 시프트 레지스터가 더 간단합니다.

제품 정보

  • 74HC595 8비트 직렬 시프트 레지스터 (DIP 16) (5개입): 5개의 74HC595 8비트 직렬 시프트 레지스터(DIP 16) IC가 포함되어 있습니다. 데이터시트는 지원 포럼에서 확인할 수 있습니다(여기). 이 칩의 제조사는 변경될 수 있습니다. 5개의 시프트 레지스터는 최대 40개의 출력을 매우 저렴한 비용으로 제공하며, DIP 패키지는 브레드보드에 사용하기 쉽습니다. 데이터시트는 핀 배치와 타이밍을 확인하는 데 도움이 됩니다.
  • Arduino용 모터 드라이브 실드 L293D: 이 Arduino용 모터 드라이브 실드 L293D는 프로젝트에 모터 제어를 추가할 수 있도록 설계되었습니다. Arduino의 고해상도 전용 타이머에 연결된 5V 서보용 인터페이스 2개를 제공하여 정밀한 서보 작동을 가능하게 합니다. Arduino Uno 보드와 호환됩니다(보드 미포함). 프로젝트 요구에 맞게 5V 서보용 인터페이스 2개가 포함되어 있습니다. 프로젝트에서 모터나 서보를 구동해야 하는 경우, 이 실드가 전류를 처리하고 깔끔한 인터페이스를 제공하므로 개별 부품으로 드라이버를 제작할 필요가 없습니다.
  • 3mm 확산 LED (흰색): 표준 고품질 3mm 백색 LED, 백색 확산/무광 패키지. 전원 및 상태 표시기, 백라이트, 메시지 디스플레이, 3D 큐브 등에 적합합니다. 가격은 LED 1개(1) 기준입니다. 많이 구매할수록 단가가 낮아집니다. 이 LED는 새 출력을 테스트하는 데 이상적입니다. 확산 패키지는 부드러운 빛을 제공하며, 수량에 따라 가격이 낮아지므로 전체 프로젝트에 충분한 양을 구매할 수 있습니다.
  • 검정색, 28핀 ZIF 소켓: 이 ZIF(제로 인서션 포스) 소켓는 레버를 통해 제로 인서션 포스(ZIF) 메커니즘을 작동시켜 장치 손상을 줄이는 데 도움을 줍니다. 이 2.54mm DIP 소켓은 피치 2.54mm, 본체 폭 0.3의 듀얼 인라인 패키지에 우수한 테스트 및 번인 인터페이스를 제공합니다. 프로토타이핑 중 74HC595 칩이나 다른 DIP IC를 교체할 때 ZIF 소켓은 핀 굽힘을 방지하고 테스트를 더 쉽게 만듭니다.

어떤 것을 사용해야 하나요?

최적 용도

  • 예산이 적은 상태에서 많은 출력(LED, 릴레이)이 필요한 프로젝트
  • 멀티플렉싱 또는 PWM 같은 빠른 업데이트 요구 사항
  • 추가 트랜지스터 없이 저전류 부하 직접 구동

적합하지 않은 경우

  • 입력을 읽어야 하는 프로젝트(I2C 익스팬더 선택)
  • 마이크로컨트롤러 핀을 단 두 개로 최소화해야 할 때
  • 추가 드라이버 없이 고전류 부하 처리