- 最終更新日
- 記事公開日
トグルスイッチでラズパイZEROの電源をオフにする
これから紹介する方法が、おそらく最もシンプルに「トグルスイッチでラズパイZEROの電源をオフできる方法」だと思います。
回路図
スイッチを切り替えると、ラズパイのGPIO16ピンに、電源から電流を流します。
ただし、ラズパイのGPIOピンに流して良い電流は、合計で最大「50mA」
GPIO1本あたりの上限は「16mA」
ということで、1kΩの抵抗をかまして「5mA」の電流を流しています。
5V ÷ 1000Ω = 0.005A = 5mA
プログラム(Python)
import pigpio
import subprocess
import time
# Power Off (Switch)
servo = pigpio.pi()
sw_pin = 16
servo.set_mode(sw_pin, pigpio.INPUT)
servo.set_pull_up_down(sw_pin, pigpio.PUD_DOWN)
def power_off(gpio, level, tick):
print(gpio, level, tick)
if level == 1:
subprocess.call("sudo poweroff", shell=True)
servo.callback(sw_pin, pigpio.EITHER_EDGE, power_off)
while(True):
time.sleep(1)
GPIO16ピンに入力信号があった場合、callback関数(割り込み)により、ラズパイにシャットダウンコマンドを実行しています。