タクトスイッチ その2 [Raspberry Pi][電子工作][Python]
今回は、タクトスイッチでインプットの処理を行います。
今までは、GPIO.output(23,1)の様に、GPIOピンから出力をしてきました。
その逆のインプット処理を行うにあたって必要な知識に、「プルアップ抵抗」「プルダウン抵抗」というものがあります。
(わたしは、いまいち理解できていません...)
とりあえず、プルアップを例に実動作を確認してみます。
接続はこんな感じです。
プログラムはこんな感じになります。
- import RPi.GPIO as GPIO
- import time
- GPIO.setmode(GPIO.BCM)
- GPIO.setup(23,GPIO.IN,pull_up_down=GPIO.PUD_UP)
- GPIO.setup(25,GPIO.OUT)
- try:
- while True:
- if GPIO.input(23) == GPIO.HIGH:
- GPIO.output(25,1)
- else:
- GPIO.output(25,0)
- time.sleep(0.1)
- except KeyboardInterrupt:
- GPIO.cleanup()
動かすとこんな感じになります。
まず、
GPIO.setup(23,GPIO.IN,pull_up_down=GPIO.PUD_UP)
で、GPIO 23をインプット(プルアップ)に設定しています。
プルアップに設定した場合、
タクトスイッチOFF時は「HIGH」になり、ON時は「LOW」になります。
そのため、if文で指定した通り、
GPIO 23がHIGH(スイッチOFF)の時に、LEDが点灯(GPIO 25が出力ON)し、
GPIO 23がLOW(スイッチON)の時に、LEDが消灯(GPIO 25が出力OFF)します。
次回、プルアップ/プルダウンについてもう少し詳細を説明します。