GPIOピンで電気を操るには

今回はGPIOピンをPythonのコードを使って動かしてみます。
必要なモジュールや書き方について解説していきます。

GPIOピンをPythonで扱うには

PythonでGPIOピンを扱うためには、「RPI.GPIO」モジュールを使います。
これはPythonでラズパイを扱うためのモジュールです。早速インポートします。


import RPI.GPIO as GPIO

これで、GPIOモジュールが使えます。
「as」は日本語で「〜として」の意味を持つので、上のコードの意味は
「GPIOとして(という名前で)RPI.GPIOモジュールを呼び出します」
という意味です。
このasを使って好きなように名前を変更できるので、いちいちRPI.GPIOって長々と打つ必要がなくなるわけですね。

使うGPIOピンの指定方法

GPIOピンを使うには、どの番号に何をさせるか、コードを書く必要があります。ピンの指定には、GPIOピンの番号を使います。
番号には、「ピン番号」と「ポート番号」の2種類があり、どちらの番号で命令を出すか決める必要があります。(別記事参照)
どちらの番号で呼ぶか決めるのが、GPIO.setmodeです

GPIO.setmode(GPIO.BCM) #ポート番号
GPIO.setmode(GPIO.BOARD) #ピン番号

このように書くことで、ポート番号で呼称するか、ピン番号で呼称するかを指定します。

汎用入出力ピンの使い方

汎用入出力ピンは、入力・出力の両方をすることができますが、どっちの目的でピンを使用するか、指示する必要があります。例えば、ポート番号4のピンを使うときは

GPIO.setup(4,GPIO.OUT) #アウトプット(出力)として使う場合
GPIO.setup(4,GPIO.IN) #インプット(入力)として使う場合

と書いて、指定します。


汎用入出力ピン~出力編~


汎用入出力ピンで入出力できる値はHIGHかLOWのどちらか
つまり、入力するかしないかのみ指定することができます。
汎用入出力ピンは3.3Vですから、出力できる電圧は、3.3Vか0Vかの2択になります。なので、「1Vだけ出力したい」といったような細かい調整はGPIOピンではできない仕組みとなっています。
Pythonでの入力指定方法は以下の通りです。

GPIO.output(4,GPIO.HIGH) #3.3V出力
GPIO.output(4,GPIO.LOW) #0V出力(出力無し)

これで、出力方法の指定ができるようになりました。

汎用入出力ピン~入力編~

入力編と書きましたが、ほとんど使い方は、出力に似ており、やはりHIGHかLOWかのみを受け取ります。電圧の有無を読み取るには、


print(GPIO.input(4))

とかくと、4番のポートがHighかLOWかがプリントされます。