ArduinoDCF77アナライザークロックMK2
コンポーネントと消耗品
> ![]() |
| × | 1 |
このプロジェクトについて
この時計については、私のサイトを参照してくださいArduinoDCF77アナライザー時計サイトhttp://www.brettoliver.org.uk/DCF77_Analyzer_Clock_Mk2/Arduino_DCF77_Analyzer_MK2.htm
<図>
この時計は、直径12インチ(305mm)の大きなダイヤルにある60個のLEDの2つのリングにDCF77タイムコードを表示します。内側のリングには、受信した次の分のライブタイムコードが表示され、外側のリングには現在の時刻が表示されます。前の分はエラーなしで受信されたので。
さらに24個のLEDは、デコーダーのステータスと時間情報を示します。デコードされた時刻と日付は2つの大きな8桁の7セグメントディスプレイに表示され、DCF77パルスタイミングとビット情報はさらに2つの小さな8桁の7セグメントディスプレイに表示されます。
クロックは2つのAtmega328マイクロプロセッサ(Arduino Uno)を使用し、1つはDCF77アナライザーを制御し、1つはUdoKleinスーパーフィルターを制御します。スーパーフィルターは、高度なDCF77信号処理と、Arduinoクォーツクリスタルのチューニングを可能にします。フィルタは切り替え可能で、信号受信の状態と出力の品質を示す10個のステータスLEDがあります。時計はまた、2つのJQ6500サウンドモジュールを介して時、15分、秒の刻みを鳴らします。
ほとんどの電子機器は文字盤の背面に取り付けられているため、時計はさまざまなケーススタイルに合わせることができます。
レトロでモダンなスタイルの時計ケースのデザインを含めました。レトロなデザインは古い文字盤の時計ケースに収められ、モダンなデザインは黒い額縁に収められています。
<図>
ステップ1:クレジット
このクロックは、Erik de RuiterによるDCF77アナライザークロックに基づいており、私のMk1DCF77アナライザークロックの更新バージョンです。
<図>
<図>

Erik deRuiterのDCF77アナライザークロックの上私のMK1DCF77アナライザークロックの下。
ErikはGitHubで時計の詳細を提供しています
エリックの時計と私の時計の違い
エリックの時計に基づいていますが、ハードウェアにいくつかの変更を加えました。ニーズに合ったオプションを組み合わせてください。ただし、コードを変更してください。
Veroboardでは、UnoとMegaではなく、2つのカスタムメイドのArduinoUNoを使用しています。
私は中国全土の安価な7セグメントディスプレイとドットマトリックスモジュールを使用しており、それに合わせてコードを変更しています。これらのmodが実行されると、表示エラーは非常にうまく機能するため、表示エラーのセクションを参照してください。
Adafruitサウンドボードではなく、2xJQ6500モジュールを使用しています。私のボードの1つはソフトウェアで制御されているため、いくつかのソフトウェアの変更とロードする別のライブラリがあります。
ArduinoMegaの代わりにArduinoUnoを使用しているため、デコーダーLEDを駆動するための予備のピンがすべてないため、代わりに3番目のドットマトリックスモジュールを使用します。
スタウスLEDを追加して、ウドクラインのスーパーフィルターを変更しました。これらのLEDの輝度は、スーパーフィルターUnoではなく2つのトランジスタを介してDCF77デコーダーUnoによってPWM制御されます。
DCF77デコーダーテスト機能に一致するようにスーパーフィルターに追加されたLEDテスト機能もあります。
私は3mmのLEDのみを使用し、明るさを均一に保つために、一致する明るさのLEDを選択しました。
ソフトウェアに4つの個別の強度レベルを追加したので、リング/ステータスLED、大きな7セグメントディスプレイ、小さな7セグメントディスプレイ、およびスーパーフィルターLEDはすべて、単一のLDRからの読み取り値に応じてカスタムの輝度レベルを持ちます。
時計に気温や週番号が表示されておらず、それに合わせてコードを変更しました。
スーパーフィルターにモニターLEDを追加したので、時計にはSythesized出力とNonSythesized出力のオプションしかありません。これは、エリックの時計に従ってモードを切り替えるオプションではありません。
私の時計のDCF77サウンドは、入ってくる0と1の違いを強調するように変更されました。時計が1を検出すると、200mSよりわずかに長い音が鳴ります。
ステップ2:ビデオ
ビデオは、目盛りの音が鳴った状態で動作している時計と、四半期と時間全体の時計のキーミングを示しています。
また、文字盤のレイアウトとディスプレイの読み取りに関する情報も表示されます。
ビデオ2
電源投入、表示テスト、時刻/日付のデコードを示すビデオ
ビデオ3
この時計でUdoKleinSuperフィルターがどのように機能するかを示すビデオ
ビデオ4
ビデオは、目盛りの音が鳴った状態で動作している額縁時計と、四半期と時間全体の時計のキーミングを示しています。
また、文字盤のレイアウトとディスプレイの読み取りに関する情報も表示されます。
ビデオ5
この短いビデオは、DCF77アナライザークロックがDCF77信号を表示およびデコードしているところを示しています。すべてのサウンドはDCF77ライブ信号のバーから外れています。
ステップ3:コントロール <図>

