Rich Richer Richest

カメラ / レンズ / 写真 / 名古屋 / ライフハック / 思い付き / 猫 ライフログで暮らしをRichに!

【備忘録】GPIOを制御するときはGPIOを解放を忘れずに

f:id:mocchipa:20200321161500p:plain

LED制御のプログラムをpythonでプログラミングしたんですが、LEDが付きっぱなしになっちゃう問題が起こり解決したのでシェアします。

 

ctl + C でプログラムを強制終了した際、2度目に動かすとエラーがでて2度目はプログラムを実行できないばかりかLEDがつながったポートがHIGHになりっぱなしで困ってしまいました。

解決策は トライキャッチの処理をいれる事でした。

try:

  while True:

   #異常信号検知でLED点灯

   if GPIO.input(PIN_ART) == GPIO.HIGH :

       GPIO.output(PIN_LED , GPIO.HIGH)

  #リセットボタンが押されたら消灯

   if GPIO.input(PIN_RES) == GPIO.HIGH:

      GPIO.output(PIN_LED , GPIO.LOW)

   time.sleep(0.1)

except:
print('some exception happend.')
# GPIOを解放
GPIO.cleanup() 

 これでどんな例外でプログラムが終了されても GPIOが解放されます。

参考まで!