.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _cpn_74hc595: 74HC595 =========== .. image:: img/74HC595.png ArduinoのピンやLEDをたくさんコントロールしたい時、またはボタン、センサー、サーボを同時にコントロールするためのI/Oピンが足りない時、どうしますか?Arduinoにはセンサーを数つ接続できますが、すぐにピンが不足することがあります。 その解決策は「シフトレジスタ」を使用することです。シフトレジスタを使用すると、Arduino(または任意のマイクロコントローラ)から使用できるI/Oピンの数を増やすことができます。74HC595シフトレジスタは、その中でも特に有名です。 74HC595は基本的に独立した8つの出力ピンをコントロールし、入力ピンは3つしか使用しません。8つ以上のI/Oラインが必要な場合、任意の数のシフトレジスタを簡単にカスケード接続して、多くのI/Oラインを作成できます。これは所謂のシフト動作によって行われます。 **特徴** * 8ビット シリアルイン、パラレルアウト シフト * 動作電圧範囲:2 V から 6 V * 高電流3状態出力は、最大15LSTTL負荷まで駆動可能 * 低消費電力、最大ICC = 80-µA * 典型的なtPD = 14 ns * 5 Vでの出力駆動±6-mA * 最大入力電流1 µA * シフトレジスタは直接クリアが可能 **74HC595のピンとその機能:** .. image:: img/74hc595_pin.png :width: 600 * **Q0-Q7**: 8ビットの並列データ出力ピン。8つのLEDや7セグメントディスプレイの8ピンを直接制御可能。 * **Q7'**: シリーズ出力ピン。複数の74HC595をシリーズ接続する際に、別の74HC595のDSに接続。 * **MR**: リセットピン。低レベルでアクティブ。 * **SHcp**: シフトレジスタの時系列入力。上昇エッジで、シフトレジスタ内のデータが1ビットずつ移動。例:Q1のデータがQ2に移動。下降エッジでは、シフトレジスタのデータは変更されません。 * **STcp**: ストレージレジスタの時系列入力。上昇エッジで、シフトレジスタのデータがメモリレジスタに移動。 * **CE**: 出力有効ピン。低レベルでアクティブ。 * **DS**: シリアルデータ入力ピン * **VCC**: 正の供給電圧。 * **GND**: グラウンド。 **機能図** .. image:: img/74hc595_functional_diagram.png **動作原理** MR(ピン10)が高レベルで、OE(ピン13)が低レベルのとき、 データはSHcpの上昇エッジで入力され、STcpの上昇エッジを通ってメモリレジスタに移動します。 * シフトレジスタ * 例として、74hc595のシフトレジスタにバイナリデータ1110 1110を入力する場合。 * データはシフトレジスタのビット0から入力されます。 * シフトレジスタクロックが上昇エッジの場合、シフトレジスタ内のビットが1ステップシフトされます。例:ビット7はビット6の前の値を受け入れ、ビット6はビット5の値を取得します。 .. image:: img/74hc595_shift.png * ストレージレジスタ * ストレージレジスタが上昇エッジ状態にあるとき、シフトレジスタのデータがストレージレジスタに転送されます。 * ストレージレジスタは8つの出力ピンに直接接続されているため、Q0〜Q7は1バイトのデータを受け取ることができます。 * いわゆるストレージレジスタとは、このレジスタにデータが存在して、1回の出力で消失しないことを意味します。 * 74HC595が連続して電源が入っている限り、データは有効で変更されずに残ります。 * 新しいデータが入ると、ストレージレジスタ内のデータが上書きされて更新されます。 .. image:: img/74hc595_storage.png **例** * :ref:`ar_74hc595` (Arduinoプロジェクト) * :ref:`ar_7_segment` (Arduinoプロジェクト) * :ref:`ar_dice` (Arduinoプロジェクト) * :ref:`py_74hc595` (MicroPythonプロジェクト) * :ref:`py_7_segment` (MicroPythonプロジェクト) * :ref:`py_dice` (MicroPythonプロジェクト)