はじめに
こちらは
Arduino と Raspberry Pi の違いのまとめ
の二つ目の個別記事で、Raspberry Pi で push switch の入力を検知する。
目的
push switchで何か機能を動作させるときの方法である。Arduinoのswitch制御の例は省く。ArduinoのIEDのexampleを見れば十分だろう。
hardware
- LED は、GPIO25とGNDに接続する
- Push Switch は、GPIO24と抵抗でpull downしてGNDに接続する
にそれぞれ接続したとき。Push Switch は、抵抗で pull down した。しかし、Raspberry Pi では、pull downもpull upもソフトウェアで設定することができるため、実際の抵抗を使う必要性はない。
ちなみに Raspberry PiのGNDのピンはたくさんアサインされている。GND のピン数は、Arduino以上に多い。
スイッチの検出のポイントはこちらである。見れば分かるのでこちらでおしまい。
if GPIO.input(PIN_SW1) == GPIO.HIGH:
software
とりあえずswitch動作でLEDを光らせるもの。
02_LED_SW.py
import RPi.GPIO as GPIO
from time import sleep
PIN_LED1 = 25
PIN_SW1 = 24
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN_LED1, GPIO.OUT)
GPIO.setup(PIN_SW1, GPIO.IN)
try:
while True:
if GPIO.input(PIN_SW1) == GPIO.HIGH:
GPIO.output(PIN_LED1,GPIO.HIGH)
else:
GPIO.output(PIN_LED1,GPIO.LOW)
sleep(0.01)
except KeyboardInterrupt:
pass
GPIO.cleanup()