実際の省エネアルゴリズム

著者から



これは私の最初の記事です-私は建設的な批判、意見、コメント、質問を待っています。



まえがき



この記事は、オープン/ショート回路を検出し、温度を取得する必要がある無線モジュールのソフトウェアの開発中に存在した省エネの問題を解決することに専念しています。



何がありますか







無線モジュールが搭載されて開発されました。脳はatmega128rfa1で、無線送信機と温度センサーFM75が内蔵されています。 デバイスは、最初のCR2032バッテリー(3.3 V、約200 mA *時間)で駆動されます。





モジュールによって実行される機能






モジュールの適用可能性






問題



モジュールの消費:



したがって、無線送信機をオフにせず、何も送信も受信もしない場合、200mAバッテリーは理論的には20時間、実際には約16時間持続するはずです。 そして、モジュールがいくつかの機能を実行する必要があるという事実について話す場合は!?



モジュール操作の2つの例を示します。通常と極端です。

通常動作(予想):



モジュールの実際の動作時間は大幅に変わらず、同じ16時間でした。



極端な操作、省エネの問題の解決策を見つけ、明確にするため:



モジュールの実際の動作時間はわずか4時間でした。



ここで、評価に重大なエラーがあります。なぜなら、 バッテリーは、1回のバッチで190〜250 mAの幅広い容量を備えていますが、それでも動作時間の大まかな見積もりにはこれで十分です。



追求した目標



部屋の状態の200 mAバッテリーからのモジュールは、 通常の動作 (上記)で少なくとも1年間は動作する必要があります。



解決策



解決策は明らかです-スリープモードだけでなくスリープモードの使用、つまり「ディープスリープ」(パワーダウンモード)。 以下に提案するアルゴリズムは、さまざまなメーカーのマイクロコントローラーに適用できます。したがって、アルゴリズム(コードなし)のみが提供されます。目的のマイクロコントローラーのデータシートを使用してコードを作成することは難しくありません。



そのため、マイクロコントローラ(以下「MK」と呼びます)には、さまざまなスリープモードと、これらのモードから抜け出す方法があります。

ただし 、MKがサーバーからのメッセージに応答することが重要です。 -そしてこれは、無線送信機をオンにする必要があることを意味します-MKがスリープしているときにモードがありますが、彼のためのメッセージをブロードキャストに「聞いて」、もしあれば、私たちには適していません 約10 mAの消費電力。



次に何をする? 実際、「ディープスリープ」モードでは、無線がオフになります(つまり、MKは何も送受信しません)。外部割り込みからの信号、または「ウォッチドッグ」(ウォッチドッグ)によってのみ、このモードから抜け出すことができます。 、MKリセットモードと割り込み呼び出しモードの両方で機能することができます -ここでそれは私たちを救います!



アルゴリズム


したがって、この目標を解決するために、次のアルゴリズムが開発、デバッグ、およびテストされました。

1)MKは常に「ディープスリープ」モード(パワーダウンモード)です。

2)外部割り込みがトリガーされると(スイッチの位置を変更)、MCが起動し、サーバーにメッセージを送信し、確認応答を受信して​​、再びスリープ状態になります。

3)なぜなら 特に、サーバーからコマンドを実行するには、定期的にラジオをオンにして、MKのメッセージのブロードキャストを聞く必要があります。 ウォッチドッグを0.016〜8秒の頻度で割り込みモードにします(必要に応じて、8秒で十分です)。 中断中にブロードキャストを聞きます。MKに何もなければ、再びスリープ状態になります。



アイテムをさらに詳しく分析しましょう


「ディープスリープ」状態にあるMKは、約200 nAを消費します(バッテリーの自己放電がなければ、何年もの間、200 mAで十分です)。 自己放電は考慮しません。

次に、「人生」の時間は、ポイント2と3が満たされる頻度によってのみ影響を受けます。

ステップ2で外部割り込みがトリガーされると、MKは20ミリ秒のオーダーで動作します。これは「通常動作」モードでも無視できます。

私たちの主なエネルギー消費者はポイント3です。私たちのタスクでは、MKがサーバーからのメッセージに8秒以内に応答すれば十分です。 したがって、8秒ごとにブロードキャストをチェックし、20ミリ秒間ブロードキャストをスキャンしてからスリープに戻るように、「ドッグタイマー」を設定します。 T.O. ポイント2からの信号がなく、サーバーからのメッセージもない場合、MKは8秒間で20ミリ秒動作し、0.0235 mA *時間に変換されます。

MKに到達するために、サーバーは8秒間継続的にパケットを送信します。MKは異なる応答をします-即座に、または8秒の終わりに-応答します!



結果



アルゴリズムをコードに実装してから、モジュール(一般にいくつかあります)は現在378日間以上動作しています。 バッテリーの残りの容量は40 mAです。 動作モードは、上記の「通常動作」モードで想定されていたよりも実際には控えめです-しかし、それは人生であり、最悪の事態に備え、最善を望んでいます。



PS



この記事が、同様の問題を解決するのに役立つことを願っています。



プロジェクト開発



この記事は、ハブロフスク市民の間でハードウェアとソフトウェアの両方の開発に強い関心を呼び起こしました。 これで、ハブ上のプロジェクトの1つである「スマートホーム」のDIY調光器のモジュールの開発が完了しました(この相互作用は、この記事の結果です)。



All Articles