10進カウンタ⁄デコーダICの74HC4017とダイオードを組み合わせた応用回路などの実験をしました。
上図はトランジスタのコレクタにつないだ電球が「ピカッピカッ・・・・・ピカッピカッ・・・・・」というふうに2回ずつ間欠的に光る回路です。1周10カウントの中でQ0出力がHになったときとQ2出力がHになったときだけトランジスタが導通して電球が光ります。この回路は発振周期が0.3秒 (周波数3Hz) なので、10カウント分3秒のうち0.3秒ずつ2回光ることになります。ダイオードD1, D2の接続場所を変えると点滅パターンも変わります。
トランジスタはコレクタ電流の定格の大きいものを用いました。なお、電球はLEDと違って早い点滅ができないので、クロック周期はあまり短くできません。下はこの回路のタイミングチャートです。
図1-3は緑・黄・赤のLEDが交通信号機のように点滅する回路です。Q0〜Q3がHのときはLED1 (緑) が点灯、Q4とQ5がHのときはLED2 (黄) が点灯、Q6〜Q9がHのときはLED3 (赤) が点灯、という動作を繰り返します。この回路ではクロック周期が約1.5秒なので、緑が6秒点灯、黄が3秒点灯、赤が6秒点灯します。ブレッドボード上の配線図と試作写真を下に示します。
図1-4は6個のLEDが点滅しながら往復するもので、いわゆる「ナイトライダー」です (かなり貧乏くさいですが)。Q0からQ5がHになっている期間はLED0からLED5に向かって順次点滅します。Q6〜Q9がHになっている間は逆にLED4からLED1に向かって順次点滅します。
図1-5はQ出力のカウントアップにしたがってフルカラーLEDの色が変化していく回路です。クロックがHになるたび (上の回路では1.5秒ごと) に赤→黄→緑→シアン→青→マゼンタ→白、というふうに変化します。Q7出力がリセット端子Rにつながっているので、IC2はQ0〜Q6のカウントアップを繰り返します。電流制限抵抗R4〜R6は、Q6がHのときになるべくきれいな白色が出るように調整しましたが、個々のLEDによって最適値は異なるようです。
図2-1はスイッチSW1を押すたびにモールス信号の「R (ト・ツー・ト)」が1回鳴る回路です。右端のIC1aは1200Hzくらいの発振回路で、圧電スピーカーから「ピー」という音を出します。IC2のQ出力につないだダイオードでIC1aの発振回路のオン・オフを制御し、「ピピーピ」という断続音にします。IC1cはクロック発振器で、約7Hzで発振しています。
IC2のQ9とイネーブル端子Eが結ばれているので、「ピピーピ」と1回鳴ると動作が止まります。リセットスイッチSW1をチョンと押すと、Q0からカウントが再開するのでまた「ピピーピ」と1回鳴ります。最初の「ピ」はカウントがQ1のときに出るようにしました。Q0を音の出だしにした場合、リセットスイッチから指を放すのが遅れると、最初の「ピ」が不自然に長く出てしまいます。また、試作回路ではシャーシに手を触れたとき低い周波数 (60Hz?) の雑音が出る不具合があったので、R4という抵抗を入れました。
図2-2は4拍子の電子メトロノームです。4個のLEDが順に点滅します。1拍目 (LED1) は赤、2〜4拍目 (LED2〜4) は緑です。またLEDの点滅と同時に「ピッポッポッポッ」という音が出ます。1拍目だけ高い音 (1200Hz)、2〜4拍目は低い音 (540Hz) が出るようにしました。VR1はテンポの調節用で、抵抗値が大きいほどゆっくりのテンポになります。実験ではVR最大のとき1分間に30拍、VR最小のとき1分間に350拍でした。
3拍子のメトロノームにしたいときは、LED4とD3を取り去って、Q6 (5番) をリセット (15番) につなげばOKです。なお、この回路もシャーシに手を触れると変な音が出るのでR5, R9を付けました。
図3-1は電子サイコロです。7個のLEDをサイコロの目の形に並べ、電子ルーレットのように遊びます。実験の結果を先に言うと、目の出方に偏りが生じる問題をどうしても解決できませんでした。CR定数を変えると目の出方も変わりますが、特定の目が多く出るのは同じです。それだけ動作が不安定ということですね。上の回路はいろいろ試した中で最も偏りが少ないと思われる定数にしてあります。
サイコロの目を表現するには7個のLEDが必要です。まん中の1個は赤、周りの6個は緑のLEDを使いました。各々の目の形は図3-2の上段のようになりますが、これを見るといつも同時に点灯するLEDのグループがあることがわかります。そこで図の下段に示したように7個のLEDをa, b, c, dの4つのグループに分け、Q0〜Q5がHになったとき、それぞれのグループごとに点灯・消灯をコントロールします。
回路図でQ0〜Q5出力に11個のダイオードがごちゃごちゃと接続されていますが、この部分で各LEDグループを点灯するか消灯するかを決めています。Q6出力はリセット端子Rにつないであるので、Q0〜Q5の範囲で繰り返しカウントアップします。クロック発振とタイマースイッチの回路は前項「74HC4017 (その2)」の図2-2と同じ形です。
実際に動かしてみた結果は上に書いた通りあまり芳しくありません。クロックを遅くして (C1を大きくして) ゆっくり動作させてみるとちゃんと各目が順番に出ているのですが、クロックを早くしてルーレット風に動作させると、どうしても決まった目ばかりが多く出る傾向があります。クロック周波数、タイマー時間、バイパスコンデンサの値からLEDの電流制限抵抗に至るまで、すべてのCR定数が目の出方に影響します。
図3-3も図3-2と同じ動作をする電子サイコロですが、IC2のキャリーアウト出力CA (12番) を利用することで回路を簡単にしています。ダイオードの数が11個から6個に減りました。気になる目の出方ですが、上の回路定数でまあまあ平均しているようです。
CA出力はQ0〜Q4出力がHのときH、Q5〜Q9出力がHのときLになります。一方サイコロの目を構成するLEDグループのうちb (b1, b2) は、目が「1」以外のときはすべて点灯します。そこで、Q0〜Q4をサイコロの2〜6の目に、Q5をサイコロの1の目に割り当てることとし、CA端子にグループbのLEDをつなぎました。
ブレッドボード配線図と写真を下に掲げます。
図4-1は20個のLEDを順次点滅させる回路です。スイッチを入れるとLED0からLED9が1個ずつ順に点灯し、続いてLED10からLED19が1個ずつ順に点灯します。LED19が点灯すると次はLED0に戻って同じ動作を繰り返します。
LED0〜9、およびLED10〜19の2組のLEDの点滅の切り換えには、Dフリップフロップ2個入りのIC・74HC74P (IC1) を用いました。DフリップフロップのD端子とQ- (Qバー。上つき線の表示方法がわからないのでこう書くことにします) 端子を結んでTフリップフロップとして動作させています。CKに立上がりパルスが入るたび、Q出力が反転して保持される回路です。Q-にはQと反対の出力が出ます。IC1のCKはIC2のCAとつながっているので10クロックごとにQとQ-が入れ替わり、LED0〜9の組とLED10〜19の組が交互に光るしかけです。
IC3 (LM555) はクロック発振器で、ここから約0.4秒周期のクロックをIC2のCK端子に入力します。C1, R1およびC4,R5はパワーオンリセットです。これにより電源を入れたとき必ずLED0から点滅を始めます。この回路のタイミングチャートを下に掲げます。
図4-3は1分経つと「ピー」と鳴るタイマーです。タイマーが作動中は10秒ごとにLEDが順次点滅して経過時間を知らせます。4017をわざわざ2個も使う必要はないんですけど、ここはあえて桁上がり機能を活用する形でやってみました。
電源を入れるとLED0だけが点灯します。これがリセット状態です。スタートスイッチ (SW2) をチョンと押すとタイマーがスタートします。IC1aでは1Hzの発振をするのでIC2は1秒ごとにカウントアップしていき、10秒経つとIC2のCAからIC3のCKに繰り上がりパルスがひとつ出ます。これによりLED0が消灯してLED1が点灯します。こうして10秒ごとにLEDが順次点滅して経過時間を知らせます。
60秒経過するとLED6が点灯するとともにIC1bの発振回路が作動してスピーカーから「ピー」という音 (約1200Hz) が出ます。その10秒後Q6はLになり代わってQ7がHになるので、LEDはすべて消灯し、音も止まります。ここでリセットスイッチ (SW1) をチョンと押すと回路はリセット状態に戻り、LED0だけが点灯します。スタートスイッチを押せば再びタイマーが作動します。IC1c, IC1dは「74HC4017 (その1)」の図3-4と同じS-Rラッチ回路です。
試作した回路ではクロックが1秒より少し短くて、50秒ちょっとでタイマー時間が来てしまいました。でも回路の動作自体は問題ありませんでした。正しく時間を測るにはクロックを水晶発振にして正確な1秒を作る必要があるでしょう。