Raspberry Pi(Raspbian)でLEDを点灯/消灯させるプログラムを作る
はじめに
Raspberry Pi(Raspbian)でLEDを点灯/消灯させるプログラムの紹介です。
必要なもの
- RaspbianがインストールされているRaspberry Pi
- ブレッドボード
- LEDx2
- 抵抗(100Ω)x2
- ジャンパー線(オス/メス)x3
- ジャンパー線(オス/オス)x2
配線
GPIOとGNDならどこでも可ですが、今後の拡張性などを考えるとGPIOのみのピン(3, 5, 8, 10, 19, 21, 23, 24, 25以外)を使う方が無難だと思います。
この投稿では33(GPIO13), 35(GPIO19), 39(GND)ピンを使用しています。
プログラム
led.py
#Import Files
import RPi.GPIO as GPIO
import time
#GPIO Settings
GPIO.setmode(GPIO.BCM)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(19, GPIO.OUT)
#Main
try:
while True:
GPIO.output(13, GPIO.LOW)
GPIO.output(19, GPIO.HIGH)
time.sleep(1)
GPIO.output(13, GPIO.HIGH)
GPIO.output(19, GPIO.LOW)
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
解説
- スイッチの制御に使用する
RPi.GPIO
ライブラリをインポートする
- 時間を取得するために使用する
time
ライブラリをインポートする
- GPIOのモードをBCMに設定する(物理的なピン番号ではなく、GPIO**を使用する)
- GPIO13, GPIO19を出力端子に設定する(Hi=点灯, Low=消灯)
- LEDを点滅させ続けるので
while True:
で無限ループさせる
- LEDを1秒周期で交互に点滅させる
- 解説6に遷移 or プログラムが終了するのを待つ
- Control+Cが押されたらGPIOを解放してプログラムを終了する
プログラムを実行してみる
写真を撮るプログラムに組み込んでみる
#Import Files
import RPi.GPIO as GPIO
import time
#GPIO Settings
GPIO.setmode(GPIO.BCM)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(19, GPIO.OUT)
#Main
try:
while True:
GPIO.output(13, GPIO.LOW)
GPIO.output(19, GPIO.HIGH)
time.sleep(1)
GPIO.output(13, GPIO.HIGH)
GPIO.output(19, GPIO.LOW)
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
- スイッチの制御に使用する
RPi.GPIO
ライブラリをインポートする - 時間を取得するために使用する
time
ライブラリをインポートする - GPIOのモードをBCMに設定する(物理的なピン番号ではなく、GPIO**を使用する)
- GPIO13, GPIO19を出力端子に設定する(Hi=点灯, Low=消灯)
- LEDを点滅させ続けるので
while True:
で無限ループさせる - LEDを1秒周期で交互に点滅させる
- 解説6に遷移 or プログラムが終了するのを待つ
- Control+Cが押されたらGPIOを解放してプログラムを終了する
プログラムを実行してみる
写真を撮るプログラムに組み込んでみる
以前作成した写真を撮るプログラムのcamera_func(x)にLEDの点灯/消灯処理を組み込んでみた。
#Import Files
import RPi.GPIO as GPIO
import picamera
import time
#GPIO Settings
GPIO.setmode(GPIO.BCM)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(19, GPIO.OUT)
GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_UP)
#Camera Settings
CAM_DIR = "/home/pi/python/_photo/"
camera = picamera.PiCamera()
#Camera Function
def camera_func(x):
if GPIO.input(26) == 0:
GPIO.output(19, GPIO.HIGH)
filename = time.strftime("%Y%m%d%H%M%S") + ".jpeg"
save_dir_filename = CAM_DIR + filename
camera.capture(save_dir_filename)
GPIO.output(19, GPIO.LOW)
else:
GPIO.output(13, GPIO.HIGH)
time.sleep(1)
GPIO.output(13, GPIO.LOW)
#Interrupt
GPIO.add_event_detect(26, GPIO.FALLING, callback=camera_func, bouncetime=200)
#Main
try:
while True:
pass
except KeyboardInterrupt:
GPIO.cleanup()
変更前はスイッチを押しても写真を撮れているのかわからなかったが、変更後はスイッチを押した際、正常(写真が撮れている場合)なら緑色、異常(写真が撮れていない場合)なら赤色のLEDが点灯するので、何も無いよりはわかりやすくなった。
参考
Author And Source
この問題について(Raspberry Pi(Raspbian)でLEDを点灯/消灯させるプログラムを作る), 我々は、より多くの情報をここで見つけました https://qiita.com/Yuta_Chief/items/fcbbda8509c7cbbfd796著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .