3つのマイコンポートで12個のLEDを駆動:Design Ideas ディスプレイとドライバ(2/2 ページ)
今回は、マイクロコントローラのI/Oポートを3個使用して12個のLEDを駆動する回路を紹介する。
ソフトウェアの処理フロー
図3は、ソフトウェアの処理フローを表したものである。
マイクロコントローラの内部クロックは、Timer0を駆動する。Timer0は512マイクロ秒ごとにオーバーフローし、これが単位タイムスロットになる。このスロット周期でLEDを駆動する動作が行われる。8個の単位タイムスロットを1周期とし、最初のタイムスロットで回路上部の3個のLEDを駆動し、次のタイムスロットで下部の3個のLEDを駆動する。ソフトウェアを簡略化するために、残り6個のLEDは、残り6個のタイムスロットの1つ1つで順次駆動するようにした。
メインループの開始時には、クロックパルスをカウントし、Timer0がオーバーフローするまで待機する。オーバーフローが発生したら、設定されたタイムスロットに対応するLEDを出力ポートが駆動する。8個のタイムスロットが完了すると、各ポートが同一の状態にセットされる。200タイムスロットが経過したら、イグニッションコイルからの入力パルス数をカウントし、カウント数、すなわち入力周波数に対応するようLED点灯パターンを設定する。図4に、GP0、GP1、GP2の各ポートの出力波形の例を示した。
図4:各ポートの出力波形 (クリックで拡大)
上からGP0、GP1、GP2 端子の出力波形。これらの波形は、プログラムソースコード(led121.c.pdf)中のcase7からcase8の動作に対応する。
なお、このタコメーターは、120サイクル/秒の回転速度まで表示できる。
Design Ideas〜回路設計アイデア集
【アナログ機能回路】:フィルタ回路や発振回路、センサー回路など
【パワー関連と電源】:ノイズの低減手法、保護回路など
【ディスプレイとドライバ】:LEDの制御、活用法など
【計測とテスト】:簡易テスターの設計例、旧式の計測装置の有効な活用法など
【信号源とパルス処理】:その他のユニークな回路
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 高速で高精度のLED駆動回路
安定な電流をスイッチングすることで光強度の安定したパルス光を得るLED駆動回路を紹介する。 - LEDを光センサーとして使用した自動点灯回路
LEDに光を照射すると、大きな起電力が発生する。この光起電力効果を利用し、LEDを光センサーとして使う自動点灯回路を紹介する。 - マイコンのI/Oポート1個でバーグラフを制御
バーグラフは状況を直感的に理解しやすいメリットがあるが、多くのマイクロコントローラが必要になったり、種類が限定されてしまったりする。今回は、その2つの欠点を回避する回路を紹介する。ポート数を節約したい場合や子基板を追加するといった改修を行う場合に適している。 - 電源ICを使ったLEDの定電流駆動回路
LEDが光源として注目を浴びている。従来に比べて、効率や信頼性が高い場合が多いからだ。スイッチング電源を使えば、バラスト抵抗を用いた電流の制限方法に比べてさらに効率を高められる。