Arduinoが計測した約1分ごとの周波数の値はPCに記録されます。これをグラフ化するまでの手順を説明します。
図3はArduinoから受け取った周波数データをグラフ化するまでのプロセスを示しています。
Arduinoは、PCから仮想シリアルポートとして見えています。PCはそのポートを通じてArduinoが計測した周波数データを受信します。そのために用いるのがターミナルソフトです。ターミナルソフトはシリアルポートを通じて他のデバイスと通信するためのものです。今回はTera Termを用いました。
図4は筆者が用いたTera Termのバージョンおよび入手先を示すものです。
Tera Termでは、相手方と通信するために各種設定を行うのですが、通信速度が9600bpsのままであればほぼデフォルトのままでArduinoからデータを受信できるはずです。
そして受信したデータを保存するのにTera Termのログ機能を用います。その際、ログを保存するファイル名の拡張子を.csvとします。
それでは、Tera Termで保存したCSVファイルを表計算ソフトでグラフ化してみましょう。
図5は、Tera Termが出力したCSVファイルをグラフ化したものです。
このグラフは、周波数が60Hzの管内某所で、とある日の明け方5時51分〜翌朝の4時15分までの1345分間、時間に直して22時間と25分間の周波数の変化をグラフ化したものです。縦が周波数というか正確に言えばAC電源のパルスを3600回数える間の時間をμsで表したものです。ですから、周波数に読み直すと上2桁がHzの整数部分でそれ以下が少数部分となります。
横軸は時間で、単位は分となります。
上限が60.1Hzをちょっと超えたあたり、下限が59.85Hzの手前あたりです。表計算ソフトで平均を計算してみると60003961.76ですからこの日は電力事情的には概ね平和な一日だったのではないでしょうか。
その昔、クオーツ時計(水晶発振器を基準クロックとした時計)がまだ一般的でなかった頃の電気時計は、このAC100Vの周波数を基準クロックとしていました。1分単位もしくは1時間単位で商用電力の周波数が一定になるように調整されているとも聞いたことがあります。これはいわゆる平常時のオペレーションであって、電力事情の非常時においてはこの限りではないと思います。
何が言いたいかというと、今回は3600回のパルスをカウントしてその時間を計測しました。約1分ですね。計測の分解能がこれで正解なのかはさらなる実験が必要だと思っています。例えば、ブラックアウトになる寸前の1分以内に周波数が急変することもあり得るでしょうし、その瞬間を捉えようと思えば計測間隔はもっと短くすべきでしょう。ただし、計測時間を短くすると周波数の精度に響いてきますから、そのあたりのトレードオフは用途によって検討する必要があるでしょうね。
Copyright © ITmedia, Inc. All Rights Reserved.