https://github.com/jchristensen/poweroutagemonitor_sw
readmeファイル
ジャック・クリステンセン
2012年
Arduino Power Outage Logger Copyright(c)2012-2019 by Jack Christensen GNU GPL v3.0
このプログラムはフリーソフトウェアです。FreeSoftware Foundationが発行したGNU General Public License v3.0の条件に基づいて、それを再配布したり、変更したりできます。
このプログラムは、それが有用であることを期待して配布されますが、保証はありません。商品性や特定の目的に対するフィットネスの暗黙の保証さえありません。詳細については、GNU一般公開ライセンスを参照してください。
このプログラムとともに、GNU一般公開ライセンスのコピーを受け取る必要があります。そうでない場合は、https://www.gnu.org/licenses/gpl.htmlを参照してください
Microchip MCP79411またはMCP79412 RTCを使用して、停電ロガーを実装するArduinoスケッチ。 RTCのSRAMで最大7つの停止(パワーダウン/アップタイム)を記録できます。
通常のディスプレイは、時刻、日付、および角度ブラケットで記録された停電の数を示すクロックです。例えば<4>です。新しい停電の後、新しい停止アラートLEDが照らされます。停止ログを表示すると、LEDがオフになります。クロックは、夏時間のために自動的に調整されます。
4つのボタンがロガーを制御し、ラベル付けされています。
SET / CLEAR / CANCEL(+) / FIRST / NEXT(-) / LAST / PREVRESET クロックディスプレイから:
(+)または( - )を押して、停止ログを表示します。押し(+)は最初の(最も早い)停止を示し、再び(+)を押すと次の停止が表示されます。 ( - )を押すと、最後(最新)の停止が表示されます。 SETを押してクロックモードに戻ると、30秒後に自動的に戻ります。
セットを押して、セットシーケンスを開始します。 (+)および( - )を押して、各パラメーターを調整し、迅速に調整するために保持します。 [設定]を押して、次のパラメーターに進みます。セットを保持して、セットシーケンスをキャンセルします。秒またはRTCキャリブレーションのいずれかを設定しながら(+)と( - )を同時に押します。値はゼロになります。
クロックモードから、または停止ログを表示しているときに、停止ログをクリアするように設定します。
通常のクロックディスプレイモードでは、( - )ボタンを押して保持すると、日の出/日没モードが切り替えられます。日の出と日没時間は日付と交互になります。
リセットを押してリリースした後、RTC同期メッセージ(RTC IDを使用)と起動中に表示されるキャリブレーションメッセージは、設定ボタンを押して保持することで保持できます。
PhotoCellテストモードは、タイムゾーンの代わりにPhotoCellの読み取り値を表示します。これは、ディスプレイの明るさを調整するのに役立ちます。呼び出すには:
ヒューズ設定は、4.3V BODを除くArduino UNOと同じです。
avrdude -p m328p -U lfuse:w:0xff:m -U hfuse:w:0xde:m -U efuse:w:0x04:m -v
オプションのMCP9800/1/2/3温度センサーをI2Cバスに含めることができます。存在する場合、自動的に検出され、時間とともに温度がLCDに表示されます。
このプロジェクトの回路回路図とPCボードは、https://github.com/jchristensen/poweroutagemonitor_hwで入手できます。
時間ライブラリで(おそらくより一般的な) setSyncProvider()関数を使用する代わりに、現在のコードはRTCの1Hz割り込みを使用して時間を維持します。これは私の好みの方法になりましたが、停電ロガーボードを設計したときはそうではありませんでした。
したがって、MCUに割り込み信号を提供するために、ボードの背面にワイヤが必要です。下の写真に示すように、RTC「MFP」ピンからワイヤーをAtmega328pピン6(別名PD4またはArduino D4 Pin)に接続します。 (ボードバージョン1.2にはこの接続が含まれています。したがって、ワイヤは必要ありません。)