クイックアンサー

多数の単純なオン/オフ出力が必要で、ピンあたりのコストを最小限に抑えたい場合は、74HC595 シフトレジスタを使用します。少数の出力が必要で、マイコンのピンを節約したい場合は、PCF8574 などの I2C エキスパンダを使用します。トレードオフは、ピン数と配線の簡易性、および電流駆動能力のバランスです。

74HC595 シフトレジスタの動作方法

74HC595は、8ビットのシリアル入力・パラレル出力シフトレジスタです。データ、クロック、ラッチの3つのマイクロコントローラピンを使用して、1ビットずつデータを送信します。ラッチされると、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デバイスには固有のアドレスが必要なため、接続できる数は限られます。 1バスあたりの数に制限があります。

主な違い:速度、電流、ピンコスト

74HC595は、速度と電流駆動能力に優れています。ラッチを高速で切り替えることで、マルチプレクスやPWMのような効果に適しており、非常に迅速に更新できます。出力は標準的なLEDを直接駆動するのに十分な電流をソースまたはシンクできます。I2Cエクスパンダは遅く、出力駆動能力も弱いですが、チェーン接続するエクスパンダの数に関係なく、マイクロコントローラのピンを合計2本しか使用しません。シフトレジスタはチェーンあたり3本のピンを使用しますが、アトレス競合なしに多くのチップをチェーン接続できます。出力あたりのコストは74HC595の方が低く、特に当店が提供する5個パックを購入する場合に顕著です。I2Cエクスパンダでピンあたりのコストは高く、より多くの電を流要する負荷には追ド加ラーバ部品が必に要なる能性があります。

実配際線とコドに関する考慮事項

74HC595の配線は簡単です。VCCとGNDを接続し、SER(データ)をマイコンのピンに、SRCLK(クロック)を別のピンに、RCLK(ラッチ)を3つ目のピンに接続します。1つのシフトレジスタのQ7'を次のSERに接続することで、デイジーチェーン接続が可能です。I2Cエキスパンダの場合は、SDAとSCLをマイコンのI2Cピンに接続し、アドレスピンを設定して競合を回避します。コードでは、74HC595はshiftOut()またはSPIを使用し、PCF8574はWireライブラリのコマンドを使用します。入力の読み取りが必要な場合、PCF8574はそれが可能ですが、74HC595は読み取り不可で、出力専用です。これが重要な制限です。プロジェクトで入力と出力の両方が必要な場合は、別のエキスパンダまたは組み合わせが必要になる場合があります。

各オプションを選ぶタイミング

多くの出力、高速更新、LEDの直接駆動が必要な場合は、74HC595を選んでください。LEDマトリックス、7セグメントディスプレイ、またはドライバを介した多数のリレー駆動に最適です。マイコンのピンが不足しており、少数の出力のみが必要な場合、または入力も追加したい場合は、I2Cエキスパンダを選んでください。同じバス上に複数のデバイスがあり、配線を最小限に抑えたい場合も、I2Cの方が適しています。モーターを駆動する必要がある場合は、Arduino用モータードライブシールド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(白): 標準高品質白色LED、3mm、白色拡散/つや消しパッケージ。電源インジケータ、ステータスインジケータ、バックライト、メッセージディスプレイ、3Dキューブなどに適しています。価格は1個(1)のLEDあたりです。数量が多いほどコストが下がります。これらのLEDは、新しい出力のテストに最適です。拡散パッケージにより柔らかな輝きを放ち、数量割引があるため、プロジェクト全体に十分な数をご購入いただけます。
  • 黒色、28ピンZIFソケット: これらのZIF(ゼロインサーションフォース)ソケットは、レバーを備え、ゼロインサーションフォース(ZIF)機構を作動させてデバいスの損傷を軽減します。これらの2.54mm DIPソケットは、ピッチ2.54mm、ボディ幅0.3のデュアルインラインパッケージに優れたテストおよびバーンインインターフェースを提供します。プロトタイピング中に74HC595チップや他のDIP ICを交換する場合、ZIFソケットはピンの曲がりを防ぎ、テストを容易にします。

どちらを使用すべきか?

最適な用途

  • 予算を抑えて多くの出力(LED、リレー)を必要とするプロジェクト
  • マルチプレクシングやPWMなどの高速更新要件
  • 追加トランジスタなしで低電流負荷を直接駆動

対象外

  • 入力を読み取る必要があるプロジェクト(I2Cエキスパンダーを選択)
  • マイクロコントローラのピンをわずか2本に抑える必要がある場合
  • 追加ドライバ不要の大電流負荷