シヨツ鬼のブログ

初心者向けに分かりやすくIT関連の情報を発信しています。

【74HC595】シフトレジスタの使い方を分かりやすく解説【初心者歓迎】

f:id:shiyotsuki:20210124213407p:plain

どうも、プログラミングの鬼シヨツ鬼です。
この記事では「電子工作始めようと思ってキット買ったらシフトレジスタってパーツが入ってたけど、これ何よ」っていうあなたに向けて、その用途と使い方をわかりやすく、解説しています。




シフトレジスタとは

シフトレジスタ(英: Shift register)とは、複数のフリップフロップをカスケード接続し、データがその回路内を移動(シフト)していくよう構成したデジタル回路のこと。
出典: フリー百科事典『ウィキペディア(Wikipedia)』

なるほど。分からん。
この説明で分かる人は、この記事の読者対象外ですので、多分この続きを読む必要はないと思います。
上の説明で「データが移動する回路なんだ~」と、浅い理解をした方は、僕と同じレベルなので、逆にこの記事は有用だと思います。
一緒に頑張りましょう!

シフトレジスタがあると何ができるか

まず、シフトレジスタがあると何ができるのかということですが、少ない入力情報で多くの出力情報を扱うことができるようになります。

具体的に言うと、ラズパイから3本コードを生やすだけで、8個のLEDを制御することができるようになります!


ダンゴムシみたいな見た目しているくせにスゴイじゃないか!

なぜ、少ない入力で多くの出力を扱えるのか

では、なぜたった3本の線で8個の出力を扱えるのでしょうか。
それはシフトレジスタが8つの状態記憶をできる回路になっているからです。

冒頭のWikipediaの説明に「フリップフロップが~」と説明があったと思いますが、この"フリップフロップ"というのが1つの状態を記憶できる回路です。
そして、シフトレジスタには、このフリップフロップが複数入っています。
そのため、3本の入力情報で、8個の出力状態をシフトレジスタに記憶させておくことで、少ない入力値で多くの出力を扱うことができます。

また、記憶できる状態は8つありますが、新しい情報が入ってくると最も古い情報が押し出され消えます。
イメージは『ところてん』です。

f:id:shiyotsuki:20210124181707p:plain
状態保存のイメージ

シフトレジスタの16本のピンの役割

f:id:shiyotsuki:20210124173128p:plain
シフトレジスタの16本のピンの役割

シフトレジスタには、16本のピンが生えていますが、それぞれに役割があります。
ほとんど上の画像の通りですが、以下のような役割です。

【出力系】

  • 1~7、15:出力ピン。最新の情報から順にQ0、Q1、Q2・・・Q7まで出力できる。なぜQ0だけ変な位置にあるのかは謎。

【入力系】

  • 14:シリアルデータ入力ピン。Q0に保存したい情報(HIGH(オン)またはLOW(オフ)を入力する。
  • 12:LOWからHIGHになったとき、変更が有効になる。ラッチと呼ばれるらしい。
  • 11:LOWからHIGHになったとき、SERの情報が保存される。

【電源系】

  • 8:回路の末端部分。GNDラズパイのGNDピンに接続する。
  • 16:電源供給部分。常に電気が流れるようにする。
  • 10:LOWになるとシフトレジスタ内のデータが消去される。意識的に全データ削除したい場合でなければ、電源につなぎ常に電気が流れるようにする。

まとめ

シフトレジスタ使えると、電子工作しているなーって気分になって楽しいよ!
具体的な使い方を知りたいぞって人は↓の記事を合わせて読むのがおすすめ!
【動画解説付き】シフトレジスタ(74HC595)をラズパイで使う~指でポチポチ編~shiyotsuki.hatenablog.com


最後まで読んでくれてありがとう。
参考になったら「☆」を押してね。そして僕のYouTubeTwitterもよろしくね。