ブレッドボードラジオデジタルICの実験

10進カウンタ⁄デコーダIC 74HC4017

 10進カウンタ⁄デコーダIC・74HC4017の基本動作について実験しました。LED10個の順次点滅回路などが簡単に作れるICです。

1. 74HC4017のピン接続

 図1-1

 上に10進カウンタ⁄デコーダIC・74HC4017のピン配置図を示します。このタイプはジョンソン・カウンタともよばれます。今回の実験では日立のHD74HC4017Pを用いました。形状は16ピンDIP型です。もうひとつ、シュミットNANDゲートの74HC132Pも使ったので、このICの接続図も下に掲げます。

 図1-2

2. LED10個の順次点滅回路

 まずはいちばん基本となるLED10個の順次点滅回路をやってみました。回路図は下記の通りです。

 図2-1

 IC1・74HC132はクロックパルスの発振器です。4つのシュミットNANDゲートのうちの1つを用いて方形波の発振回路を組んでいます。周期は約0.9秒になりました。IC1a, IC1b, IC1dは使用しませんので、入力端子を電源プラスまたはマイナスにつなぎます。

 ここで作った方形波信号をIC2・74HC4017のクロック端子CK (14番) に入れます。クロックの立ち上がりごとにQ0〜Q9が順にLからHに変わる、つまりカウントアップしていくので、ここにつながれたLED0〜LED9も1個ずつ順番に点灯していきます。LED9が点灯すると、次のクロックでまたLED0に戻って同じことを繰り返します。

 リセット端子R (15番) につながっているC2とR3は、電源スイッチを入れたとき必ずLED0から順に点灯するようにするためのもので、いわゆる「パワーオンリセット」です。これがないと、最初に光るLEDが一定しません。パワーオンリセットの必要がないときは、リセット端子は直接GNDに接続しておけばOKです。それと、シュミットNAND発振回路の性質なのかもしれませんが、電源オン直後の最初のLEDだけは2サイクル分 (この回路では約2秒間) 光ります。

 下の図はCKとQ0〜Q9出力の関係をタイミングチャートで表したものです。LEDの点灯のようすを表すGIFアニメも出しておきますが、パソコンによってはうまく表示されないかもしれません。

 図2-2

 図2-3

 ブレッドボード上の配線図と試作写真を下に示します。

 図2-4

 写真

3. リセット端子のはたらき

 リセット端子R (15番) の動作について調べました。この端子は「クリア」とよばれることもあります。通常のカウントアップ動作をさせるときはこの端子はLにしておきます。ここがHになるとカウントがクリアされ、LED0の点灯に戻ってそこからカウントが再開されます。

 図3-1

 上にタイミングチャートを掲げます。これはQ2がHのとき、つまりLED2が点灯中にリセットがかかったという設定です。クロックのどのタイミングであってもR端子がHになればただちにリセットがかかり、その時点でHだったQ端子はLに戻り、代わってQ0がHになります。RがHの間はずっとそのままです。RがLに戻るとリセットは解除されますが、Q0はまだHのままです。クロックの次の立上がりが来た時点でQ0がLになり、代わってQ1がHになります。以降、順次カウントアップしていきます。

 図3-2

 図3-2はリセット専用の押しボタンスイッチを付けた回路です。LEDが順次点滅している途中でスイッチをチョンと押すと、LED0に戻ってそこから点滅を再開します。スイッチを長く押すと、押している間じゅうLED0が点灯し続けます。スイッチから手を放すとカウントが再開されます。

 図3-3は9個以下の順次点滅にする回路です。図の回路ではQ4出力 (10番) がリセット端子に結ばれています。こうすると、Q4がHになった瞬間にリセットがかかり、カウントはクリアされます。したがって、LED0〜LED3の4個だけの順次点滅動作になります。なお、この場合Q4にLEDをつなぐ必要はありません。また、Q0またはQ1をR端子につなぐと、ずっとLED0だけが点灯した状態になります。

 図3-4

 上図はR-Sラッチとよばれる回路をリセット端子につないだものです。R-Sラッチは2個のNANDゲートで構成され、スイッチが2個付いています。これにより、スイッチのチョイ押しでカウントのスタート及びリセットのコントロールができます。R-Sラッチ部分はIC1の余っているゲートが利用できます。

 電源を入れるとリセット状態でスタンバイします。つまりLED0だけが点灯しています。ここでスタートスイッチ (SW2) をチョンと押すとリセット端子がLになってカウントがスタートし、LEDが順次点滅を始めます。適当なところでリセットスイッチ (SW1) をチョンと押すと今度はリセット端子がHになり、カウントはクリアされてLED0だけが点灯した状態に戻ります。図3-2の回路とは異なり、スイッチのボタンから指を放してもそのままリセット状態を保持します。SW2をチョンと押すとまたカウントを始めます。

 図の回路はパワーオンリセットになっていますが、C2とR3を取ると電源オンでどれか途中のLEDから順次点滅を開始します。その後の動作は上と同じです。