時計は金属棒に取り付けられた7つのスイッチによって制御されます。スイッチは、時計の下に折りたたんでアクセスできるように折りたたまれたヒンジ付きドアの内側に取り付けられています。
<図>
額縁バージョンでは、スイッチは時計の側面にある切り欠きに取り付けられています。
<図>
スイッチは以下を制御します
ダニの音のオン/オフ
ティックボリューム
チャイム24/7またはタイマー
チャイムボリューム
DCF77サウンドのオン/オフ
スーパーフィルターまたはアナライザーをリセット
フィルタ、オフ、またはアナライザからのDCF77ソース
スイッチ機能
ダニの音
ティックトックサウンドのオンとオフを切り替えます(JQ6500モジュールの電源を切ります)
音量をロックしないようにチェックします
ティックトックの音量を上下に回します(ティックサウンドスイッチがオンになっている必要があります)
チャイムコントロール
オフチャイムがオフになっています
24時間年中無休のチャイムは24時間年中無休です
タイマーチャイムは、1日の設定された時間にのみオンになります。夜にオフ
チャイムボリュームのロックなし
音量を上げる
音量を下げると音量が下がります
ボタンを押すたびにテストチャイムが鳴り、新しい音量設定を聞くことができます
DCF77サウンド
オンは、圧電サウンダーを介してビープ音として受信されているDCF77サウンドを再生します。
0は100mSで、1は500mSのビープ音として再生され、受信した0と1を区別しやすくします。
オフDCF77のビープ音はオフです
非ロックをリセット
フィルタはDCF77スーパーフィルタをリセットして、DCF77信号に再同期させます
アナライザーは、DCF77アナライザーをリセットし、有効になっている場合は表示テストを開始してから、クロックを再同期します。 RTC時刻は、リアルタイムクロックに保存されている時刻から表示されます
DCF77ソース
Offは、DCF77信号をクロックから切断します
アナライザーDCF77信号は、フィルタリングなしでクロックに直接供給されます
フィルターDCF77信号はスーパーフィルターから取得され、スーパーフィルターが同期されている場合、この信号は正しいエラーのない信号に合成されます
ステップ4:回路図
この時計には3つの回路図があります。メインボード、ドットマトリックスモジュール、7セグメントディスプレイモジュール。
<図>
2つ目は非常に大きく、4000x4000の回路図でフルサイズで表示できます。配線しやすいようにこのようにレイアウトしました。
<図>
<図>

ステップ5:Atmegaピン接続
このクロックは、カスタムベロボードで2つのAtmega 328ICを使用します。クロックのアナライザー部分には標準のUNOを使用できますが、クロックのスーパーフィルター部分には共振器ではなく水晶振動子を備えたUNOを使用する必要があります。 ArduinoUNOに水晶振動子を追加する方法についてはこちらhttp://www.brettoliver.org.uk/Master_Clock_MK2/Master_Clock_MK2.htm#Mod
<図>
<図>

<図>

ステップ6:ベロボードのレイアウト
このプロジェクトのモジュールの多くは事前に構築されており、接続する必要がありますが、Arduinosのメインボード、サウンドモジュール、および3番目のLEDマトリックスはVeroボード上に構築する必要があります。
<図>

LEDは、参照用にのみメインボードに取り付けられて示されています。
メインボードから他のボードへのすべての配線は、PCBヘッダーコネクタを介して行われます。メインボードからスイッチパネルへの接続は直接配線されています。これにより、メインボードとスイッチパネルを取り外してメンテナンスすることができます。
これらはArduinoUNOとして構成されており、ビルド済みのUnosまたはNanoを使用できますが、スーパーフィルターArduinoには、精度を高めるために共振器ではなく水晶振動子が必要です。上記のAtmegaピン接続を参照してください。
私のマスタークロックサイトArduino水晶振動子の変更に関する情報を参照してください
<図>

<図>


注RTCはここに取り付けられていますが、ヘッダーケーブルでのみ接続されています。
ステップ7:事前に構築されたモジュール
構築済みのボードとモジュール
<図>
LM2596レギュレータモジュールは電圧を5vまで下げます。これは、モジュールの10Kプリセット抵抗によって調整され、保護ダイオードD4の再認識後に測定されます。 Arduinoをボードに追加する前にこれを調整してください。
時計は最大で約450mAを使用し、LEDは最大輝度で、ディスプレイをオフにすると約80mAに低下します。
7〜12ボルトの1000mA DC PSUで安全である必要があります(LM2596レギュレータモジュールが電圧を制御します)
<図>

RTC DS3231 I2Cこのモジュールは、デコードされたDCF77信号からの時間を保存します。内蔵時計は温度補償があり、停電時のバッテリーバックアップがあります。 RTCモジュールは非充電式バッテリーを使用するように変更されていることに注意してください。
<図>
MAX2719ドットマトリックスモジュールこれらのモジュールは内側と外側のLEDリング(2モジュール)を駆動し、3番目のモジュールはスーパーフィルターLEDを除く他のすべてのLEDを駆動します。 LEDマトリックスが取り外され、PCBヘッダーが所定の位置にはんだ付けされます。
<図>
RCWL 0516ドップラーレーダーセンサーマイクロ波部屋が占有されているときにのみ時計の表示をオンにするには、動き検出を使用します。ガラスの後ろからの動きを検出する下のRCWL0516か、下のPIRモジュールのどちらかを選択できます。
<図>
PIRモジュール赤外線PIRモジュールは、上記のドップラーレーダーセンサーの代わりに使用できます。このデバイスの欠点は、ガラスやパースペックスなどの裏側では使用できないことです。
<図>
Max27197セグメントディスプレイ0.56 "これは、時刻と日付の表示に使用される0.56"の大きいバージョンです。私はすでにこれらのバッチを持っていましたが、tindieには同様のモジュールがあります。 0.56インチの大型ディスプレイを使用していることを確認してください。モジュールの表示エラーを防ぐために、わずかな変更が必要になる場合があります。MAX2719の変更手順を参照してください。
<図>
Max27197セグメントディスプレイ0.39 "これは、ビット、エラー、およびパルスの表示に使用される小さい0.39"バージョンです。それらはeBayとAmazonの至る所で利用可能ですが、ヘッダーピンがはんだ付けされていないモジュール、またはモジュールの背面にピンがはんだ付けされているボードを入手するようにしてください。モジュールの表示エラーを防ぐために、小さな変更が必要になる場合があることに注意してください。 MAX2719の変更手順を参照してください。
<図>

