マイコンのI/Oポート1個でバーグラフを制御:Design Ideas ディスプレイとドライバー
デジタルで数値表示を行う計器類に、アナログ形式の補助ディスプレイとしてLEDバーグラフを用いることがある。複数個のLEDによってバーグラフ表示を行うとすると複数のI/Oポートが必要となり、使用可能なマイクロコントローラーの種類が制限されてしまう。そこで、バーグラフを1個のI/Oポートで駆動する回路を紹介する。
PWM出力を使用しないので、どのようなマイコンでも利用可能
デジタルで数値表示を行う計器類に、アナログ形式の補助ディスプレイが付属しているケースがある。例えば、フルスケールに対する測定値の割合をLEDによって表示するといったものだ。このような表示は、バーグラフと呼ばれる。バーグラフには、状況を直感的に理解しやすいというメリットがある。しかし、通常のマイクロコントローラーを用いた設計では、例えば8セグメントのLEDによってバーグラフ表示を行うとすると、少なくとも8個のI/Oポートが必要となってしまう。
この点がネックになる場合、代替手段として、PWM出力機能を備えたマイクロコントローラーを使用する手がある。例えば、米National Semiconductor社のバーグラフディスプレイドライバー「LM3914」(または同等品)をPWM出力で制御すれば、必要なI/Oポートの数を最小限に抑えることができる。その場合、LM3914に供給するPWM信号のパルス幅を制御するようにマイクロコントローラーをプログラミングすることになる。ただし、この方法では、使用可能なマイクロコントローラーの種類が制限されてしまう。
上記2つのアプローチの欠点を回避する方法として、本稿では図1に示す回路を紹介したい。この回路であれば、8セグメントのバーグラフを1個のI/Oポートで駆動することができる。しかも、PWM出力を使用しないため、どのようなマイクロコントローラーでも利用可能だ。この方法は、端子数の少ないマイクロコントローラーを使用するため、ポート数を節約したい場合やバーグラフ表示のために子基板を追加するといった改修を行う場合などに適している。
この回路では、バーグラフの表示を更新するために、マイクロコントローラーの出力ポートから図2のタイムチャートのようにパルス列を出力する。第1パルスの幅T1は、単安定マルチバイブレータIC1(74123または同等品)が生成するパルスの幅T2より長くする。そして、これら両パルスをNANDゲートIC3(7400または同等品)に入力する。このNANDゲートはIC1と組み合わせることで、幅の長いパルスの検出器として働く。C1とR1については、IC1のデータシートに記載された式を用い、パルス幅T2が約1.5msになるように値を決める。T1とT3の典型的な値はそれぞれ3ms、1msとなる。
IC2は、シリアル入力/パラレル出力、8ビットのシフトレジスタである。NANDゲートの両入力がハイの期間、同ゲートの出力がローになることで、IC2はクリアされる。その結果、IC2の全出力がローになり、バーグラフの全セグメント(全てのLED)が発光する。
バーグラフのうち、N個のセグメントだけを発光させるには、マイクロコントローラー出力から幅がT3のパルスを(8−N)個だけ順次送出する。これらのパルスは、T2より短いサイクルで出力されるように設計する。そうすれば、NANDゲートの出力はハイのままとなり、シフトレジスタはクリアされない。マイクロコントローラーからの出力パルスのそれぞれの立ち上がりエッジに対応して、IC2の出力がQA、QB、QCの順にハイに変化する。
シフトレジスタIC2のQA端子は、バーグラフの最上位セグメントに接続されている。つまり第1パルスによって最上位セグメントがオフになる。(8−N)個のパルスの場合、最上位セグメントから始まって、(8−N)個のセグメントがオフになり、最下位セグメントからN個のセグメントが発光している状態で保持される。このようなロジックであるため、シフトレジスタのシンク電流8mAに対し、ソース電流が0.4mAという特性を有効に活用でき、出力バッファを付加しなくても高輝度でのバーグラフ表示が可能になる。なお、図2は8セグメントのうちの5セグメントを発光させる場合のタイムチャートである。
マイクロコントローラーのI/Oポート(出力ポート)をもう1つ利用できる場合、単安定マルチバイブレータIC1とNANDゲートIC3は不要である。その出力ポートからローを出力してシフトレジスタをクリアすることにより、バーグラフの表示を更新できる。
また、表示分解能を向上させるには、シフトレジスタをカスケードに接続してセグメント数を増やせばよい。M個のセグメントのうちのN個のセグメントを発光させる場合、(M−N)個のパルスをシフトレジスタのクロック入力に与えることになる。
Design Ideas〜回路設計アイデア集
【アナログ機能回路】:フィルター回路や発振回路、センサー回路など
【パワー関連と電源】:ノイズの低減手法、保護回路など
【ディスプレイとドライバー】:LEDの制御、活用法など
【計測とテスト】:簡易テスターの設計例、旧式の計測装置の有効な活用法など
【信号源とパルス処理】:その他のユニークな回路
※本記事は、2008年7月29日にEDN Japan臨時増刊として発刊した「珠玉の電気回路200選」に掲載されたものです。著者の所属や社名、部品の品番などは掲載当時の情報ですので、あらかじめご了承ください。
「珠玉の電気回路200選」:EDN Japanの回路アイデア寄稿コラム「Design Ideas」を1冊にまとめたもの。2001〜2008年に掲載された記事から200本を厳選し、5つのカテゴリーに分けて収録した。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコンの3本のI/Oで輝点移動型表示器を制御
- 3つのマイコンポートで12個のLEDを駆動
今回は、マイクロコントローラのI/Oポートを3個使用して12個のLEDを駆動する回路を紹介する。 - LEDの多重制御で必要なI/O端子数を削減
- 高速で高精度のLED駆動回路
安定な電流をスイッチングすることで光強度の安定したパルス光を得るLED駆動回路を紹介する。 - 少ないI/Oで多数のLEDを制御、同時点灯も可能
- 1.2Vの電源で動作する白色LEDドライバ