4. イネーブル端子のはたらき

 13番Eはイネーブル (クロック・イネーブル) という名前の端子です。カウントアップを途中で止めてその状態を保持する機能があります。通常の動作の際はLにして (GNDにつないで) おきます。「イネーブル」に決まった訳語があるのかどうか知りませんが、ここでは「クロックが有効」という言い方をしておきます。

 図4-1

 上はイネーブル端子の動作のタイミングを表した図です。Q2がHになっているとき、つまりLED2が点灯しているときにイネーブル端子EがHになったとします。するとここでクロックが無効となってカウントがストップし、Q2はHのままになります。EがLに戻ると再びクロックが有効になり、クロックの次の立上がり時点からカウントの続きが開始されます。リセットとは違ってカウントがゼロに戻ることはありません。

 図4-2

 図4-2はカウントを途中の決められた場所で自動的にストップさせてそのままにする回路です。図ではQ9出力 (11番) がE端子に接続されています。LED0から順に光ってLED9まで来るとカウントアップが停止し、LED9が点灯したままになります。リセットスイッチを押すとLED0からカウントが再スタートします。

 図4-3は手動のストップスイッチです。任意の時点でカウントを止めることができます。イネーブル端子と+5Vラインとの間にスイッチを付ければいいのですが、直接スイッチを付けると接点のバウンス (チャタリング) によって誤動作してしまいます。そこで、IC1の余ったゲートでデバウンス回路を組みました。これならうまくいきます。順次点滅状態のときにスイッチを押すと動きが止まり、1個だけが点灯した状態になります。スイッチを放すと次の (右隣の) LEDから順次点滅を再開します。

 図4-4

 イネーブル端子にもR-Sラッチをつないでみました。リセットスイッチも付けました。スタートスイッチ (SW2) のチョイ押しで点滅がスタート、ストップスイッチ (SW1) のチョイ押しで点滅ストップ、リセットスイッチ (SW3) のチョイ押しでLED0が点灯した状態に戻ってリセット状態を保持します。ただし、順次点滅状態からストップスイッチを押さずにいきなりリセットスイッチを押した場合は、点滅はLED0に戻るもののリセット状態をキープできず、ボタンから手を放すとすぐに順次点滅を再開します。

 図4-5

 図4-5はクロック信号をイネーブル端子に入力する回路です。クロック端子 (14番) はHに固定しておきます。これでも同じように10個のLEDを順次点滅させることができます。しかしクロック端子にクロックを入れた場合とはカウントアップのタイミングが反対になります。

 図4-6

 図4-7

 上図に示したように、クロック端子にクロックを入れたときはクロックの立上りでカウントが進みますが、イネーブル端子にクロックを入れたときはクロックの立下りでクロックが進みます。上の回路図ではクロック発振器の出力にもLED (LED10) が付いていますが、これとLED0〜LED9の光り方を見比べるとタイミングの違いがわかります。

5. クロックのオン・オフ

 図5-1

 上は、クロック発生器のNANDゲートの片方の入力にスイッチを付けたものです。これによりクロック発振のオン・オフができます。電源を入れると普通に順次点滅が始まりますが、スイッチを押すとクロック信号がHになった状態で発振が停止するので、その時点で点灯していたLEDがそのまま点灯し続けます。スイッチから手を放すとその次のLEDから順次点滅を再開します。見た目は、イネーブル端子をHにしたときと同じ動作です。

 図5-2

 図5-2はスイッチを押すたびにクロックパルスがひとつだけ出る回路です。スイッチをチョンと1回押すたびにLEDがひとつづつカウントアップします。スイッチを長く押しても同じです。この回路もNANDゲートでデバウンス処理をしています。これがないと、スイッチを1回だけ押したつもりでもカウントが3つも4つも進んでしまいます。なお、電源オン直後はどれかひとつのLEDが点灯した状態で停止しています。

6. キャリーアウト端子のはたらき

 キャリーアウト端子CA (12番) は複数の4017を連結する際に桁上がり信号を出す端子です。下図のように、Q0〜Q4がHのときはCAもHになります。Q4がLに変わりQ5がHになった瞬間にCAはLになります。Q9からQ0に戻るときにまたHになります。つまり10クロック毎にひとつのパルスを出すことになります。言い換えれば周波数を10分の1にする分周器です。CA端子にLEDをつないで光らせるとこのようすを観察できます。

 図6-1

 図6-2

 図6-2は2個の74HC4017にそれぞれ10個のLEDをつなぎ、100までカウントする回路です。IC2のキャリーアウトCA (12番) をIC3のクロックCK (14番) につなぎます。IC2が1の位のカウント、IC3が10の位のカウントをします。

 電源を入れるとまず両方のICのQ0がHになり、LED0とLED10が点灯します。その後はクロックがHになるたび、IC2の方だけカウントアップしていきます。LED9までカウントすると次はLED0に戻りますが、その瞬間にIC2のCAがHに変わり、それにつながったIC3のCKもHになるのでIC3のカウントも1進んでLED11が点灯します。これが「10」を表しています。このようにIC2の10カウントごとにIC3のカウントが1アップするので、2個のICで100までカウントできます。LED19が点灯した状態でIC2のカウントがLED9まで進むと、次のクロックで最初の状態すなわちLED0とLED10の点灯に戻って1からのカウントを繰り返します。

 下はこの回路の動作をアニメーションで表したものです。

 図6-3

7. 分周機能

 74HC4017はカウンタICなので、クロック端子に入力した信号を何分の1かに分周して出力することができます。下の図7-1は10分の1の周波数を出力する回路ですが、上記のキャリーアウト端子CAのほか、Q0〜Q9出力でも10分周が可能です。クロックを可聴周波数にしてスピーカーを鳴らしてみました。

 図7-1

 IC1のNANDゲートでクロック信号を作ってIC2のCK端子に入れ、CAおよびQ0出力にスピーカーをつないで音を聞きます。CKからもリード線を出して、スイッチで切り替えて聞き比べができるようにしました。図中に記した周波数はデジタルテスタでの実測値です。クロック周波数が5382Hzなのに対し、CA出力およびQ0出力は539Hzになりました。10分の1より少しだけ大きくなった理由はわかりません。

 図7-2

 CAにもQ0にもクロックの10分の1の周波数が出てきますが、スピーカーで聞くと音色が違うことがわかります。上のタイミングチャートを見てください。CA出力のデューティ比は50%ですが、Q0出力 (Q1〜Q9も同じ) のデューティ比は10%です。波形が違うので音色も違って聞こえるわけです。

 図7-3

 上はクロック周波数を5分周する回路です。Q5 (1番) とR (15番) を接続します。Q5がHになったときGNDとショートしないように10kΩの抵抗を付けました。Q0からカウントアップしていって、Q5がHになるたびリセットがかかるのでカウントはQ0に戻ります。つまりQ0〜Q4はクロックの5サイクルに1回だけHになるので、ここにスピーカーをつなげばクロック周波数の5分の1の周波数の音が聞こえます。下にタイミングチャートを掲げます。

 図7-4

 今回の回路はQ5をRにつないだので5分周になりましたが、もしQ3とRをつなげば3分周、Q7とRをつなげば7分周というように、Q出力の番号に応じた分周回路を作ることができます。