BLOGTIMES
2018/04/25

RPi.GPIO でボタンが押されたことを検出するには

  raspberrypi  python 
このエントリーをはてなブックマークに追加

今日はラズパイの定番の処理である、ボタン(スイッチ)による入力を試してみました。
基本的なやり方については RPi.GPIO に全て載っています。

今回はブレッドボードを使って GPIO#12 にスイッチをつなぎ、スイッチを押したときに +3.3V がかかるように回路を組んであります。

以下のプログラムはスイッチを離したとき(GPIO.FALLING)に、コールバック関数(switch_callback())が呼ばれるようになっています。
bouncetime=300 の部分はチャタリングを防止するために、300ms はボタン入力に反応しないようにする指定です。

このプログラムはポーリングしないので、CPU の負荷は小さいです。

btnwatcher.py

#!/usr/bin/env python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO_BTN=12 def btn_callback(gpio_no): print(gpio_no) GPIO.setmode(GPIO.BCM) GPIO.setup(GPIO_BTN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.add_event_detect(GPIO_BTN, GPIO.FALLING, bouncetime=300) GPIO.add_event_callback(GPIO_BTN, btn_callback) try: while True: time.sleep(1) except KeyboardInterrupt: GPIO.cleanup()

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10132
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン