ラズパイに電源スイッチを

ラズパイはUSBコネクターで電源(つまり5V)を供給していますが、電源スイッチがありません。
シャットダウンしてHALT状態となっても電源オフになりません。
つまりUSBコネクターを抜いたり、USBアダプターの電源を切るなりするしかありません。
しかしシャットダウンせずにUSB電源をオフにするとファイルを壊す可能性があります。
そこで、RaspberryPIのGPIOポートを利用して、タクトスイッチ(押している間接点間がショートしているスイッチ)により電源オンでUSB電源オン及び電源オフでシャットダウンから電源オフする外付けの回路を追加してみました。

当サイトの内容を参考にされ製作、実験等は自由ですが、御自身の責任において行ってください。記載内容がもとで不利益・不具合が生じても管理人は一切の責任を負いませんあらかじめご了承ください

1.電源オン時の動作
電源オン/オフ スイッチを押すとSSR2によりACアダプターに100Vが供給されraspberryPIに5Vを供給すると共にLED1が点灯します。 
ついでRaspberryPIが立ち上がりGPIO14の8pinがhigh(備考1)になりLED2が点灯します。 
この時、LED2が点灯するまで電源オン/オフスイッチを押し続けます。(時間にして1、2秒程度)LED2が点灯した状態で電源スイッチを離してもSSR1によりACアダプターに100Vが供給されたままになります。
2.電源オフ時の動作
電源オン/オフ スイッチを押すとGPIO4(7pin)にバッテリーの電圧(備考2)が供給され、1秒以上押し続けると、この7pinがhighになったことによりシャットダウン命令が実行されます。 シャットダウンスクリプトは後記
シャットダウン実行しますとGPIOの8pinがLowになりLED2は滅灯します。
但し回路図上の440μFのコンデンサーと10KΩの時定数の間SSR2に5Vが供給されたままにして10秒程度遅れで電源が切れるようにしています。
  
備考1)GPIO14はシリアルインターフェースのTxdと共用しています。
今回Txdとして使用する為、raspi-configによりシリアルインターフェースを使用に設定します。
シリアルインターフェースのTxd(SDとも言っていました)は論理値0はhighになります。
備考2)電源スイッチを押されている時間だけバッテリー消費しますが、消費電流も大したことないのでコイン型リチウム電池3Vを使用しています。 実はSSRは規格では5V必要なのですが3Vでもオンとなる事を確認しています。

3.シャットダウンスクリプト
 以下のスクリプトを /usr/local/sbin/rasp_shutdown.sh として保存します。
次に /etc/rc.local ファイルの exit 0 の前に
/usr/local/sbin/rasp_shutdown.sh &   
を追加します。(&はバックグランド動作指示)
リブートして反映します。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)