JQ6500 16pモジュールこれらのモジュールの1つは、カチカチという音を再生するために使用され、他のモジュールは、15分と1時間のチャイムを再生するために使用されます。プロジェクトに含まれているサウンドファイルを使用すると、2Mのメモリを備えた最も安価な16pモスデュールを回避できるはずです。モジュールは、それぞれ1つの3W8Ωスピーカーを駆動します。サウンドは、簡単なプログラムを使用してUSB経由でPC(MACではなく)からロードされます。
<図>
DCF77レシーバー
http://www.pvelectronics.co.uk
のDCF77レシーバーモジュールこれらのアイテムはもう入手できないようですが、Amazonを試してください
PV ElectronicsDCF77レシーバーモジュールの接続左から右への接続
1.VDD 2.TCON 3.PON 4.GND 5.NC
反転形式で出力を提供します(出力はローで、1秒に1回ハイになります)。
低電力スタンバイモード-PONをVddに接続します。
通常の操作では、PONをGNDに接続します。
受信機をテレビ、モニター、その他の電気的ノイズから十分に離し、DFC77送信機を指していることを確認してください。
コンポーネント <図>

コンポーネントのリストこれは私の回路図面プログラムLiveWireから生成されるため、コンポーネントがプログラムライブラリにない場合(一部のスイッチなど)、完全な詳細が表示されない場合があります。詳細については回路図を確認するか、私に連絡してください。
LEDの色は必要に応じて選択できますが、実際に使用したLEDについてはLEDのセクションを参照してください。
ステップ8:配線順序
配線を接続するための約400の奇数のワイヤでは、モジュール間のギャップに配線経路を合わせるために多くの計画が必要です。
必要に応じてBuiildを変更し、すべてのボードをダイヤルの背面に固定して、ワイヤーハーネスの配線が見えるようにします。
ドットマトリックスボードが取り外され、時計から離れて配線されています。
スーパーフィルターLEDを配線し、ダイヤルに合わせます。
DCF77ステータスLEDを配線し、ダイヤルに取り付けます。
スーパーフィルターとDCF77ステータスLEDは、ヘッダーケーブルでメインボードに接続されています。ドットマトリックスモジュール3のすべてのLEDを配線し、ダイヤルに取り付けます。
ドットマトリックスモジュール3から小さなブレイクアウトベロボードに配線してから、上記の手順で取り付けたこのモジュールのLEDに配線します。
外側のLEDリングを配線してから、ダイヤルに取り付けます。
外輪ドットマトリックスディスプレイを配線し、外輪LEDで終端するのに十分な長さの配線端を残します。
外輪ドットマトリックスディスプレイを再度取り付け、ワイヤーハーネスを外輪LEDに終端します。
内側のLEDリングを配線してから、ダイヤルに取り付けます。
内輪ドットマトリックスディスプレイを配線し、内輪LEDで終端するのに十分な長さの配線端を残します。
内輪ドットマトリックスディスプレイを再度取り付け、ワイヤーハーネスを内輪LEDに終端します。
ドットマトリックスモジュール3のすべてのLEDを配線し、ダイヤルに取り付けます。
ドットマトリックスモジュール3から小さなブレイクアウトベロボードに配線してから、上記の手順で取り付けたこのモジュールのLEDに配線します。
ヘッダーケーブルを作成し、すべてのボードに接続します。
メインのVeroボードを取り付けてから、スイッチパネルに配線します。 LDRは、スイッチパネルが固定されているヒンジ付きの木製ドアを介して取り付けられているため、同時に配線されます。
スピーカーを取り付け、JQ6500サウンドモジュールを使用してVeroボードに接続します。
<図>
文字盤に正しいサイズの穴を開けると、すべてのLEDが接着剤なしで所定の位置に押し込まれます。 LED穴の内側の端が、摩擦によるはめあいを助けるために、塗装段階で塗料/ワニスでコーティングされていることを確認してください。
ステップ9:Max2719ドットマトリックスモジュールの変更の配線
ワイヤをMAX2917マトリックスモジュールに接続する前に、ワイヤを変更する必要があります。
<図>
ドットマトリックスLEDは不要なので、取り外してください。
<図>
2セットの890°ピンコネクタを既存のLEDマトリックスコネクタの下端にはんだ付けします。
<図>
古いLEDマトリックスコネクタの下部に90°ピンコネクタがはんだ付けされた変更されたMAX7219モジュール。ワイヤはこれらのポイントからメインボードのLEDマトリックスに引き離されます。
<図>
PCBのすぐ上の古いLEDMatrixコネクタピンの側面にはんだ付けされたピンを示す側面図。
ステップ10:配線配線ジグの構築
ジグはLEDを正しい間隔で所定の位置に保持し、時計から離れた場所に簡単に配線できるようにします。
LED用の配線ジグを構築する
<図>
文字盤を一枚の紙に印刷します。時計の後ろから作業するので、逆に印刷するか、紙を後ろから前に置きます。古い木片またはメラミンの上にシートを置きます。すべてのLEDセンターをセンターパンチし、3mmのドリルビットでドリルします。配線を容易にするために、穴はLEDにフリクションフィットする必要があります。 LEDは直径が異なるため、最初にいくつかのテストホールを実行して、LEDの正しいサイズを取得します。
<図>
配線治具完成。
<図>
ジグの内側と外側のLEDリングが完成しました。 LEDが文字盤の背面に取り付けられ、反時計回りに回転/回転するので、正しいLEDを確実に配線するために、ジグにLED番号やその他の情報を書き込むと便利な場合があります。
<図>
ダイヤルに挿入する準備ができたジグから取り外されたLEDのリング。
ステップ11:LEDの内輪と外輪の配線 <図>

