4bit 同期カウンタIC 74HC161A をつかって、デジタル時計をつくります。
これまでに、74HC161A をつかって秒、分、時をカウントする回路などをつくりました。
今回は、これらをつないで時刻合わせをおこなう制御回路をつくりましょう。
74HC161A 版デジタル時計
基本的な構成は、以前つくったデジタル時計 (*1) とかわりありません。今回は、カウンタを 4bit 同期カウンタIC 74HC161A に変更しています。
全体の構成ブロック図
図 1が、デジタル時計のブロック図です。
こまごまと修正してありますが、基本的にはこれまでと変わっていません。
時、分、秒カウンタは、74HC161A をつかいました。
基準クロックは、商用電源から 60Hz信号を取りだしています。
時刻合わせの方法は変更ありません。
ADJ/SETボタンで時刻合わせモードに入り、HOUR、MINボタンで時、分を合わせます。再度 ADJ/SETボタンを押下すると 0秒スタートします。
時刻合わせ回路
図2 が、時刻合わせ回路です。
U1/IC1 (74HC74A) が、時刻合わせモードへの切り換えを行ないます。
U2/IC1 (74HC74A) は、2Hzクロックを 2分周して 1Hzクロックを出力しています。
U3/IC2 と U2/IC3 は、秒カウンタのリセット回路、その他の NAND ゲート 3個の組み合わせ回路は、それぞれセレクタになっています。
上のセレクタ 2組は、時刻合わせモード時に HOUR、MINボタンの出力を各カウンタのイネーブル信号にします。通常モードでは、下位カウンタのキャリーを上位のイネーブルとします。
下のセレクタは、クロックを、時刻合わせモード時は 2Hzに、通常モード時は 1Hzに切り換えています。
押しボタン回路
図3 は、押しボタンスイッチのチャタリング防止回路です。シュミットトリガインバータ 74HC14 を使っています。
押しボタンのプルアップ抵抗を 1KΩ として、スイッチ押下時に 5mA 流すようにしています。5mA が良いのかどうかわからないのですが、それなりに流してやらないとスイッチの接触が悪くなってしまうようです。
R2、C1 がローパスフィルタですが、定数は、まぁテキトーに。R3 は、まいどの保護抵抗です。
この回路は、ADJ/SET、HOUR、MIN の 3組必要になります。
初期化回路
図4 は、電源オン時にカウンタとフリップフロップを初期化するための回路です。
電源がオンしたとき /RESET は LOW で、R1、C1 による遅延時間の後に HIGH に立ちあがります。
R2 は、いつもの保護抵抗です。押しボタン回路にもつけてありますが、電源オフ時に、コンデンサの電荷が電源へ逆流するのを制限しています。
ブレッドボード
ということで、ブレッドボード上に組み立てたデジタル時計が図5 です。
左側の縦のブレッドボードが時刻合わせ回路です。
右側は、いちばん下が電源回路と、押しボタン回路。2番目が電源トランスと 30分周回路。
さらに上へ、秒カウンタ回路、分カウンタ回路、時カウンタがあります。
いちばん上の 7セグメントLED 表示は、LED のバイナリ表示だとわかりにくいので、仮に付けた時分の表示器。Arduino と 7セグメントLED ドライバ TM1630 をつかってます。
これもあとで記事にして、記録しておきましょうかね。
「デジタル時計をつくる」過去記事一覧
過去のデジタル時計関連の記事は、以下のとおりです。
後記
ロジックIC 20個になりました。この程度だったら、秋月電子通商の A基板に載るんじゃね?
あ〜、もう終活だ断捨離だゆーとるので、モノはつくりません。つくりませんけど、たまには …