すべてのデジタル時計には、時間を追跡するための水晶が内蔵されています。この水晶は、時計だけでなく、すべてのコンピューティングリアルタイムシステムにも存在します。この水晶は、タイミング計算に必要なクロックパルスを生成します。より高い精度と周波数を得るためにクロックパルスを取得する方法は他にもいくつかありますが、最も好ましい方法は、水晶を使用して時間を追跡することです。ここでは、DS3231 RTC ICを使用して、Atmega16ベースのデジタルウォールクロックを構築します。DS3231 RTCには高精度の水晶が内蔵されているため、外部の水晶発振器は必要ありません。
このデジタル時計プロジェクトでは、0.8インチの10個の一般的なアノード7セグメントディスプレイを使用して時刻と日付を表示します。ここでは、7セグメントディスプレイを使用して、時、分、日付、月、年を表示しています。当社のPCB設計には、秒と温度を表示するオプションもあり、表示ユニットを追加することで表示できます。
必要なコンポーネント
- ATmega16AVRマイクロコントローラー
- DS3231 RTC IC
- コモンアノード0.8インチ7セグメントディスプレイ(コモンサイズディスプレイ(0.56インチ)よりも大きい)
- ボタンを押す
- ボタン電池3v
- 7805電圧レギュレータ
- 1000ufコンデンサ
- ブザー(オプション)
- トランジスタBC547およびBC557
- 10ufコンデンサ
- 100オームの抵抗器
- 1k抵抗
- 10k抵抗
- PCBボード
- ジャンパー線
- Burgstips
- 電源アダプター
ユーザーはAtmega32を使用することもでき、16進数を生成する前にコンパイラーで構成する必要があります。
回路図と説明
このデジタルウォールクロック回路には2つの部分があります。1つは5つの異なるPCBボード上に5ペアの7セグメントを持つディスプレイ部分であり、もう1つはRTCチップから時間をフェッチしてそのデータと時間を送信する制御ユニット部分です。 7セグメントディスプレイ。10個の7セグメントディスプレイを使用したため、各ディスプレイを個別のIOポートに接続することはできません。したがって、ここでは多重化技術を使用して、マイクロコントローラーのより少ないピンを使用して複数の7セグメントを接続します。
7セグメントディスプレイのLEDピンa、b、c、d、e、f、g、hは、atmega16パラレルのPORTBに接続されています。ここでは、10個の7セグメントディスプレイを使用したため、PORTD、PORTA、およびPORTCで接続された10個の制御ピンが必要です。
このチップはI2C通信で動作するため、内部水晶振動子を備えたRTCDS3231はPORTCのSDAおよびSCLピンに接続されています。このチップのインターフェース方法はDS1307と同じです。Arduino、Raspberry Pi、8051MCUでDS1307を使用しました。DS3231とDS1307の両方に同じコードを使用できます。
2つの10kプルアップ抵抗がSDAおよびSCLラインに接続されています。3vコイン電池を使用してRTCチップに電力を供給し、主電源がオフの場合でも時間を追跡します。電源が再び戻ると、7セグメントディスプレイに時間が表示され始めます。これで、ポートAで時間を設定するためのいくつかのプッシュボタンができました。完全なプロセスは、最後に提供されるビデオで説明されています。5V電圧レギュレータは、入力電圧を5Vに変換するために使用されます。すべての接続を以下の回路図に示します。
1つのディスプレイボードには、2つの7セグメントディスプレイと2つのLEDが使用されます。したがって、ここには、時間と分(HH-MM)で時刻を表示し、DD-MM-YYで日付を表示する5つの異なる表示ボードがあります。
デジタル時計のPCB設計と製造
このAtmega16ベースの掛け時計プロジェクトのために、2つのPCBを設計しました。1つはプロジェクトのすべての操作を制御するために使用されるコントロールユニット用で、2つ目は7セグメントディスプレイに時刻と日付を表示するためのものです。ディスプレイ部分には、0.8インチ7セグメントディスプレイの5つのペアが含まれています。つまり、5個を組み立てることで、完全なデジタル時計ができあがります。7セグメントディスプレイを多重化するには、5つのPCBのデータラインをコントロールユニットの同じポートに接続し、コントロールラインをコントロールユニットの異なるピンに接続します。
以下は、2つの7セグメントディスプレイで構成される1つのディスプレイボードのPCBレイアウトの上面図と下面図です。
以下は、コントロールユニットPCBの上面図と下面図です。
ここに、両方のボードのガーバーファイルが添付されています。
- Atmega16ベースのコントロールユニットのガーバーファイル
- 7セグメントディスプレイボードのガーバーファイル
PCBGoGoを使用してPCBを注文する
オンラインで利用できるPCB製造サービスはたくさんありますが、以前に他のプロジェクトの1つでPCBGoGoを使用したので、他のベンダーと比較して安価で手間がかからないことがわかりました。
PCBGoGoからPCBを注文する手順は次のとおりです。
ステップ1: www.pcbgogo.comにアクセスし、初めての場合はサインアップします。次に、[PCBプロトタイプ]タブで、PCBの寸法、層の数、および必要なPCBの数を入力します。
ステップ2: [今すぐ見積もり ]ボタンをクリックして 続行し ます。使用するトラック間隔など、必要に応じていくつかの追加パラメータを設定するページが表示されます。ただし、ほとんどの場合、デフォルト値で問題なく機能します。ここで考慮しなければならないのは、価格と時間だけです。ご覧のとおり、ビルド時間はわずか2〜3日で、PSBの費用はわずか5ドルです。その後、要件に基づいて希望の配送方法を選択できます。
ステップ3: 最後のステップは、ガーバーファイルをアップロードして支払いを続行することです。プロセスがスムーズであることを確認するために、PCBGOGOは、支払いを続行する前に、ガーバーファイルが有効かどうかを確認します。このようにして、PCBが製造に適していて、コミットされたとおりに到達することを確認できます。
PCBGoGoは、ガーバーファイルを確認するのに約10分から1時間かかります。レビューの完了後、支払いを続行できます。
PCBの組み立て
ボードが注文された後、数日後に私に届きましたが、きちんとラベルが貼られたよく詰められた箱に入った宅配便で、いつものようにPCBの品質は素晴らしかったです。私はあなたが判断するために以下のボードのいくつかの写真を共有しています。
はんだごての電源を入れて、ボードの組み立てを始めました。フットプリント、パッド、ビア、シルクスクリーンは完全に正しい形状とサイズであるため、ボードの組み立てに問題はありませんでした。箱を開梱してからわずか10分でボードの準備が整いました。
はんだ付け後のボードの写真を 以下に示します。
デジタル時計のテスト
完全なコードはこのチュートリアルの最後にあります。回路図に示すようにPCBを接続し、コードをAtmega16にアップロードするだけです。そして、10個の7セグメントディスプレイに時間と日付が表示されます。
日時は、以下のビデオに示されているように、コントロールユニットの4つのプッシュボタンを使用して設定できます。