押すとON、離すとOFFになるタクトスイッチを使います。
ラズパイへの接続は以下のとおりです。
タクトスイッチには向きがあります。
タクトスイッチを真上から見て足が出ている向きで判断します。
ブレッドボードに差し込むときは中央を橋渡すようにします。
0.3秒ごとにタクトスイッチの状態を確認するサンプルです。
import RPi.GPIO as GPIO
import time
# GPIO番号
GPIO_NO = 18
def main():
# 初期設定
GPIO.setmode(GPIO.BCM)
# 入力端子設定
GPIO.setup(GPIO_NO, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
while True:
# スイッチのステータスを取得
# 0:ON, 1:OFF
sw_status = GPIO.input(GPIO_NO)
# 出力
if sw_status == 0:
print("ON")
else:
print("OFF")
# 0.3秒停止
time.sleep(0.3)
except KeyboardInterrupt:
print("\nCtrl+C")
finally:
print("Exit")
if __name__ == "__main__":
main()
今回のようにスイッチを押すことでGPIO端子がGroundと導線する回路の場合は「プルアップ (GPIO.PUD_UP)」を設定します。
# 入力端子設定
GPIO.setup(GPIO_NO, GPIO.IN, pull_up_down=GPIO.PUD_UP)
参考サイト