カウンターで時計を作る回路

時計

概要

内容:時計(現実時間で何時何分かを示す・ただズレは生じる)
消費電力:17
使用部品
Electrical Branch 5個
Counter 2個
Timer 1個
XOR Switch 1個
難易度:少し高め

回路図

端子の名前は記述していないですが、位置でだいたいわかると思います。
青い数字は電力です。各部品にアルファベットを振ってます。
配線の色はわかりやすくすためであり、何色でも構いません。
青い吹き出しはElectrical Branch 、Counter 、Timer の設定値です。

最初は動作確認のため、タイマーの設定値を短めの3sくらいにするといいかもです。
この構成を組み立てて、タイマーをスタートさせます。
回路を停止させるおすすめの方法は、タイマーの電源(5)を少なくするといいです。タイマーに入力しているElectrical Branchの設定値を5→2にするといいと思います。

動作確認できたら、現実時間まで数字をカウントアップさせ、タイマー設定値を60にし、回路を動作させます。
すると、時計として動くと思います。なお、サーバ環境によっては少しずつ誤差が出てくる時があります。
少し早い、遅いあればタイマーの値を微調整してみてください。

仕組み

回路は、大きく3個の部分に別れます。

右上は電源を分岐器を使って分けている部分になります。

下は60s毎にカウンターに送る出力部分です。回路の動作がループされるように作っています。

左上はカウンターで表示するところです。一桁目(分)が60に達した時に二桁目(時)のカウンターがカウントアップします。二桁目のカウンターが24に達したときは、0にリセットされるようになっています。

動作を細かく順番に見ていきます。
①タイマーが60s数えきって終了したとき、タイマーの出力は0になります。
②タイマーの出力が0になると、その先につながっているXORSwitchへの入力が0になります。
しかし、XORSwitchの片方は電源が入力され続けているので、片方が入力有、片方は入力無の状況になります。
そうすると、XORSwitchは出力をします。
③出力したその先にはタイマーのToggle ONにつながっているので、ここで再びタイマーがONになります。

④タイマーがONになると、60s数え始めます。その間タイマーは出力をします。
⑤出力をしたその先にカウンターがあり、入力されるとカウンターは+1されます。
⑥XOR Switchは両方に入力がきているので出力はありません。

次にカウンターの動作についてです。
①分を示すカウンターが60に達すると電力が出力されます。
②その先につながっている時を示すカウンターに入力され、+1されます。
③その先につながっている分を示すカウンターのクリアする端子に電気が流れるので、60になったカウンターは0に戻ります。
これを繰り返し、時を示すカウンターが24に達した時、電力が出力され時を示すカウンターの値をクリアし、0に戻します。

このようにして、0:00から23:59までを1分毎に表示することができます。
もっと効率の良い回路の組み方はあるかもですが、参考になれば幸いです。

別の組み方

別解があったので、載せます。
こちらも、消費電力は同じ17、使用機材はXOR Switchの代わりに、Blocker(ブロッカー)を使用します。
1分毎に出力を出す部分の回路の仕組みや考え方が少し変わっただけです。
XORよりブロッカーのほうが、面積は取らなそうです。(あまり変わらないですが)

にゃんこ
  • にゃんこ
  • よく遊ぶゲームは
    ・CitiesSkylines
    ・RUST
    ・TransportFever2
    です。
    使える言語は
    C++、Pythonぐらいです
    趣味としては旅行だったり、メルカリ・ヤフオクで売ってたりします

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)