シヨツ鬼のブログ

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

【動画解説付き】シフトレジスタ(74HC595)の使い方をラズパイで理解~指でポチポチ編~

f:id:shiyotsuki:20210214214425p:plain

どうも、プログラミングの鬼シヨツ鬼です。

この記事では「ラズパイで"しふとれじすた"ってやつを使ってみたいんよ」っていう電子工作初心者のあなたに向けて、実際の工作を通して使い方を解説しています!


ちなみに、この記事は次の動画と同じ内容ですので、記事だけだと分かりづらい部分は、そちらもご活用ください。
(ボタンの位置や操作方法などがわかるので、初心者の方は動画のほうが分かりやすいかも)

シフトレジスタ(74HC595)の使い方を電子回路からプログラミングまで解説

どんなものを作るか

3つのボタンを指でポチポチすることで、手動でシフトレジスタに値を記録させる装置を作ります。
「そんなもの作ってどうするんだ!」って気持ちも分かりますが、これを作ることで、『シフトレジスタマスター』の称号を手に入れることができます。

必要なもの

  • Raspberry Pi 3 Model B
  • ブレッドボード
  • シフトレジスタ(74HC595)
  • ボタン×3
  • LED(青)×8
  • 抵抗(1KΩ)×8
  • 抵抗(220Ω)×3
  • ジャンパー線(オス-オス)×11
  • ジャンパー線(オス-メス)×2
  • 器用な指先とパーツをなくさない綺麗な机

回路を作る

ブレッドボードに以下のように接続します。

f:id:shiyotsuki:20210131100949p:plain
配線表
f:id:shiyotsuki:20210124173128p:plain
シフトレジスタの16本の足の役割

シフトレジスタについてもっと分かりやすく知りたいぞって方は↓の記事を読んでね☆
shiyotsuki.hatenablog.com

プログラムを書く

ラズパイで以下のようなプログラムを書きます。
内容としては「ラズパイの40番のピンから100秒間電気を流す」それだけです。

#必要なモジュールをインポート
import RPi.GPIO as GPIO             #GPIO用のモジュールをインポート
import time                         #時間制御用のモジュールをインポート

#ポート番号の定義
seg_pin = [21]

#GPIOの設定
GPIO.setmode(GPIO.BCM)              #GPIOのモードを"GPIO.BCM"に設定
GPIO.setup(seg_pin, GPIO.OUT)       #GPIOを出力モードに設定

#電源用のポートを定義
seg_dengen = [21]

#GPIOピンをオンにする
GPIO.output(seg_dengen, GPIO.HIGH)
#100秒待つ
time.sleep(100)
#GPIOピンをオフにする
GPIO.output(seg_dengen, GPIO.LOW)


#GPIOをクリーンアップ
GPIO.cleanup()

print("finish")

ラズパイでプログラミングするときにWindowsからリモートで繋いで便利につかってみたいぜって方は↓の記事もおすすめ
shiyotsuki.hatenablog.com

指でポチポチ遊ぶ

上の配線表のとおりに配線した場合は、ボタンは次のような役割です。

  • ボタン1:押しているときは「LEDを光らせる」の状態
  • ボタン2:押したときに「ボタン1」の状態をシフトレジスタにセット
  • ボタン3:押したときにシフトレジスタにセットされた状態を出力

使い方の例としては、こんな感じです。

  • LEDを全部消灯したい:ボタン2を8回押した後に、ボタン3を押す。
  • LEDを全部点灯したい:ボタン1を押した状態で、ボタン2を8回押した後に、ボタン3を押す。
  • LEDを1個ずつ点灯させていきたい:『ボタン1を押した状態で、ボタン2を1回押し、ボタン3を押す』この動作を8回繰り返す。

ここは文章よりも実際に触ってみたほうが分かりやすいと思いますので、自分の指でポチポチ押して色んなパターンを試してみてください!

まとめ

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