電波時計用疑似標準電波発生装置(LCDキーパッドシールド使用によるスタンドアロン版)2020年5月4日追記

以前書いた「電波時計用疑似標準電波発生装置」は最初にパソコンにつないでキードード入力で時計をあわせる必要がありました。しかし、いざ使おうとするとこれが意外と面倒です。そこで、LCDキーパッドシールドを併用することで、プログラム書き込み後はパソコンを使わずに完全スタンドアロンで使用できるようにしました。使用するのは一般的な Arduino LCD keypad shield です。

また、以前のスケッチは問題があったので対応しました。内容は以前の記事「電波時計用疑似標準電波発生装置」の追記をみてください。

今回のスケッチはこれです。(2020年5月4日差し替えました。追記参照)

キーパッド操作用に以下のライブラリが必要です(製造業者のキーパッド動作確認用のスケッチを元に作成)。
simpleKeypad.zip

コンパイルする前に、Arduino組み込み関数 Tone.cppの352行目を以下のように修正する必要があります(frequencyの前に (unsigned long) を付けます)。

toggle_count = 2 * (unsigned long)frequency * duration / 1000;

Tone.cppは私のパソコンでは以下にあります。
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Tone.cpp


Arduino Uno R3と疑似標準電波発生用自作シールド、LCDキーパッドシールドを組み合わせたところ。


LCDキーパッドシールドを外したところ。疑似標準電波発生装置シールドには、RTCモジュール、パルス増幅用トランジスタおよび付属の抵抗、アンテナ用のコネクタを付けているだけです。RTCモジュールは意外と厚さがあり、水平に置くとLCDキーパッドシールドを重ねることができなかったので、ぶつからないように少し斜めに立てて取り付けました。あまりスマートではありませんが仕方ありません。今回はパルス発信確認用のLEDがありませんが、パルス発信を13番ピンにしているので、Arduino本体のLEDを見ればパルス発信を確認できます。パルス発信状況はLCDで確認できます。


実際の使用状況。このようにモバイルバッテリーを使えば、簡単に電波時計のそばに持ち運んで使うことができます(前のも一応そうでしたが)。使用時は時刻、現在発信中のパルス幅(2:200ms)およびパスル幅のバー表示を行います。起動時はLCDとキーパッドでRTCの時刻を合わせます。変更せずに[select]を押せばRTCの設定は行いません。

2020年5月4日追記

通算日の計算に間違いがありました。
1月1日を1として計算しないといけないのを、0として計算していました。
keypad shield化のときに間違っている古いスケッチを元に作業をしてしまいました
スケッチを修正版に差し替えました。

この記事へのコメント

この記事へのトラックバック