Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Blue-Crescent committed Feb 11, 2024
2 parents 1cae47f + 6e0ce38 commit 4132022
Showing 1 changed file with 20 additions and 3 deletions.
23 changes: 20 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ JJY standard radio wave signal receiver library for arduino.

# 機能

JJYの日本標準時刻データを受信します。C言語標準のtime_t型のUTC基準で時刻を返します。受信後は、タイマにより時刻を刻み維持することもできます。
JJYの日本標準時刻データを受信します。C言語標準のtime_t型のUTC基準+9で時刻を返します。受信後は、タイマにより時刻を刻み維持することもできます。

arduinoで再利用しやすいJJY受信ライブラリ的なものがWebに見つけられなかったので作ってみました
電波時計モジュールをarduinoで利用しやすい形のJJY受信ライブラリ的なものがWebに見つけられなかったので作ってみました

電波時計やデータロガーの日時情報など、低電力やインターネット未接続環境での時刻情報の利用ができます

Expand Down Expand Up @@ -138,7 +138,7 @@ JJY受信モジュールのデータ出力をマイコンの端子変化割り

受信が完了しているかの確認に使用します。受信時刻を取得します。時刻が受信できていない場合は-1を返します。

getTime()が戻り値を返すには最低2つの内部の時刻受信データが一致する必要があります。JJYは1分かけて時刻情報を送信していますので、受信には最低2分かかります。良好な状態で4分程度、ノイズがある環境だと数分~受信不可となります。
getTime()が戻り値を返すには最低2つの内部の時刻受信データが一致する必要があります。JJYは1分かけて時刻情報を送信していますので、受信には最低2分かかります。良好な状態で3分程度、ノイズがある環境だと数分~受信不可となります。

[Note] v0.2.0より動作を変更

Expand All @@ -148,6 +148,16 @@ getTime()が戻り値を返すには最低2つの内部の時刻受信データ

delta_tick()が受信後も供給されている場合は、マイコンのクロック精度で刻んで維持している現在時刻が返されます。現在時刻が確定した時点で内部受信動作は停止します。再び受信動作を実行する場合はbegin()を呼び出します。

シリアル通信での表示方法の例。
その他、時分などを抽出したい場合はtm型に変換したあと、要素ごとに利用できます。
詳細はC言語のtime_t型で調べて下さい。

```
time_t now = jjy.get_time();
String str = String(ctime(&now));
Serial.println(str);
```

[Note]v0.2.0より追加

## 変数
Expand Down Expand Up @@ -227,6 +237,13 @@ lgt8f328の場合は+-60msec程度揺らぐので、100サンプリングでは

https://www.nict.go.jp/sts/jjy_signal.html

## データ長のチェック

マーカー間のデータビット長をカウントして、正しいビット長があるかを検査します。ピット長が規定の長さを満たしていないものは破棄します。
これらはpayloadlenと呼ばれる配列にカウントデータを格納しlenchek関数で行っています。
分の情報は8ビット、その他は9ビットです。最後の曜日ビットは利用していませんので、対象外です。
曜日のデータは、受信したデータではなく、カレンダーの計算により算出されます。

## 時刻データのデコード

受信は3回分の受信データを保持しており、同一の時刻を2つ観測した段階で正式時刻として採用します。
Expand Down

0 comments on commit 4132022

Please sign in to comment.