Python
RaspberryPi
gpio

Raspberry PiでGPIO制御する時の初期値設定(Python)

はじめに

Raspberry PiでGPIO制御をしていた際にハマったことと解決方法です。

環境

  • Raspberry Pi 3 Mobile B+
  • Raspbian 9.4
  • Python 3.6

ハマったこと

GPIO制御の初期化時に、INPUT or OUTPUT を選択します。
このとき、初期値はHighまたはLow のどちらかとなりますが、その初期値が望まない値になります。

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)     #初期値はHighがいいけど、Lowになっている
GPIO.setup(11, GPIO.OUT)    #初期値はLowがいいけど、Highになっている
GPIO.cleanup()

たとえば、下記のようなギャップが発生するため、動いてほしくない動作が発生する場合があります。
(プログラム実行時、最初の1回だけ余計なリモコン信号を発してしまう、など)

  • 期待する初期値: Low
  • 実際の初期値: High

解決方法

setupメソッドで初期値の設定ができました。

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(11, GPIO.OUT, initial=GPIO.LOW)
GPIO.cleanup()

参考