応用回路設計のための第一歩 ―― I/O規格とLED表示,スイッチ入力,アナログ出力,RS-232通信のための回路の設計法

井倉 将実

2.LEDの使い方

 LED(発光ダイオード)は,電気を流すと光る光半導体部品です.付属FPGA基板に実装されている単体のLEDのほか,7個のLEDを数字の8の字に配置にすることで,0~9までの任意の数字を表示させることができる7セグメントLEDもあります.7セグメントLEDは,小数点を示すドットを表すLEDと合わせて,合計8個のLEDによって構成されているのが一般的です(写真1)


写真1 単体のLEDと7セグメントLED

 LEDを点灯させるためには,最低限の知識がいくつか必要です.それは順方向電圧と順方向電流(駆動電流)です.

● LEDを駆動する順方向電圧

 電流を流すことで光るLEDは,動作するために数Vの電圧が必要です.
 LEDは,ダイオードの一種です.ダイオードは,アノードからカソードに電流を流すときに,電圧降下が起こります(図5).この値を「順方向電圧」といいます(コラム「LEDは逆方向の電圧に弱い」を参照).


図5 LEDの順方向電圧

 LEDは,電力用のダイオードの数倍もの電圧降下を生じます.おおむね2.0V~3.2V程度の範囲です.色によっても順方向電圧が大きく違います.一般的に,赤<黄<緑<青<白<昼白色の順で,順方向電圧が高くなります.

 順方向電圧は,LEDを駆動するための電圧と同じ意味です.例えば順方向電圧が2.0Vの赤色LEDを駆動したい場合には,2.0V以上の電源で動かさなければいけないことになります.また,白色LEDは3.0V以上が必要なので,2.0Vでは光らせることはできません.

 このように,順方向電圧はLEDを使う上で非常に重要なパラメータになります.使用するLEDのデータシートに記載されている値を,あらかじめ調査しておく必要があります.

● LEDの明るさを決める駆動電流と電流制限抵抗

 LEDは,順方向電圧以上の電圧をかければ点灯します.ただし,このままだと電源から無制限に電流が流れ,最悪の場合には壊れてしまいます.

 そこで,電源とLEDの間,またはLEDとグラウンドの間に適当な抵抗を入れて,LEDを流れる電流を制限します(図6).直列回路ですから,抵抗に流れる電流値とダイオードに流れる電流値は一致します.ここでLEDと電源の間に挿入した抵抗を「電流制限抵抗」といいます.


図6 電流制限抵抗の求め方

 LEDは,ある程度の電流を流さなければ,所望の輝度(明るさ)を得ることはできません.この値はLEDの順方向電流としてデータシートに規定されています.電流を必要以上に制限してしまうと暗くなります.また,規定以上の電流を流すと明るくなりすぎ,その結果,熱をもって破壊してしまうこともあるので注意が必要です.

● 電流制限抵抗の決め方

 実際にLEDを点灯する回路を作ってみます.LEDを点灯させるのに重要なパラメータは,順方向電圧と駆動電流です.

 例えば,順方向電圧2.2VのLEDを駆動電流10mAで点灯させるものとします.電源電圧は3.3Vとします.

 図6の回路から,抵抗とLEDで電源電圧を分圧することになります.順方向電圧が2.2V,

 

となります.
 直列回路なので,LEDに流れる電流値と同じ電流が抵抗にも流れます.そのため,VR=1.1Vと抵抗を流れる電流10mAから,抵抗値が計算できます.

 つまり,110Ωの抵抗値を3.3VとLEDの間に挿入することで,順方向電圧と駆動電流を所望の値にできます.

● FPGAからLEDを点灯させる方法

 FPGAからLEDを点灯させる回路として,FPGAのピンに抵抗を介してLEDのカソード側を接続し,アノード側は電源に接続した回路をよく使います(図7)


図7 FPGAからLEDを点灯させる基本回路

 FPGAがHレベルを出力すると,3.3Vに近い電圧がFPGAのピンに現れます.この場合,LEDが点灯するために必要な順方向電圧を満たすことはできません.つまり,消灯状態です.

 FPGAがLレベルを出力すると,0Vに近い電圧がFPGAのピンに現れます.この場合,グラウンドにLEDのアノードが接地された状態とほぼ同じになります.順方向電圧を満たすことができるので,点灯します.

● 多数のLEDを駆動する場合はバッファが必要

 図7の回路は非常にシンプルですが,FPGAに負担がかかるということに注意してください.

 もともと,FPGAのI/Oピンは大きな電流を駆動する用途には向いていません.LatticeXP2の場合,3.3VのLVTTL/LVCMOSで最大で20mAを駆動できますが,これは1ピンだけ使用する場合の値です.すべてのI/Oを使用する場合は,チップ全体またはI/Oバンク単位の制限により,1ピン当たり平均8mA程度の駆動能力しかありません.従って,複数のLEDを接続する場合には注意が必要になります.

 例えば7セグメントLEDは,通常8個のLEDが集積されています.十分な輝度を得るには1エレメント(1個のLED)当たり少なくとも10mA程度の電流を流す必要があります.1けた当たり80mA以上の電流を必要とします.4けたなら320mAにもなります.電流を多く流さないと輝度が十分に取れないLEDや多数のLEDの駆動は,FPGAのI/Oピンの駆動能力の観点から難しくなります.

 このような場合,LEDとFPGAの間に,バス・バッファICを挿入することで解決できます.例えば米国Texas Instruments社のバス・バッファIC「74HC245」はH/Lレベルともに24mAの電流を流すことが可能です(図8)


図8 バス・バッファICを使ったLED回路

[コラム]LEDは逆方向の電圧に弱い
 順方向電圧というものがあるなら,当然,逆方向の電圧も規定されています.この値は,絶対最大定格という「ほんの瞬間でもこの値を超えたら,デバイスの動作は保障しない(普通は破壊する)」の中で規定されている恐ろしい(!)値です.
 実はLEDは,ほかのダイオード部品と違い,逆方向の電圧には非常に弱い特性を持ちます.LEDの種類にもよりますが,5V程度で壊れてしまうLEDもあります.
 ありがちな話ですが,LEDの極性が分からないときが一番危険です.誤って,逆方向に電圧をかけただけで,LEDは簡単に壊れてしまい,チェックをする端からどんどんLEDを壊していたなんていうことも,笑い事ではありません.
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日