スイッチで入力してみる

sample_input1.py

機能

・スイッチ入力。

事前準備

・タクトスイッチと抵抗(10kΩ)をラズパイのGPIO24とGNDにつないでください。

実行方法
python sample_input1.py

ソースコード
#!/usr/bin/python
# -*- coding: utf-8 -*- : 文字コードの指定
# Bezelie Sample Code for Raspberry Pi : スイッチ(+プルダウン抵抗)入力のサンプル
# マニュアルを見てラズパイにスイッチを接続しておいてください。

# ライブラリの読み込み
from time import sleep # sleep(ウェイト処理)ライブラリの読み込み
import RPi.GPIO as GPIO # GPIO(汎用入出力端子)ライブラリの読み込み

# 初期設定
GPIO.setmode(GPIO.BCM) # GPIOをGPIO番号で指定できるように設定
GPIO.setup(24, GPIO.IN) # GPIOの24ピンを入力モードに設定

# 関数
def main():
 try:
   print "開始します"
   while True: # 繰り返し処理
     if GPIO.input(24)==GPIO.HIGH: # GPIO24に3.3Vの電圧がかかっていたら・・・
       print "スイッチが押されています"
     else: # それ以外の場合は・・・
       print "スイッチは押されてません"
     sleep (0.5) # 0.5秒待つ
 except KeyboardInterrupt: # コントロール+Cが押された場合の処理
   print "終了しました"
   GPIO.cleanup() # ポートをクリア

# 直接実行された場合の処理
if __name__ == "__main__":
 main()
解説

・電源pinとGNDpinに近いのでGPIO24を使いましたが、他のGPIOでも構いません。
・26行目の「GPIO.cleanup()」を実行せずに終了してしまうと、他のプログラムでGPIO24を使おうとしたとき、すでに使用中だと認識されてエラーが起きてしまいます。

応用

・オンやオフのあとにある「sleep(1)」の「1」を、「o.5」などもっと小さな値に変えてみましょう。LEDが速く点滅するようになります。