上の概略図は、外側のLEDリングの8つのLEDのセクションの配線を示しています。
<図>
まず、8個のLEDをジグの穴に押し込みます。すべてのアノードを曲げて、シェマティックに従って互いに接続し、所定の位置にはんだ付けします。ワイヤは、後でLEDマトリックスモジュールから接続された8つのアノードに接続されます。カソードに絶縁スリーブを少しはめ込み、LEDから約15mmの位置でこれらの脚を曲げます。曲がり角から約5mmを切り取り、8個のLEDの次のバッチに到達するのに十分な長さの短いワイヤをはんだ付けします。 pic2を参照してください。
<図>


写真1これは、ジグに配線された8個のLEDの完成したセクションと、8個のLEDの次のセクションにつながるワイヤーを示しています。
写真28つのLEDのバッチで上記のプロセスを繰り返します。
8つのLEDの各バッチには、ドットマトリックスモジュールへの独自の個別のアノード接続があります。合計8つ。
写真3ドットマトリックスディスプレイに接続された16本のワイヤーとともに完成した外輪LED。
次に、LEDが文字盤の穴に押し込まれ、マトリックスモジュールが文字盤に固定されます。配置されると、ドットマトリックスモジュールからの16本のワイヤーが外輪LEDに接続されます。このプロセスは、内側のLEDリングに対して繰り返されます。
<図>
ドットマトリックスモジュールからの16本のワイヤーは、8セットの8つのLEDセクションに接続する準備ができています。 8番目のセットには4つのLEDしかないことに注意してください。フルサイズの4000x4000の回路図はここで見ることができます。
LED
VishayTLH44シリーズの高効率LEDをØ3mmの着色拡散パッケージで使用しました
説明TLH.44 ..シリーズは、一般的な表示や照明の目的などの標準的なアプリケーション向けに開発されました。これは、3mmの着色された拡散プラスチックパッケージに収納されています。これらのデバイスの広い視野角は、高いオンオフコントラストを提供します。
光度の異なるいくつかの選択タイプが提供されています。すべてのLEDは光度グループに分類されます。これにより、ユーザーは均一な外観のLEDを組み立てることができます。
機能
•標準Ø3mm(T-1)パッケージ
•小さな機械的公差
•DCおよび高ピーク電流に適しています
•広い視野角
<図>



上の写真1-4はLEDの色を示し、下の写真は実際の部品番号のチャートを示しています。
<図>
12:3番目のドットマトリックスモジュールの配線 <図>

3番目のドットマトリックスモジュールの配線
このモジュールには、64個のうち24個のLEDしか接続されていません。
8個のLEDの最初のセクションにある曜日LED(7個のみ接続)
8つのLEDのうち2つ目は、CEST、CET Leap Yr、RTCエラー、同期、エラー期間、エラーパルス幅(7つのみ接続)
8つのLEDのうち3つ目は、バッファフル、パリティ3対1のパスとフェイル、およびバッファOveflow(8つのLEDすべてが接続されている)です。
8個のLEDのうち4番目には、2個のLED分マーカーとDCF77ステータスが含まれています
8個のLEDを3セット使用することもできましたが、4セットを使用すると配線が簡単になりました。
これらのLEDは配線ジグに配線され、小さなVeroボードに接続され、そこでMatrixワイヤに接続されます。このボードはRTCのマウントとしても機能することに注意してください。
ステップ13:スイッチパネルの配線 <図>

スイッチパネルは、アクセスドアの後ろに固定された時計の下で下に揺れます。配線はメインボードに直接はんだ付けされており、LDRの配線も含まれています。
<図>
スイッチパネル
<図>
進行中のスイッチパネルの配線
<図>
時計のベースのドアに取り付けられた、完成したワイヤーハーネスが示されているスイッチパネル
<図>
メインボードから蛇行するスイッチのワイヤーハーネスで配線が完了しました。スイッチパネルは、時計ケースに折りたたまれて示されています。
ステップ14:JQ6500のチャイムとティックトックの音 <図>


この時計は、2つのJQ6500モジュールを使用します。1つはティックトックサウンド用で、もう1つはクォーターチャイムとアワーチャイム用です。カチカチという音はハードウェアで制御され、チャイムはソフトウェアで制御されます。
チャイムサーキット
<図>
スイッチSW7は3ポジションロックスイッチです。モジュールは、Arduinoのシリアルハードウェアピン13および14を介して制御されます。受信回路の1K抵抗に注意してください。主な回路図を参照してください。オフ-電源がJQ9500から削除され、24時間年中無休の/タイマーピンがハイに保持されて、Arduinoピンが24時間年中無休でフローティングのままになるのを防ぎます-チャイムが4分の4を鳴らし、24時間年中無休の時間-4分の1チャイムは05:15から23:00までしか鳴りません。 (コードで設定)音量は、ArduinoとChimeの音量アップまたはダウンスイッチを介してソフトウェアで設定されます。
ティックトック回路
<図>
これは、JQ6500スイッチに直接ハードウェアで制御されます。SW6TickOn / Offは、JQ6500から電源を切るだけです。ティックボリュームSW8は3ウェイセンターロックスイッチです。スイッチを上下に操作すると、JQ6500のADKeyピンを介して音量が設定されます。ティックトックサウンドを再生するコマンドは、Arduinoから2秒ごとに届きます。サウンドファイルは2秒未満である必要があります。ダイオードD15は、ADKeyをArduino出力から分離します。
ステップ15:スピーカー <図>

