検索
ハウツー

3つのマイコンポートで12個のLEDを駆動Design Ideas ディスプレイとドライバ(2/2 ページ)

今回は、マイクロコントローラのI/Oポートを3個使用して12個のLEDを駆動する回路を紹介する。

Share
Tweet
LINE
Hatena
前のページへ |       

ソフトウェアの処理フロー


図3:ソフトウェア処理のフローチャート (クリックで拡大)

 図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.

前のページへ |       
ページトップに戻る