3.6 スィッチでLEDをオン/オフしよう


3.6 スィッチでLEDをオン/オフしよう

スィッチのレベルを読み込んで、LEDを点けたり、消したりします。

(1) スィッチの回路を作ろう

①組立

下の配線図、回路図をみて、回路を組立て下さい。

raspi_3.6_1s raspi_3.6_2s

(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
import time

from rpi_bp_gpio_led2b_1 import *

if __name__ ==(“__main__”):
#start

GPIO.setmode(GPIO.BCM) # use GPIO Number

LED1 = 5 # LED1 –> GPIO5
led_init(LED1)

SW1 = 26 # SW1 –> GPIO26
GPIO.setup(SW1, GPIO.IN) # set GPIO25 input

for i in range(20):
print(i)

on_off = GPIO.input(SW1) # read SW1

if on_off == GPIO.LOW:
led_on(LED1)

else:
led_off(LED1)

time.sleep(0.2)

 

 

 

④ 入力を終わります。
「ctrl+X」を実行します。次に、「y/n」は「enter」を入れます。

⑤ 入力したプログラムを実行します。
「sudo python rpi_bp_gpio_sw_1.py」を実行します。

*SW1を押すとLED1が点きます。離すと消えます。
その後に、「sw1 done」のメッセージが出ます。

raspi_code_3.6_1

⑥ 電源をきります。

「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
import time

from rpi_bp_gpio_led2b_1 import *

def sw_init(sw):
GPIO.setup(sw, GPIO.IN) # set GPIO25 input

def sw_read(sw):
level = GPIO.input(sw) # set GPIO sw input
return level

if __name__ ==(“__main__”):
#start

GPIO.setmode(GPIO.BCM) # use GPIO Number

LED1 = 5 # LED1 –> GPIO5
led_init(LED1)

SW1 = 26 # SW1 –> GPIO26
sw_init(SW1) # set GPIO26 input

for i in range(20):
print(i)

on_off = sw_read(SW1) # read SW1

if on_off == GPIO.LOW:
led_on(LED1)

else:
led_off(LED1)
time.sleep(0.2)

④ 入力を終わります。

「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」のメッセージが出ます。

raspi_code_3.6_3

⑥ 電源をきります。
「sudo shutdown -h now」を入力して下さい。
*ステータスLEDの点滅が終わり、消えてからマイクロUSBのDC5Vを抜いて下さい。

raspi_code_3.6_4

(4) モジュールを使おう

作った部品(関数)のモジュールを読み込みます。読み込んだモジュールの部品(関数)を使います。

① 電源を入れます
RaspberryPiB+にACアダプタを繋ぎ、電源を入れます。

② ログインします。
Raspbianが立ち上がったら、ログインして下さい。。

③ 「nano」エディター立ち上げます。
「nano rpi_bp_gpio_sw1b_1.py」コマンドを実行して下さい。
画面が「nano」エディターの画面に変わります。
プログラムを変更します。
サンプルの様にプログラムを変更します。

サンプルプログラム3

#! /usr/bin/env python

import RPi.GPIO as GPIO
import time

from rpi_bp_gpio_led2b_1 import *

from rpi_bp_gpio_sw1a_1 import *

if __name__ ==(“__main__”):
#start

GPIO.setmode(GPIO.BCM) # use GPIO Number

LED1 = 5 # LED1 –> GPIO5
led_init(LED1)

SW1 = 26 # SW1 –> GPIO26
sw_init(SW1) # set GPIO26 input

for i in range(20):
print(i)

on_off = sw_read(SW1) # read SW1

if on_off == GPIO.LOW:
led_on(LED1)

else:
led_off(LED1)
time.sleep(0.2)

GPIO.cleanup()

④ 入力を終わります。

「ctrl+X」を実行します。次に、「y/n」は「enter」を入れます。

⑤ 入力したプログラムを実行します。
「sudo python rpi_bp_gpio_swb_1.py」を実行します。

*SW1を押すとLED1が点きます。離すと消えます。
その後に、「sw1a done」のメッセージが出ます。

*(2)のプログラムと同じようにSW1を押すとLED1が点きます。離すと消えます。
その後に、「sw1b done」のメッセージが出ます。

raspi_code_3.6_5

⑥ 電源をきります。

「sudo shutdown -h now」を入力して下さい。

*ステータスLEDの点滅が終わり、消えてからマイクロUSBのDC5Vを抜いて下さい。

raspi_code_3.6_6

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です