Arduinoでのシフトレジスタの使用方法


  1. 必要な材料:

    • Arduinoボード
    • シフトレジスタ(例: 74HC595)
    • ジャンパーワイヤー
    • LED(任意)
  2. 回路接続:

    • Arduinoのデジタルピン9をシフトレジスタのデータ入力(DS)に接続します。
    • Arduinoのデジタルピン10をシフトレジスタのクロック入力(SH_CPまたはSRCLK)に接続します。
    • Arduinoのデジタルピン11をシフトレジスタのラッチ入力(ST_CPまたはRCLK)に接続します。
    • シフトレジスタの出力(Q0-Q7)を制御したいデバイス(例: LED)に接続します。
  3. Arduinoコードの例: 以下のコードは、シフトレジスタを使用してLEDを制御する例です。

    // 必要なライブラリをインクルード
    #include <ShiftRegister.h>
    // シフトレジスタのピン設定
    const int DS_PIN = 9;  // データ入力ピン
    const int SH_CP_PIN = 10;  // クロック入力ピン
    const int ST_CP_PIN = 11;  // ラッチ入力ピン
    // ShiftRegisterオブジェクトを作成
    ShiftRegister sr(DS_PIN, SH_CP_PIN, ST_CP_PIN);
    void setup() {
     // シフトレジスタの初期化
     sr.begin();
    }
    void loop() {
     // LEDを順番に点灯
     for (int i = 0; i < 8; i++) {
       sr.set(i, HIGH);  // i番目のビットをHIGHに設定
       sr.update();  // シフトレジスタを更新
       delay(500);  // 500ミリ秒待機
       sr.set(i, LOW);  // i番目のビットをLOWに設定
     }
    }

    このコードでは、ShiftRegisterライブラリを使用してシフトレジスタを制御しています。ShiftRegisterオブジェクトを作成し、begin()関数で初期化します。set()関数を使用して特定のビットをHIGHまたはLOWに設定し、update()関数でシフトレジスタを更新します。loop()関数内でLEDを順番に点灯させています。

    上記のコードをArduinoにアップロードし、回路を組み立てた後、シフトレジスタを使用してデバイスを制御することができます。この例ではLEDを使用していますが、他のデバイスも同様に制御できます。

    以上がArduinoでシフトレジスタを使用する方法とコード例です。これを基にして自分のプロジェクトに応じた回路とコードを作成し、さまざまなデバイスを制御してみてください。