IoT(ESP32)とバッテリー運用 その3
前回”その2”でWEBリクエスト処理のイベントループを見直してみました。
結果効果が全く無く、稼働時間は返って短くなった程でした... orz
今度は前回先送りしたバックライトの制御を行って、効果を確認します。
バックライトの制御
バックライトを単純に消してしまえば、モバイルバッテリーがスタンバイモードに入る程度に消費電流が下がるのは確認済みですので、この削減効果は大きいと予想されます。
少しググって、バックライト制御ピン(4番)をPWM (Puls Width Modulation)に接続して実際に暗くなるか試してみました。
下記ステップを追加して実行。
ledcSetup(0,128,8); //pwmの設定。最初の引数がchannel,次が周波数,最後が解像度(ここでは8bit = 256段階)
ledcAttachPin(4,0); //ピンをチャンネルに接続
ledcWrite(0, 32); // とりあえず明るさを12.5%に
// digitalWrite(4, LOW); // バックライト・オフ
実行してみますと、確かに表示が暗くなりました。12.5% でも視認性は充分です。
最初50% で試してみたところ肉眼でも差は小さく、25%、12.5% と下げてみました。
動画で撮影もしてみましたが、肉眼では良く判る明るさの変化が動画では判り辛かったので、動画アップロードは割愛させて頂きます。
PWM 制御なので、光っているピーク値には変化が無いので動画サンプリングと上手くあってしまった様です。
消費電力を極力減らすように周波数もかなり下げていますし...
ところが、この設定ではモバイルバッテリーがまたもスタンバイモードに入ってしまいました!
仕方が無いので、バックライトをもう少し明るくして通常の1/4(25%) にしたならばスタンバイにモードに入らない事が確認できました。
一応この設定で持続時間を測定する事にします。
ledcSetup(0,128,8); //pwmの設定。最初の引数がchannel,次が周波数,最後が解像度(ここでは8bit = 256段階)
ledcAttachPin(4,0); //ピンをチャンネルに接続
ledcWrite(0, 64); // とりあえず明るさを25%に
// digitalWrite(4, LOW); // バックライト・オフ
はてさて、どれほど連続稼働時間が延びるか楽しみです。😝