ボタン(タクトスイッチ)の使い方
ラズベリーパイでボタン(タクトスイッチ)の使い方、押した時にプログラムを実行する方法を説明します。
ボタン(タクトスイッチ)とは
足が4本あるとても小さなボタンです。
見た目にはわかりませんが、内部に1回路のスイッチがあります。ボタンを押しているときだけこのスイッチがOnになるしくみです。
足の間隔は、1-2、3-4間がブレッドボードの穴4つぶんで、1-3、2-4間が穴3つ分あります。
ラズベリーパイとの接続
ラズベリーパイでボタンを使用する時は色々なつなぎ方がありますが、片方をGPIOに、片方をGNDにつなぐ方法が1番簡単です。
この場合、ラズベリーパイのプログラムでGPIOをプルアップしておき、ボタンが押されるとGNDとつながってGPIOが0Vになることを利用して、ボタン押しを検出します。
電子回路の作成
ラズベリーパイでボタンを使用する際、電子回路は以下のようになります。GPIOとGNDはお好きなところを使用できます。
サンプルプログラム
ラズベリーパイでボタン押しを検出するプログラムは以下を使用できます。
pushbutton.py
import RPi.GPIO as GPIO # 必要なモジュールをインポートします
button_pin = 12 # GPIO 12にボタンをつなぎます
def button_callback(channel): # ボタンが押された時にやりたいことを
print("Button was pushed!") # この行から書いておきます
GPIO.setmode(GPIO.BCM) # BCMモードでGPIOを使用します
# GPIO 12を入力モードにし、プルアップします
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# ボタンが押されてGPIO 12がGNDになることを検出し、button_callbackを起動します
# bouncetimeはボタン押しの検出間隔です
GPIO.add_event_detect(BUTTON, GPIO.FALLING, callback=button_callback, bouncetime=200)
# 画面に文字を表示し、待機に入ります
input("Press button to count, or Enter to quit\n")
# キーボードの何かのキーが押されると実行します
GPIO.cleanup()
print("Bye!")
実行してボタンを押すと、Button was pushed! と表示されます。終了するときはキーボードの何かのキーを押すとBye!と表示されてプログラムが終了します。
画面にButton was pushed! と表示するのではなく、なにか好きな処理をさせたい場合は、button_callbackの中に処理を書けばOKです。
おわりに
いかがだったでしょうか? ラズベリーパイでボタンを押した時になにかを実行したいというケースは多くあると思います。カメラと組合わたりすると面白そうですね。ぜひ活用してくださいね😊