3.6 スィッチでLEDをオン/オフしよう
スィッチのレベルを読み込んで、LEDを点けたり、消したりします。
(1) スィッチの回路を作ろう
①組立
下の配線図、回路図をみて、回路を組立て下さい。
(2)スィッチのレベルでLEDをオン、オフ」する」プログラムを作ろう
SW1のレベルを読み込みます。レベルの”LOW”、”HIGH”でLEDを点けたり消したりします。SW1が押されると、
GNDに繋がって、レベルは”LOW”になります。離すと、”HIGH”になります。
*Pythonの新しい命令を使います。
*if 、else 命令
*、==、から後ろの命令は、取り込んでも使えない(動かない)ようにします。
*==:等しい、!=:異なる、>:大きい、>=:大きいまたは等しい、=<:等しいまたは小さい、<:小さい
*書き方
*if 変数1==変数2:
インデント命令
else :
インデント命令
スペース
①電源を入れます
RaspberryPiB+にACアダプタを繋ぎ、電源を入れます。
②ログインします。
Raspbianが立ち上がったら、ログインして下さい。
③「nano」エディター立ち上げます。
「nano rpi_bp_gpio_lsw1_1.py」コマンドを実行して下さい。
画面が「nano」エディターの画面に変わります。
プログラムを変更します。
サンプルの様にプログラムを変更します。
サンプルプログラム1
#! /usr/bin/env python
import RPi.GPIO as GPIO from rpi_bp_gpio_led2b_1 import * if __name__ ==(“__main__”): GPIO.setmode(GPIO.BCM) # use GPIO Number LED1 = 5 # LED1 –> GPIO5 SW1 = 26 # SW1 –> GPIO26 for i in range(20): on_off = GPIO.input(SW1) # read SW1 if on_off == GPIO.LOW: else: time.sleep(0.2) |
④ 入力を終わります。
「ctrl+X」を実行します。次に、「y/n」は「enter」を入れます。
⑤ 入力したプログラムを実行します。
「sudo python rpi_bp_gpio_sw_1.py」を実行します。
*SW1を押すとLED1が点きます。離すと消えます。
その後に、「sw1 done」のメッセージが出ます。
⑥ 電源をきります。
「sudo shutdown -h now」を入力して下さい。
*ステータスLEDの点滅が終わり、消えてからマイクロUSBのDC5Vを抜いて下さい。
(3) 部品にしよう
作った部品(関数)でSW1のレベルを読み込みます。
読み込んだレベルは戻り値として返します。
*Pythonの新しい命令を使います。
*return 命令
*、*書き方
*def関数名():
インデント命令
インデントreturn戻り値
① 電源を入れます
RaspberryPiB+にACアダプタを繋ぎ、電源を入れます。
② ログインします。
Raspbianが立ち上がったら、ログインして下さい。
③ 「nano」エディター立ち上げます。
「nano rpi_bp_gpio_sw1a_1.py」コマンドを実行して下さい。
画面が「nano」エディターの画面に変わります。
プログラムを変更します。
サンプルの様にプログラムを変更します。
サンプルプログラム2
#! /usr/bin/env python
import RPi.GPIO as GPIO from rpi_bp_gpio_led2b_1 import * def sw_init(sw): def sw_read(sw): if __name__ ==(“__main__”): GPIO.setmode(GPIO.BCM) # use GPIO Number LED1 = 5 # LED1 –> GPIO5 SW1 = 26 # SW1 –> GPIO26 for i in range(20): on_off = sw_read(SW1) # read SW1 if on_off == GPIO.LOW: else:
|
④ 入力を終わります。
「ctrl+X」を実行します。次に、「y/n」は「enter」を入れます。
⑤ 入力したプログラムを実行します。
「sudo python rpi_bp_gpio_swa_1.py」を実行します。
*SW1を押すとLED1が点きます。離すと消えます。
その後に、「sw1a done」のメッセージが出ます。
*(2)のプログラムと同じようにSW1を押すとLED1が点きます。
離すと消えます。
その後に、「sw1a done」のメッセージが出ます。
④ 入力を終わります。
「ctrl+X」を実行します。次に、「y/n」は「enter」を入れます。
⑤ 入力したプログラムを実行します。
「sudo python rpi_bp_gpio_swa_1.py」を実行します。
*SW1を押すとLED1が点きます。離すと消えます。
その後に、「sw1a done」のメッセージが出ます。
*(2)のプログラムと同じようにSW1を押すとLED1が点きます。離すと消えます。
その後に、「sw1a done」のメッセージが出ます。
⑥ 電源をきります。
「sudo shutdown -h now」を入力して下さい。
*ステータスLEDの点滅が終わり、消えてからマイクロUSBのDC5Vを抜いて下さい。
(4) モジュールを使おう
作った部品(関数)のモジュールを読み込みます。読み込んだモジュールの部品(関数)を使います。
① 電源を入れます
RaspberryPiB+にACアダプタを繋ぎ、電源を入れます。
② ログインします。
Raspbianが立ち上がったら、ログインして下さい。。
③ 「nano」エディター立ち上げます。
「nano rpi_bp_gpio_sw1b_1.py」コマンドを実行して下さい。
画面が「nano」エディターの画面に変わります。
プログラムを変更します。
サンプルの様にプログラムを変更します。
サンプルプログラム3
#! /usr/bin/env python
import RPi.GPIO as GPIO from rpi_bp_gpio_led2b_1 import * from rpi_bp_gpio_sw1a_1 import * if __name__ ==(“__main__”): GPIO.setmode(GPIO.BCM) # use GPIO Number LED1 = 5 # LED1 –> GPIO5 SW1 = 26 # SW1 –> GPIO26 for i in range(20): on_off = sw_read(SW1) # read SW1 if on_off == GPIO.LOW: else: GPIO.cleanup()
|
④ 入力を終わります。
「ctrl+X」を実行します。次に、「y/n」は「enter」を入れます。
⑤ 入力したプログラムを実行します。
「sudo python rpi_bp_gpio_swb_1.py」を実行します。
*SW1を押すとLED1が点きます。離すと消えます。
その後に、「sw1a done」のメッセージが出ます。
*(2)のプログラムと同じようにSW1を押すとLED1が点きます。離すと消えます。
その後に、「sw1b done」のメッセージが出ます。
⑥ 電源をきります。
「sudo shutdown -h now」を入力して下さい。
*ステータスLEDの点滅が終わり、消えてからマイクロUSBのDC5Vを抜いて下さい。