Arduino日本語リファレンス



【パラメータ】

dataPin: 各ビットを出力するピン
clockPin: クロックを出力するピン。dataPinに正しい値がセットされたら、このピンが1回反転します
bitOrder: MSBFIRSTまたはLSBFIRSTを指定します。Most Significant Bit Firstは最上位ビットから送ること、Least Significant Bit Firstは最下位ビットから送ることを示します。
value: 送信したいデータ (byte)

【戻り値】

なし

【補足】

dataPinとclockPinは、あらかじめpinMode関数によって出力(OUTPUT)に設定されている必要があります。

【例】

int型のデータをLSB firstで送信します。データは2バイトの大きさなので、1度には送れません。ビットシフト演算を用いて1バイトずつ送ります。

int data = 500;
shiftOut(data, clock, LSBFIRST, data); //2バイトの下位を送信
shiftOut(data, clock, LSBFIRST, (data >> 8)); //上位バイト

74HC595シフトレジスタを使って、8つのLEDをひとつずつ順番に光らせます。

int latchPin = 8;  // 74HC595のST_CPへ
int clockPin = 12; // 74HC595のSH_CPへ
int dataPin = 11;  // 74HC595のDSへ

void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  // LED1からLED8までを順に光らせます
  for (int j = 0; j < 7; j++) {
    // 送信中のlatchPinはグランド(LOW)レベル
    digitalWrite(latchPin, LOW);
    // シフト演算を使って点灯するLEDを選択しています
    shiftOut(dataPin, clockPin, LSBFIRST, 1<<j);
    // 送信終了後latchPinをHIGHにする
    digitalWrite(latchPin, HIGH);
    delay(100);
  }
}



ブレッドボードを使った接続の仕方は次のURLで紹介されています。
http://arduino.cc/en/Tutorial/ShiftOut



[目次へ戻る]

Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [ドキュメント一覧]