サウンドモジュールはそれぞれ、時計ケースの側面に取り付けられた3W8Ωスピーカーに接続されています。これらはAmazonからペアで入手できます。
<図>
この写真は、時計ケースのスピーカーの位置を示しています。時計の下部にある折りたたまれたスイッチのコントロールパネルに注意してください。
<図>
2つのスピーカーグリルがスピーカーを覆い、これもAmazon製です
<図>
スピーカーの位置を示す時計の左側。これは反対側でも繰り返されます。
<図>
右側のスピーカーを示す額縁スタイルの時計。
ステップ16:JQ6500サウンドファイルの読み込み
サウンドをJQ6500モジュールにロードする必要があります。
これらのモジュールの情報とArduinoライブラリについては、これらのサイトを参照してください。
ArduinoライブラリJQ6500_SerialGeneralinfoJQ6500ツール
通常、JQ6500には、PCへの接続時にロードされる音楽アップローダープログラムがプリロードされています(MACでは動作しません!)。これは中国語です。私のサイトには、中国語版の使用方法を示す説明があります。
私のJQ6500にはローダープログラムが付属していなかったので、NikolaiRadkeから英語版をダウンロードしました
zipファイルはここから入手できます。EnglishLanguageMusicDownload.exev1.2a
JQ6500_English_MusicDownload_V1_2a.zipこのファイルをWindowsから実行するだけで(インストールする必要はありません)、英語で実行されます。以下の詳細を参照してください。
JQ6500をUSB経由でPCに挿入します。
<図>
ファイルが実行されると、このウィンドウが開きます。 [ファイル]をクリックします
<図>
[ファイルの選択]をクリックして、モジュールにコピーするすべてのファイルをShiftキーを押しながら選択します。ファイルの名前が次のようになっていることを確認してください。
1から12はアワーチャイムです。 13〜16はクォーターチャイム、17はチャイムボリュームスイッチを使用してチャイムボリュームを設定するときに使用されるテストチャイムです。
上の[開く]をクリックしてから、[フラッシュ]タブをクリックします。
<図>
[フラッシュ]をクリックすると、[ファイル処理中]というメッセージが表示されます。ファイルがモジュールに収まると、メッセージが[フラッシュ実行]に変わり、緑色のバーに進行状況が表示されます。
点滅が完了すると、メッセージはREADYに変わります......モジュールを取り外して、時計のサウンドボードに接続できます。
2番目のモジュールのTickTockサウンド(今回は1ファイル)に対してこれを繰り返します。
サウンドファイルは同封されています。これらのサウンドファイルをAudacitypic 4で、JG6500ボードが処理できる最高品質の48KHzサンプルレートでミックスしました。チャイムは複数のチャネルで混合されて実際の高調波が得られ、JQ6500では単一のチャネルに混合されました。
bell.zip tick_tock.zip
ステップ17:JQ6500ライブラリの変更
ArduinolibrayフォルダーのJQ6500_Serial.cppファイルを変更します
チャイムが再生されるたびに標準ライブラリを使用して、応答がある場合にライブラリは待機します。この待機により、クロックが同期しなくなり、次の1分まで受信データエラーが発生します。
私はこれをグーグルで見つけました、そしてそれは図書館の作者からの返事です。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~コマンドを送信する前に、ライブラリは最大10ミリ秒待機して、デバイスからのデータが残っているかどうかを確認します... https://github.com/sleemanj/JQ6500_Serial/blob / ma ...コマンドを送信した後、ライブラリは最大1000ミリ秒の間応答を待ちます
https://github.com/sleemanj/JQ6500_Serial/blob/ma ...その後、応答の読み取り中に少なくとも150ミリ秒待機します
https://github.com/sleemanj/JQ6500_Serial/blob/ma ... playFileByIndexNumberの場合、応答はまったく必要ないため
https://github.com/sleemanj/JQ6500_Serial/blob/ma ...最後のコマンドバイトが書き込まれた直後(現在はJQ6500_Serialの263行目)にif(!responseBuffer &&!bufferLength)return;を追加することで解決できる可能性があります。 cpp)
https://github.com/sleemanj/JQ6500_Serial/blob/ma ...これにより、必要な時間が約10〜20ミリ秒に短縮されるはずです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
<図>
263行目の後に行を追加した後 if(!responseBuffer &&!bufferLength)return; 時計は正常に機能しました。
ステップ18:リアルタイムクロックRTCを変更する
DS3231 AT24C32I2C高精度リアルタイムクロックモジュールの変更
<図>

私の時計はDS3231AT24C32 I2C高精度リアルタイムクロックモジュールを使用しています。モジュールにはリチウムイオン充電式バッテリーが付属しています。写真1を参照してください。非充電式バッテリーを使用しているため、写真2のようにモジュールから抵抗R5を取り外しました。
<図>
<図>

ステップ19:ダイヤル構造図面 <図>

文字盤を完成させるには、700回の個別の掘削作業と多数の切土と盛土が必要です。
<図>
私はCNCマシンを持っていないので、すべて手作業で行いました。
<図>
ダイヤルはCADプログラム(TurboCab)pic 4で作成され、インジェットウォータースライドデカール紙に印刷されました。
<図>
これは、スケールのアイデアを与えるために3mmLEDを使用したダイヤル印刷のクローズアップを示しています。ウォータースライドデカール紙の品質は、私の古いインクジェットで印刷できるよりもはるかに優れています。
同封のzipファイルには、4000x4000pngファイルを含むさまざまなファイル形式のダイヤル画像が含まれています。
他のファイルタイプについては私に連絡してください!
TurboCad_Drawings.zip
ステップ20:文字盤構造の切り抜きと穴あけ <図>

