📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 文字列「</source>」を「</syntaxhighlight>」に置換 |
|||
| (同じ利用者による、間の1版が非表示) | |||
| 61行目: | 61行目: | ||
この時、shiftOut()関数を呼ぶ前に、ラッチ(RCLK)をLowにセットする。<br> | この時、shiftOut()関数を呼ぶ前に、ラッチ(RCLK)をLowにセットする。<br> | ||
shiftOut()関数の呼び出し後にラッチ(RCLK)をHighにセットすることで出力が有効になる。<br> | shiftOut()関数の呼び出し後にラッチ(RCLK)をHighにセットすることで出力が有効になる。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
const int PIN_SER = 8; | const int PIN_SER = 8; | ||
const int PIN_LATCH = 9; | const int PIN_LATCH = 9; | ||
| 83行目: | 83行目: | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
上記の例では、セットするデータとしてB11000000としている。(以下のように、10進数で初期化しても同様)<br> | 上記の例では、セットするデータとしてB11000000としている。(以下のように、10進数で初期化しても同様)<br> | ||
< | <syntaxhighlight lang="c++"> | ||
byte b = (byte)192; // B11000000 or 0xC0 と同じ | byte b = (byte)192; // B11000000 or 0xC0 と同じ | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 115行目: | 115行目: | ||
このセクションでは、左から右へLEDが流れるように光るサンプルコードを記述する。<br> | このセクションでは、左から右へLEDが流れるように光るサンプルコードを記述する。<br> | ||
以下の例では、点灯するLEDのパターンをbyte型配列で設定して、その配列の要素の値を順番に<code>shiftOut()</code>関数でシフトレジスタにセットしている。<br> | 以下の例では、点灯するLEDのパターンをbyte型配列で設定して、その配列の要素の値を順番に<code>shiftOut()</code>関数でシフトレジスタにセットしている。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
const int PIN_SER = 8; | const int PIN_SER = 8; | ||
const int PIN_LATCH = 9; | const int PIN_LATCH = 9; | ||
| 155行目: | 155行目: | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 174行目: | 174行目: | ||
<br> | <br> | ||
Arduinoのプログラムを以下のように記述する。<br> | Arduinoのプログラムを以下のように記述する。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
const int PIN_SER = 8; | const int PIN_SER = 8; | ||
const int PIN_LATCH = 9; | const int PIN_LATCH = 9; | ||
| 198行目: | 198行目: | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
下図左が前段のシフトレジスタ(74HC595)で、下図右が後段のシフトレジスタ(74HC595)である。<br> | 下図左が前段のシフトレジスタ(74HC595)で、下図右が後段のシフトレジスタ(74HC595)である。<br> | ||
| 211行目: | 211行目: | ||
<br> | <br> | ||
LSBFIRSTのビット順なので、プログラムに記載したB11010001とB00110011がそのままLEDのオン(1がON)、オフ(0がOFF)となる。<br> | LSBFIRSTのビット順なので、プログラムに記載したB11010001とB00110011がそのままLEDのオン(1がON)、オフ(0がOFF)となる。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
byte b1 = B11010001; | byte b1 = B11010001; | ||
byte b2 = B00110011; | byte b2 = B00110011; | ||
| 219行目: | 219行目: | ||
shiftOut(PIN_SER, PIN_CLK, LSBFIRST, b1); | shiftOut(PIN_SER, PIN_CLK, LSBFIRST, b1); | ||
digitalWrite(PIN_LATCH, HIGH); | digitalWrite(PIN_LATCH, HIGH); | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Arduino]] | [[カテゴリ:Arduino]] | ||