ローカルコンテストの賞品に,今年はお正月用に電子サイコロにしようと考え始めたものです。
ざっとブロック図を考えると,次のようになります。
最初に考えたのはフリップフロップIC
最初は,以前使ったことのある74HC175というDフリップフロップが4個入ったICを使おうと考えました。
Dフリップフロップ(D.FF)には,入力端子D,出力端子Q,クロック端子Clk,リセット端子Rがあります。
基本的には,クロックの立ち上がりで,その時点のDの値に従ってQの値を出力する機能を持っています。
リセットは,それがONの間出力QをLowにします。
サイコロの目は,1から6までですから,順番に1から6までの信号を繰り返し出す回路を用意しなければいけません。 これを,人間がコントロールできないような超高速で動かせば,サイコロを振るのと同じように,ランダムな値が出るものと考えて差し支えないと考えられます。
これは,カウンタから1の信号が出たときは,サイコロの1の目,2の信号が出たときは,サイコロの2の目のLEDが点灯するための回路です。
なお,スタート・ストップの回路は,カウンタ回路を決めてから考えます。
というわけで,D.FFを下のようにつなげるとカウンタになるはずです。 このとき,たとえばQ1=D2からQ2に切り替わるときに,クロックの立ち上がり時に,Q2が1になる前にQ1=D2が0になってしまったら,うまく動作しません。物の本には,一般にはQ2が立ち上がるほうが早くなるようにICができているので,普通は問題ないと書いてありました。
これで,1,2・・・6と順番に進めるカウンタの基本機能はOKとなりました。しかし,6から1に戻るための構成を考え出すことができません。
このため,このアイディアはしばらくの間脇に置かれたままになりました。
8進カウンタ(4022)を6進で使う
ある本で,8進カウンタIC(4022)を5進で使ったのタイマーを製作記事を目にしました。これは,簡単に6進に応用できます。
4022は,ResetしたときQ0がONとなり,次からClockごとにQ1,Q2・・・Q7,Q0,Q1・・・・とONしていきます。サイコロの目が八つならばそのまま使えるのですが。なお,Clock EnableをONにすると,Clockを遮断してカウンタ動作を中断できます。
Q6をReset端子と直結しておくと,Q0,Q1・・・Q5ときてQ6になった瞬間にリセットされQ0のONに戻ります。人間には,
Q0,Q1,Q2・・・Q5,Q0,Q1・・・Q5,Q0・・・
のリングカウンタ動作をしているように見えるのです。
右の回路をで実験したらうまくいきました。
SW1を押すとLEDが順番に点灯していって,Q5のLEDの次にQ0に戻ります。Q6もμsecオーダーで点灯しているはずですが,目には止まりません。
この回路で電源をONすると,ClockがたまたまLowになるようで,その後は,SW1を押すとClockが立ち上がりこの時カウンタが1つ進みます。SW2を押すとClockがLowに戻ります。
めでたし,めでたしと,この回路にしようかと思いましたが,4022の値段をみると74HC175に比べると結構高いのです。そこで,この回路は候補として残したまま,いろいろとカウンタについて調べてみました。
D.FFで6進カウンタが組めた
本を見たり,HPを見たりしているうちに,右図のような回路を見つけました。なるほど,Qの出力をとると6進のリングカウンタになっています。
学校で教わるような基本的な使い方なのでしょうが,素人がこれにたどり着くのは大変でした。
これで,決定です。そしてうまいことに,実回路図を作るために規格表をめくったら,D.FFがちょうど6個入っている
74HC174というICが目に止まりました。
これも,下図の回路で実験したらうまく動きました。なお,このとき多入力のNORには,4078というICがあるのですが,安くしたいのと,プリント基板作成時の配線の引き回しを楽にしたいために,ダイオードとインバータで置き換えました。
サイコロの目が出たときに点灯するLEDに,a,b・・・と名前を付けると,その関係は右上の表のようになります。うまいことに,bとc,dとe,fとgは,それぞれ一緒に点灯するので,LEDの点灯回路を4つにまとめられます。もしこれが,5つとか6つならば回路が複雑になりすぎ,趣味のレベルではちょっと作る気がなくなります。
むしろ,このことに気がついたので電子サイコロを設計できるかと思い立って,カウンタのことを調べ始めたのです。
デコード回路は,賽の数が1のときはaだけ点灯,2のときはbとcが点灯,というようにすれば良いので,いつものダイオードスイッチにで,LED点滅制御のトランジスタをON,OFFさせることになります。
スタート・ストップ回路は,使ったことのある新電子工作入門(講談社,ブルーバックス,西田和明氏著)の電子数字式ルーレットの回路をとりあえず使います。動作原理等が,いまひとつ分からないのですが,実験結果で判明できたら記事にします。
以上から第一段階の全体回路は上のようになり,この回路で試作してみることになります。
なお,高輝度LEDが安く入手でき採用することにしたので,電流制限抵抗が,これまで製作品よりも高い値になっています。
SW2を押すとサイコロが回り始め,離すとだんだん回転が遅くなって最後に止まるという仕組みにしたかったのですが,上の回路ではうまく行きませんでした。
それは諦め,単にサイコロの回転をON-OFFするだけの回路にしようとして,C1を外すとうまく行くと思いました。ところが,今度はサイコロが暴走してスイッチが全然効かない他,サイコロの周りが遅くなったり急に早くなったり「エ〜!」となりました。
スイッチ取り付け個所を変えてみたり,3時間位もやったでしょうか。パニックになっていたのだと思います。結局は,CMOSの入力端子をオープンにしてはいけないという基本に気がつき,クロック端子に10kΩのプルダウン抵抗を入れたところ治まりました。
プルダウン抵抗を入れておくと,SW2が開いているときはこの抵抗をとおしてクロック端子はグラウンド電位になります。また,プルダウン抵抗もクロック端子の入力抵抗も大きな値なので,SW2を閉じたときはクロック端子で必要な電位変化を確保できます。
上のほか,DCアダプタでも使えるような配慮として,手持ちで余っていた3端子レギュレータを追加し,キットの電源には9V電池を使ってもらうことにして,最終回路を決定しました。