文字盤は、すべての電子機器と配線の重量を支える必要があるため、1.5mmの厚さのアルミニウムシートからカットされています。
<図>
CADプログラムからA3用紙に文字盤を印刷して、テンプレートを作成します。LED穴の中心マークと、7セグメントLEDディスプレイの切り欠きがあることを確認してください。
<図>
テンプレートの7セグメントディスプレイの開口部をカッターナイフで慎重に切り取ります。テンプレートをアルミシートに置き、テープで留めて動かないようにします。 LEDのすべてのセンターマークをセンターパンチし、マーカーペンで7セグメントディスプレイの開口部を描きます。
<図>
テンプレートを削除して、アルミニウムシート保護フィルムの切断/穴あけマークを表示します。
<図>
DCF77シンベルLEDの中央のパンチマークを中心点として、コンパスで文字盤のサイズの円を描きます。
<図>
金属製の切断刃を取り付けた弓のこ/ジグソーまたは帯鋸で円を切り取ります。
<図>
コーピング/ジグまたはフレットソーで7セグメントディスプレイの開口部を切り取ります。後で多くのファイリングを節約できるので、時間をかけてください。
<図>
LED用のすべての穴を開けます。最初に1mmビット、次に2mm、最後に3mmビットです。
これにより、ペンキとワニスが文字盤に塗布されると、LEDは摩擦フィットのままになります。
<図>
センターパンチに印を付け、3つまたは4つのダイヤル取り付け穴を開けます。
<図>
ドリルで穴を開けると、保護フィルムをアルミニウムシートから剥がし、文字盤をこすってすべての粗いエッジを取り除くことができます。
これは、ペイントの良い鍵にもなります。
<図>
下塗りしてアクリル絵の具で塗り、次にマットニスを塗ります。アンティークホワイトは古い文字盤で見栄えが良く、現代の文字盤では純白を使用しています。
ステップ21:ダイヤル転送デカールを適用するダイヤル構造 <図>

ウォータースライドデカールは、インクジェットプリンターで特殊紙に印刷されます。乾いたら、水に浸してから所定の位置に滑り込ませます。
それらは非常に詳細なプリントを与え、一度ニスを塗るとタフになります。転送を通して文字盤の色が見えるように、透明な転送を注文することを忘れないでください。パックの指示に従ってください。
転写では、文字盤を転写紙に印刷して乾かしてから、文字盤のサイズのすぐ下に切り取ります。次に、アクリルニスを塗ります。ワニスが乾いたら、透明な転写物が白いバッキングシートから離れるまで、転写物を水に浸します。
<図>
転送をダイヤルに合わせて、ダイヤル上にスライドさせます。
<図>
中央のドットが文字盤の穴の中央と一致していることを確認してから、バッキングシートをスライドさせて転写から外します。
<図>
最終調整を行ってから、気泡を取り除きます。
乾燥させてから、転写を保護するために透明なアクリルワニスを塗布します。これが乾いたら、クラフトナイフで7セグメントディスプレイの切り欠きの周りの転写を慎重に切り取ります。次に、すべてのLEDの穴から転写を切り取ります。穴より少し小さい革のパンチを使用しました。すべてのカットエッジをシールするためにワニスをもう一度塗ります。一晩置いて乾かします。
<図>
「透明ウォータースライドデカールペーパーA3」を検索
ステップ22:ダイヤル構造PCB /ベロボードマウント <図>

PCBとベロボードは、木材の切り抜きから切り取られた木製の取り付けブロックに固定されています。これらのブロックは、衝撃接着剤で文字盤に接着されています。耐衝撃性接着剤の指示に従いますが、通常は両方の表面に塗布し、粘着性があるまで放置してから、一晩で完全に硬化する瞬間的な接着のために一緒に押します。
<図>
下部モジュールは、M2ネジで固定する準備ができている木製ブロックの所定の位置にあります。メインPCBは、下部7セグメントモジュールの上に収まり、ブラケットで持ち上げられます。
<図>
JQ6500サウンドモジュールボードとLED配線ボードが所定の位置にあります。 RTCはLED配線ボードに取り付けられていますが、メインボードに接続されています。
<図>
カスタムメイドのスタンドオフブラケットに取り付けられたメインボード。
ステップ23:ダイヤルサラウンドとバックボックスの復元
ダイヤルサラウンド復元
私はeBayから時計ケースを調達しました。文字盤や真ちゅう製のベザルがなく、リアボックスが壊れていました。
<図>
オリジナルのオークの文字盤の周囲は、厚いニスのコートと何年にもわたる汚れで覆われていました。
<図>
ペイントストリッパーを使用してワニスを取り除き、次にウッドブリーチを使用して木の非常に暗い領域を取り除きました。
<図>
次に、周囲をマットアクリルでニス塗りして、木目を強化しました。
<図>
バックボックスは非常にひどく損傷していて、ねじ込んで接着し直す必要がありました。木工品の穴や割れ目をたくさん埋めなければならず、つや消しの黒に塗ることにしました。
ステップ24:MAX72197セグメントモジュールの表示エラーを修正する
7セグメントモジュールは、それ自体で正常に機能しているようです。ただし、デイジーチェーン接続を開始すると、ディスプレイでエラーが発生する傾向があります。
0.39 "ディスプレイ
<図>
データシートでは、MAX7219にできるだけ近い電源レールの両端に10μFと0.1μFのコンデンサが必要です.0.1μFのコンデンサが配置されているのに、10μFのコンデンサがないことに気付きました。
<図>
このコンデンサを、ディスプレイ背面のダイオードD1の上の2つの穴に追加します。
<図>
供給レールと直列にダイオードもあります。モジュールをデイジーチェーン接続する場合、これらのダイオードはすべて直列に接続されているため、モジュールのラインのさらに下に行くほど、より多くのボルトが低下し、表示エラーが発生します。
各ディスプレイのこのダイオードを取り外し、ワイヤーストラップと交換します。
0.56 "ディスプレイ
<図>
3桁目と6桁目のtpmakeコロンの上の黒いテープに注意してください。
<図>
MAX7219 ICの+&-ピンのPCBの背面に10μFのコンデンサが追加されました
<図>
1N4148ダイオードはワイヤーリンクに置き換えられています。
ステップ25:7セグメントモジュールのコントラストを上げる <図>

