【動画解説付き】シフトレジスタ(74HC595)の使い方をラズパイで理解~指でポチポチ編~
どうも、プログラミングの鬼シヨツ鬼です。
この記事では「ラズパイで"しふとれじすた"ってやつを使ってみたいんよ」っていう電子工作初心者のあなたに向けて、実際の工作を通して使い方を解説しています!
ちなみに、この記事は次の動画と同じ内容ですので、記事だけだと分かりづらい部分は、そちらもご活用ください。
(ボタンの位置や操作方法などがわかるので、初心者の方は動画のほうが分かりやすいかも)
シフトレジスタ(74HC595)の使い方を電子回路からプログラミングまで解説
どんなものを作るか
3つのボタンを指でポチポチすることで、手動でシフトレジスタに値を記録させる装置を作ります。
「そんなもの作ってどうするんだ!」って気持ちも分かりますが、これを作ることで、『シフトレジスタマスター』の称号を手に入れることができます。
必要なもの
- Raspberry Pi 3 Model B
- ブレッドボード
- シフトレジスタ(74HC595)
- ボタン×3
- LED(青)×8
- 抵抗(1KΩ)×8
- 抵抗(220Ω)×3
- ジャンパー線(オス-オス)×11
- ジャンパー線(オス-メス)×2
- 器用な指先とパーツをなくさない綺麗な机
プログラムを書く
ラズパイで以下のようなプログラムを書きます。
内容としては「ラズパイの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
指でポチポチ遊ぶ
上の配線表のとおりに配線した場合は、ボタンは次のような役割です。
使い方の例としては、こんな感じです。
- LEDを全部消灯したい:ボタン2を8回押した後に、ボタン3を押す。
- LEDを全部点灯したい:ボタン1を押した状態で、ボタン2を8回押した後に、ボタン3を押す。
- LEDを1個ずつ点灯させていきたい:『ボタン1を押した状態で、ボタン2を1回押し、ボタン3を押す』この動作を8回繰り返す。
ここは文章よりも実際に触ってみたほうが分かりやすいと思いますので、自分の指でポチポチ押して色んなパターンを試してみてください!