いわばデジタル表示「0」~「9」の10面サイコロです。
背景
「作ってきたえて能力アップ」との本の文言、信じて作ります。
(当記事内で「本」と呼びます↓)
ブロック図
ボタンを押している間、555(タイマIC )がCLK発振。これを受けた74HC390(カウンタIC )がカウントアップして0~9を巡回。そのカウント値は4ビット2進数で出力され、それを受けた74LS47(7セグメントデコーダ・ドライバIC)が対応するセグメント(segment。切片、部分)のLEDを点灯させます。
ボタンを放すと555からのCLKが止まり、74HC390のカウントアップも止まります。74LS47はそのまま止まったカウント値に対応したLEDを点灯させ続けます。
カウントアップは視認できない程度に速いため、ボタンの操作者にはタイミングを図り切れません。そのためボタンを放した時にLED表示が0~9のいずれで止まるかは、サイコロの様にランダムとなる仕組みです。
7セグメントLEDはArduinoで点滅させたことがあります(下記記事参照)。
『7セグメントLEDをArduinoで動かす①品物を確認した』
『7セグメントLEDをArduinoで動かす②スケッチを読み解く』
Arduinoではスケッチ(プログラム)で表示値を対応セグメントに変換してからシリアル出力して、それを7セグメントLEDモジュール内蔵ICでシリアル―パラレル変換して各セグメントLEDを点滅させてました。今回は2進数を74LS47によって対応セグメントに変換してセグメントLEDを点滅させます。
さらにAruduinoはボードにCLK発振源があり、7セグメントLEDもモジュールを使用してブレッドボードとジャンパで接続しました。今回はIC 555を使った発振回路を設け、7セグメントLEDもモジュールを使うことなく砲弾型LED(LED×3個/セグメント×7セグメント=LED×21個)をユニバーサル基板並べて実装します。
タイマIC555のCLK出力は周辺の定数より以下の通り。
R1=470Ω、R2=24kΩ、C1=10μF
H期間:Th=0.693×(R1+R2)×C1≒17.0ms
L期間:Tl=0.693×R2×C1≒16.6ms
周波数:f=1.44÷{(R1+2×R2)×C1}≒48.5Hz
LEDの電流制限抵抗(図1のR3、4、5・・・)の定数は以下の通り。
電源電圧:6V
砲弾型LEDの順方向電圧VF(min)=2.9V
砲弾型LEDの定格電流IF=20mA
LED駆動トランジスタのコレクタ・エミッタ管電圧VCE(min)=0V※最悪(電流がなるべく大きい)想定のための仮定
{電源電圧ーVF(min)ーVCE(min)}÷IF=(6V-2.9Vー0V)÷20mA=0.155kΩ
よって、E12系列なら180Ω以上。LEDを定格電流の半分程度に余裕もたせるため330Ωを選んで、以下電流制限抵抗の消費電力を確認します。
順電流IF’={電源電圧ーVF(min)ーVCE(min)}÷電流制限抵抗=(6V-2.9Vー0V)÷330Ω≒9.4mA
抵抗1個の消費電力PR=IF’^2×電流制限抵抗=9.4mA^2×330Ω≒29.2mW
これなら手持ちの1/4W(250mW)定格の抵抗で十分でしょう。
主な部品
1.タイマIC 555
定番ロングセラーIC。低周波(200kHz程度まで)のパルス発振源によく使われます。
価格が安く、多用途に使え、安定性が高いことによって世界中で広く使われるようになったICであり、たとえば2003年の1年間だけでもおよそ10億個が生産され[3]、これまで製造された中で最も有名な集積回路となった[4][5]。
(Wikipedia「555 タイマー」より抜粋)
2.カウンタIC 74HC390
デュアルカウンタです。デュアルである必要は無いのですが、本で使っていた”7490”が手に入らなかったので代用します。ピン数・ピン配の違いを注意すれば問題ありません。
3.7セグメントデコーダ・ドライバIC 74LS47
4桁2進数の入力を7セグメントLED点灯に変換・駆動します。本で使っていた”7446”(高耐圧30V)に対して耐圧違いの低耐圧15V品での代用です。今回は電源電圧6Vの回路ですので問題ありません。
4.NPNバイポーラトランジスタ 2SC1815
電子工作定番の小信号用バイポーラトランジスタ(NPN)。2SA1015(PNP) とのコンプリメンタリ・ペア。元々の生産元であった東芝では生産終了。海外メーカの互換品が出回っており、今回使うのも互換品です。
5.砲弾型LED
いわゆる『Lチカ』の主役部品。
発光部分を覆う、透明(もしくは半透明)のモールド樹脂の形から”砲弾型”と呼ばれます。このモールドがレンズとして機能するため、光が正面に集まる傾向が強いLEDです。周辺にまんべんなく光を出したい場合には拡散キャップを被せるなど方法がありますが、それなら最初からチップタイプのLEDを使った方が良いでしょう。
砲弾型のモールド樹脂は熱を内部に閉じ込めてしまうため、LEDの寿命を縮めてしまうデメリットがあります。さらに写真5のようなリードタイプであれば放熱経路がリード2本に限られ、ヒートシンクも付けられず、用途は低消費電力に限られます。
今回のような7セグメントLEDなら出来合いのモジュール1個で済ませた方が便利だと思いますが、本の通り砲弾型LEDを21個並べて実装しました。
製作
1.基板実装
実装面です。
はんだ面です。
はんだ面、引き回しの間違いをジャンパ線で修正しましたが、すずメッキ線が入り組んでおり、なかなかの手間でした。というのも今回からユニバーサル基板をガラスエポキシから紙フェノールのものに替えたのですが、ランドがやけに広く、隣同士で短絡し易くて危うい実装作業になりました。
どうやらガラスエポキシに比べ、紙フェノールのランドは剝がれやすいようです。すべての紙フェノール基板がそうだということはないでしょうが、ランドサイズを広めにして剝がれにくくする意図があったのかもしれません。基板カットが大変だったのと、値段の安さから基材変更したのですが、選ぶ時には注意しないといけません。職場では誰かが購入したものを見つけて使うだけでしたので学びになりました。
2.動作確認・修正
組み立て前に動作させました。
写真9はセグメントが欠けて点灯している例です(”8”が表示されるはず)。表示が正しくなるまで動作と修正を繰り返しました。動作させて間違いを確認するのは部品を壊しかねないのですが、実のところわかりやすい修正方法です。
3.組み上げ
プリント板、その上を覆うアクリル板との二階構造を組み立てます。
アクリル板を加工しました。基板に合わせた寸法にアクリルカッターでカットして、ハンドドリルとリーマーでねじ穴、電源・押しボタンスイッチの実装穴を空けてます。
プリント板の足にねじなしスペーサ(茶)。その中を30mmねじで通して、プリント板の上部の両メススペーサ(黒)にねじ止め。アクリル板の上からは5mmねじを通して固定します。
プリント板、アクリル板を組み合わせました。
散光のため、アクリル板の表面に半透明の付箋を8の字に貼りました。
完成です。
動作
LEDとアクリル板の間隔が広すぎたのと、角度を付けて撮影したことで表示が読み取りにくくなってしまったかもしれません。完成形を意識せずに製作を進めてしまったことは反省です。
感想
実はこれまでセグメントLEDをマイコン無しで点灯させるという意識がありませんでした。Aruduino使った方が自由度が高かったのは当然ですが、価格的な都合や、回路的な学びのためにはマイコンに限らず7446や7447のようなICを活用することも覚えるべきかもしれません。













0 件のコメント:
コメントを投稿