7セグメントディスプレイは、従来、ディスプレイの上部に配置されたLEDの色と一致するように赤いパースペックスのシートを備えていました。これは、点灯していないセグメントを非表示にし、点灯しているLEDセグメントとのコントラストを提供するように設計されています。
私の時計では、ニュートラルデンシティヒートプルーフ調光透明アセテートシートND0.9を使用しました。
これにより、点灯していないLEDセグメントが非表示になり、明るい条件で必要なコントラストが得られます。すべてのカラーLEDで機能するという利点があります。
私の0.56 "モジュールは0.39"モジュールよりも濃い赤なので、両方のモジュールでうまく機能するには、シートに2つの異なる一致する赤いパースペックスが必要です。
acetae shhetも非常に安価ですが、唯一の欠点は、サポートなしで広い領域をカバーするには薄すぎることです。
上の写真はNDシートの効果を示しています。点灯しているLEDセグメントはよりコントラストが高く、消灯しているLEDセグメントは非表示になっています。また、コロン表示の黒いテープマスキングも非表示になります。
ステップ26:コロンディジットセパレーターを表示するためのRTC Time7セグメントディスプレイモジュールの変更 <図>

標準のディスプレイには、数字を区切る小数点のみがあり、時計のディスプレイで通常使用されるコロンはありません。
<図>
コードでは、常に「o」の小文字のoを表示するように3桁目と6桁目を設定しました
<図>
次に、黒いプラスチックテープをカッターナイフでカットし、2桁の上に置いて、小さなセクションを表示します
<図>
ディスプレイがこれらの表示されているセクションにある場合、コロンが表示されるようになりました
ステップ27:ダイヤルとケースの取り付け <図>

<図>

文字盤は真ちゅう製のベザルの後ろに隠れています。真ちゅう製のベザルは時計にありませんでしたが、時計の供給業者から入手することができました。
<図>
真ちゅう製のベザルは、文字盤の周囲に真ちゅう製のキャッチをセットすることで押さえられています。
<図>
真ちゅう製のベザルを取り外すと、真ちゅう製のベザルの隠れ家の周囲にくぼみがカットされているのがわかります。私の新しいベザルヒンジは元のヒンジとは異なる形状だったので、前部をノミで切り込み、後部を周囲に合うように染色した木片で埋める必要がありました。
<図>
文字盤は取り外されており、木製の周囲にある文字盤の取り付け穴とその後ろにある木製のバックボックスが表示されています。
<図>
取り外されたサラウンドを示し、バックボックスの構造を示しています。スイッチパネルは、バックボックスのベースにあるトラップドアの上に折りたたまれているのがわかります。
<図>
文字盤と木製の文字盤サラウンドが所定の位置にロックされた状態のケースの側面図を示しています。ダイヤルサラウンドは、真ちゅう製のベザルを所定の位置にロックするために使用されるのと同じタイプのキャッチによってロックされます。ダイヤルベザルの真ちゅう製タグの下にある小さな真ちゅう製ネジに注意してください。これにより、真ちゅう製のベザルを閉じたときに、真ちゅう製のベザルが文字盤と正しく整列するようになります。
ステップ28:ダイヤルとケースのフィッティングモダンスタイルのケースとサラウンド <図>

