Posted at

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

More than 1 year has passed since last update.


はじめに

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()


参考