引き続きコチラの書籍で学習継続中。今日は第5章に記載のタクトスイッチのON/OFFでLED点灯制御をしてみます。
[amazonjs asin=”4062579774″ locale=”JP” title=”カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス)”]
書籍のまんまですが、回路図はこのようになります。
因みに回路図の描画は「水魚堂の回路図エディタ」BSch3Vを使用しました。
パーツを接続し回路図を実現したところ。
Raspberry Piの制御コードはこうなります。書籍と異なるのは、タクトスイッチをオンにするとLEDがオフになるところ。
import RPi.GPIO as GPIO from time import sleep GPIO.setmode(GPIO.BCM) GPIO.setup(25, GPIO.OUT) GPIO.setup(24, GPIO.IN) try: while True: if GPIO.input(24) == GPIO.HIGH: GPIO.output(25, GPIO.LOW) else: GPIO.output(25, GPIO.HIGH) sleep(0.01) except KeyboardInterrupt: pass GPIO.cleanup()
動かしてみました。タクトスイッチを押す度にLEDのON/OFFが切り替わります。
書籍にも記載していますが、プルダウン抵抗は電流を安定させるために必要なもの。外してしまうとこのように不安定な挙動になります。
そこでRaspberry Piに備わっている内部抵抗を有効にしてみます。
こちらもほぼ書籍のまんまですが、内部プルダウン抵抗を有効にするソースコードは次のようになります。
import RPi.GPIO as GPIO from time import sleep GPIO.setmode(GPIO.BCM) GPIO.setup(25, GPIO.OUT) GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) try: while True: if GPIO.input(24) == GPIO.HIGH: GPIO.output(25, GPIO.LOW) else: GPIO.output(25, GPIO.HIGH) sleep(0.01) except KeyboardInterrupt: pass GPIO.cleanup()
回路はこのように。先ほどは繋がれていたプルダウン抵抗が外れていますが、無事動作するでしょうか。
無事動作しました。安定してLEDが制御できていることがわかります。