このケースでは、基本的な正方形のバックボックスを備えた大きな額縁を使用して、電子機器を保持し、ダイヤルを壁から離して保持し、奥行きを与えています。
<図>
外枠とガラスを取り外して、文字盤の上に厚いフォトマウントカードを表示します(薄いプライまたは木製シートは、ルーティングされたエッジで使用することもできます)
<図>
ダイヤルを4本の小さなネジでバックプレートに固定する方法を示すために、フォトマウントを取り外しました。
<図>
バックプレートは文字盤を保持し、電子機器用の大きな円形の切り欠きがあります。
<図>
ダイヤルの片方の端がヒンジで固定されているため、スイングアウトできます。
<図>
スピーカーは、他の場合と同様に、穴とグリルで両側に取り付けられています。
<図>
スイッチは、スピーカーグリルが上にある切り欠きの側面に取り付けられています。
ステップ29:DCF77フィルター
DCF77フィルター
Udo Kleinのスーパーフィルターをオンにすると、アンテナ/レシーバーからの着信DCF77信号がアクティブに処理されます。 DCF77信号を数分間サンプリングした後、スーパーフィルターはDCF77信号を予測し、これを使用して着信信号にエラーが含まれているかどうかを判断します。スーパーフィルターは、信号がない場合でも、修正されたDCF77信号を合成します。
<図>
スーパーフィルターMod回路図を参照してください。スーパーフィルターコードを変更して、モニターLEDを追加しました。これを行うために、フィルターから4つのモードを削除し、合成および反転合成を残しました。
PWM LEDの輝度制御は、スーパーフィルターArduinoではなくDCF77デコードを制御するArduinoを介して行われることに注意してください。また、メインクロックのLEDテストと一致するようにスーパーフィルターにLEDテストを追加しました。これは、リセットまたは電源投入時にアクティブになります。電源を入れると、Supe Filter LEDテストが開始および終了し、メインクロックLEDterstが開始します。
<図>
信号にノイズが多い場合でも、フィルターはDCF77信号にロックします。日が進むにつれて、フィルターは着信DCF77信号を使用してArduinoクリスタル周波数を調整します。
これは、DCF77信号が何日も失われた場合でも、フィルターが時間内に留まるということを意味します。私の時計では、DCF77ソーススイッチがオフに設定されている場合でも、DCF77信号は常にスーパーフィルターArduinoに供給されます。これにより、スーパーフィルターの同期を維持し、Arduinoからの水晶振動子を調整し続けることができます。
<図>
DCF77ソーススイッチがFILTERに設定されている場合、フィルターオンが点灯します。これは、スーパーフィルターがDCF77信号をデコードおよび合成していることを意味します
DCF77はスーパーフィルターから出てくるDCF77合成信号をフィルター処理しました
DCF77信号フィルターを適用せずにDCF77受信機から直接送信されるDCF77信号
信号の違い着信DCF77信号と合成信号の違い。通常の操作では、受信信号の形状が合成信号よりもわずかに「広い」ことが多いため、これが点滅します。
フィルター同期された最高の品質、クロックは100%同期されています
フィルターロックされたクロックは正確な位相で駆動され、時間は正確ですが、すべてのデコーダーステージが同期に十分な品質を備えているわけではありません
同期が失われました<200mSクロックが一度同期された場合、200 ms未満の不正確さは、有効なフェーズが検出された場合に再ロックする可能性があります
同期が失われました> 200mSクロックは一度同期されましたが、現在は200ミリ秒以上ずれている可能性があります。有効な位相が検出された場合は、再ロックしないでください。信号ダーティタイムデータは利用可能ですが、信頼性がありません。
上記のいくつかの詳細
Filter Syncronized-タイミングはDCF77に完全にロックされており、データは最新です。
フィルタがロックされている-デコーダステージの品質係数が低下しても、位相デコーダの品質係数が十分に高いままである場合、クロックはロックされた状態に移行します。この状態では、DCF77にフェーズロックされたままですが、うるう秒が送信された場合に限り、1秒だけ同期が外れる可能性があります。
Sync Lost <200mS-これは、デコーダーステージの品質係数とフェーズデコーダーの品質係数が低下したことを示します。この状態では、タイマーは水晶振動子のタイミングに依存しており、クロックはDCF77信号とゆっくりと位相がずれます。これは、時計がわずかに同期していない可能性があることを警告しています。
同期損失> 200mS-クロックが設定された時間(水晶振動子の調整された精度に応じて)を超えて位相がずれ始めると、このLEDが点灯します
<図>
フィルタが同期されていることを示すアニメーション
<図>
スーパーフィルターの例
上の行は、スーパーフィルターがオンになっていることを示しています。信号に同期して調整すると、信号が完全に失われた場合でも、スーパーフィルターは良好な信号を合成します。ノイズの多い信号では、スーパーフィルターは既知の信号ビットを検索し、送信機との同期を維持します。下の行は、スーパーフィルターがオフになっていることを示しています。受信した信号(良いか悪いか)はすべてデコーダーに送信されます。
<図>
DCF77ライブラリに含まれているDCF77スコープに表示されるノイズの多い信号を補正するスーパーフィルター。
通常の信号スーパーフィルターなし-DCF77受信機からの通常の信号ノイズが多い
信号スーパーフィルターなし-アンテナをLCD画面の近くに移動して、信号にノイズを生成します
信号なし-アンテナが切断され、スーパーフィルターを介して接続されます
ノイズオンスーパーフィルターオン-ノイズはフィルターで除去され、完全な信号が残ります。
<図>
スーパーフィルターがオフになり、クロックエラーの信号が不良になると、この分のデータが拒否されます。DCF77フィルター済みLEDパルスは通常どおりですが、フィルターがオフになると、フィルターされた信号はクロックのデコーダーに送られません。
<図>
スーパーフィルターがオンになり、信号が不良である場合、クロックにエラーはなく、クロックはデータを通常どおりにデコードできます。DCF77フィルター処理されたLEDパルスは通常どおりであり、クロックのデコーダーに供給されます。
ステップ30:DCF77タイムコード <図>

この写真は、私のダイヤルに表示されているダイヤルコードを示しており、着信DCF77信号を読み取ることができます。
ステップ31:コード
時計のスーパーフィルター用とアナライザー部分用に1つずつダウンロードするための2つの別個のコードがあります。
<図>
DCF_77_ANALYZER_CLOCK_Mk2_43.zip Superfilter07DCF77AnalyzerMK2.zip
コード
- DCF77デコーダーコード
- スーパーフィルターコード
DCF77デコーダーコード Arduino
これは、DCF77アナライザーArduinoにロードされたコードですプレビューなし(ダウンロードのみ)。
スーパーフィルターコード Arduino
これは、DCF77スーパーフィルターArduinoにロードされたコードですプレビューなし(ダウンロードのみ)。
Github
https://github.com/sleemanj/JQ6500_Serialhttps://github.com/sleemanj/JQ6500_Serial カスタムパーツとエンクロージャー
CAD形式のダイヤルおよびダイヤルテンプレート用のCADファイルと画像ファイル 回路図
これはメインボードの回路図です 


製造プロセス