[トップページへ戻る]

ディスプレイドライバ LM3914/LM3915/LM3916について

2009年10月 ※2011/08 記事を改訂
このサイトではAVR(マイコン)を使った製作記事が多いですが、人気のある記事はオーディオレベルメーターの記事だったりします。「レベルメーター」「LM3916」といった検索ワードでたどり着くようです。
というわけでLM3914/LM3915/LM3916についてまとめてみました。おまけで20連オーディオレベルメーターの製作例もあります。

2012/10 追記 LM3916を使ったシンプルなVUメータの回路図を掲載しました。
2013/08 追記 LM3914/15/16向けの補助具を掲載しました。

【関連記事】
PCオーディオレベルメーターの製作(完成編)
Shuttle K45 改造 レベルメータ+デジタル時計
 ↑いずれもLM3915を使ったオーディオレベルメーターの製作記事です。
AVR ATtiny2313 レベルメータードライバー 10LED/5LED VU/3dB
 ↑AVR(マイコン)をLM3914/15/16のような機能のICにします。
LM3914/LM3915/LM3916と両電源、仮想GNDとレールスプリッタ
 ↑LM3914/15/16を両電源で使ってみる実験です。
ブレッドボードで便利に使えるLEDアレイ補助具
 ↑LM3914/15/16を使った工作に便利な補助具を紹介しています。

【キーワード】
LM3914、LM3915、LM3916、ディスプレイドライバ、レベルメータ、オーディオメータ、VUメータ、バーメータ、B-1000SR、B-1000M、10バーLEDアレイ、バーLED


LM3914/LM3915/LM3916の特徴
データシート (リンクは2012/11現在)
LM3914 http://www.ti.com/product/lm3914
LM3915 http://www.ti.com/product/lm3915
LM3916 http://www.ti.com/product/lm3916


特徴 用途
LM3914 リニアスケール。
入力電圧に比例してLEDが点灯する。
温度や回転数など、等間隔の目盛りで計るデータを見るのに向いている。
例:温度→温度計。回転数→タコメータ。
オーディオレベルメータには適さない。
※3種類の中では最も入手しやすい。
LM3915 ログスケール。3dBの刻み幅。
入力電圧が3dB増加する(1.4倍になる)ごとにLEDが点灯する。
音量や明るさなど、人間の感覚器で受けるデータを見るのに向いている。
例:音量→騒音計。明るさ→照度計。
オーディオレベルメータにも一応使える。
LM3916 ログスケール。VUメータの刻み幅。
音量を入力電圧とし、左から7番目を基準に
-20/-10/-7/-5/-3/-1/0/+1/+2/+3(dB)
の変化量でLEDが点灯する。
オーディオレベルメータに最適。
その目的で作られたIC。
※他に応用が利かないためかあまり出回っておらず、入手性が悪い。

本当の名は「レベルメータドライバ」ではなく「ディスプレイドライバ」です。
これらは互いに差し替えて使うこともできますが、入力電圧とLED点灯の対応が使用目的に合わなくなるので意味がありません。最初から目的に合ったものを選びます。

LM3914/15/16を使った最も簡単な回路は、1.2Vフルスケール(1.2VでLED全点灯)とした回路で、LEDの明るさを決める抵抗1個を外付けするだけです。もう1個抵抗を追加すると12Vフルスケールまで設定できます。

オーディオレベルメータ(VUメータ)の製作では入力信号は音量です。再生機器のヘッドホン出力やライン出力を使います。その電圧は数10〜数100mVなのでアンプで増幅し、1.2Vフルスケールのシンプルな回路に合わせることができます。
他の、もっと大きな電圧を入力信号とする製作では、抵抗を追加して10Vフルスケールなどの回路を組みます。

LM3914/15/16を使うにはデータシート2ページの図と式が重要です。これで抵抗値の決め方が分かります。


2ページ掲載の回路図 2ページ掲載の計算式

LM3914/15/16のデータシートを見比べると、この順に図と式が改良されて行く様子が見えて面白いです。特にLM3914の式はLM3915/16の近似式になっていて、実際それで通用していると思います。

電圧に関する注意
1.LM3914/15/16自体を駆動する電圧(電源電圧)は3〜25V。
2.入力信号の電圧の上限(フルスケールとする電圧)は1.2〜12V。
3.電源電圧はフルスケールとする電圧(2.の値)より2V以上高くする。
4.LEDを点灯させる電圧は3V以上、電源電圧以下にする。

1.2.はデータシート1ページに、4.は2ページの図に書いてあります。
2.は1.2Vフルスケール〜12Vフルスケールのレベルメータが作れるということです。
3.はデータシート2ページの図から分かります。例えば5Vフルスケールの回路を組んで電源も5Vにすると、10番目のLEDは点灯しません。この場合、電源を7V以上にします。
※細かいことを言うと、フルスケールとする電圧に対して電源は1.8V以上高くするようです。LM3914のデータシートでは5Vフルスケールの回路で電源を6.8V以上としています。また仕様として、「電源3V以上」「フルスケール1.2V以上」ということから、言われてみればなんとなく想像できます。しかし1.8Vでは話が細かすぎるからか、LM3915/16のデータシートの図では2V高い値で例示されています。

データシートの回路を参考にする
LM3914/15/16を使ってLEDが10個のレベルメータを作るなら、データシート2ページの回路図の通りに作ればよいです。この回路が基本形です。
LEDが20個のレベルメータを作るにも、データシートの応用回路を参考にしてください。様々なパターンが載っています。
何を作るにしろ、またLM3914/15/16のどれを使うにしろ、3つのデータシート全ての応用回路集を見ることをお勧めします。こんな使い方もあるのか、と面白い発見もあるでしょう。

例:シンプルなVUメータ

【参考】LED補助具(リンク
2012/10 追記
LM3916を使ったシンプルなVUメータの例です。1.2Vフルスケール、電源は3〜24V、LEDの明るさは12mA、としています。多少アレンジできます。図中のコメントを見てください。

2連ボリュームは内蔵抵抗に誤差があり、左右チャンネルのLED点灯が不揃いになることがあります。ある程度は仕様として割り切ってください。2連ボリュームではなく個別にボリューム(半固定抵抗でも)を取り付け、左右チャンネルそれぞれで調整できるようにすれば、この問題は解消できます。

例:入力電圧が0〜6V、LEDを10mAで光らせる場合
データシート2ページの図と式から計算します。

[図P2]

 …[式P2-V]
 …[式P2-I]

2ページ掲載の回路図 2ページ掲載の計算式

LEDの明るさを決める抵抗R1の値を[式P2-I]から求めます。
VREF[図P2]の回路だとRHIの値となり、この例では6Vです。
よって ILED = 12.5V/R1 + 6V/2.2kΩ = 10mA
これより R1 = 1.7kΩ
E12系列で近い値を選択して R1 = 1.5kΩ
※E12系列で1.7kΩに近い値は1.8kΩと1.5kΩです。式から、R1が大きいとLEDは暗く、小さいと明るくなることが分かります。ここでは明るくなる方を選んでみました。

次に、何VでLEDを全点灯させるかを決める抵抗R2の値を[式P2-V]から求めます。
R1の計算値は1.7kΩですが、実際の回路では1.5kΩを使うことにします。
よって VREF = 1.25V(1 + R2/1.5kΩ) + R2 * 80uA = 6V
これより R2 = 5.2kΩ
E12系列で近い値を選択して R2 = 4.7kΩ
※E24系列で選ぶとすれば5.1kΩが適しています。しかし部品の入手性を優先するなら、R1,R2ともE12系列で統一した方がよいかもしれません。

これらの抵抗で実際に回路を組んだ場合のVREFとILEDを逆算してみます。
VREF = 1.25V(1 + 4.7kΩ/1.5kΩ) + 4.7kΩ * 80uA = 5.54V
ILED = 12.5V/1.5kΩ + 6V/2.2kΩ = 11.1mA

以上の結果、大体この例の通りに動作する回路は図のようになります。

もし入力電圧の最大値を6V(計算値は5.54V)とせず、多少の変更にも対応したい場合は、R2を5kΩか10kΩの半固定抵抗にするとよいでしょう。
実際に信号を入力して、LEDの様子を見ながら点灯具合を調節できるようになります。

なお電源は、入力信号の最大値と想定する6Vより2V以上高くする必要があるので、9Vや12Vとします。


検証
【条件】
LM3915 ドット表示
LED B-1000SR
電源 7.9V (9Vから若干弱まった乾電池)

【実験方法】
電源電圧を可変抵抗で分圧してLM3915へ入力。
0Vから徐々に入力電圧を上げて(LEDが1番目から順次点灯)、10番目のLEDが点灯したときの電圧、電流を測定する。

【結果】
10番目のLED点灯時の入力信号の電圧 5.60V (写真)
10番目のLEDに流れた電流 11.82mA

【まとめ】

理論値 実測値 誤差
VREF 5.54V 5.60V +0.06V (+1.1%)
ILED 11.1mA 11.82mA +0.72mA (+6.5%)

良好な結果だと思います。
徐々に入力電圧を上げてLEDの点灯が移り変わるとき、一時的に2個のLEDが点灯します。
 [1]点灯 → [1][2]点灯 → [2]点灯([1]消灯) → … → [9]点灯 → [9][10]点灯 → [10]点灯([9]消灯)
という具合です。実験ではこの最後の状態における電圧、電流を測定しています。

ドット表示とバー表示の違い
バー表示ではMODE(9ピン)をV+(3ピン)に接続します。その状態で同様の実験をしたところ(ただし電源電圧は7.33V)、ドット表示の時とは様子が違いました。入力電圧を徐々に上げると、それに連れてV+〜V-間の電圧が下がります。

LED全消灯時
・V+(3ピン)〜V-(2ピン、GND接続)間の電圧 6.82V
・入力信号の電圧 0.05V

10番目のLED点灯時(LED全点灯)
・V+(3ピン)〜V-(2ピン、GND接続)間の電圧 4.15V
・入力信号の電圧 3.05V

VREF(5.6V)よりずっと低い入力電圧でLEDが全点灯しました。この結果を眺めると…
VREF = {LED全消灯時のV+〜V-間電圧} - {LED点灯中のV+〜V-間電圧} + {入力信号の電圧}
の関係にありそうです。
※なぜ2ピンをGNDではなくV-と名付けているのか分かったような気がします。…気がしますが多分気のせいです。

バー表示で使うときのVREFの決め方が説明されていないかデータシートを調べたのですが、そのような記述は無さそうでした。スッキリしませんが、「バー表示で使うときはこういうものだ」ということで割り切ることにします。
※LM3915/16でオーディオレベルメータを作る場合、R2を可変抵抗にするか入力電圧を調節するようにして、VREFを厳密に決めない作り方にするのが良さそうです。

MODE(9ピン)は単にバー表示かドット表示かを選択するだけのピンではなく、他の機能も兼ねています。例えばこのICを2個つないで20連レベルメータにするとき、隣のICの1ピン(1番目のLED)と接続します。キャリーの役割です。また、データシートには「ドット表示オンリー」とする応用回路がいくつか出ています。

20連レベルメータの動作テスト
LM3915を2個使い、データシート12ページ下段
「FIGURE 6. Improved Circuit for 60 dB Display」の回路を組んでみました。
ただし、動作を見るための製作例なので実用的な完成度ではありません。
抵抗は手持ちの中から近い値のものを使ったり、トライアル&エラーで決めました。


点灯確認テスト


動画※無音
(クリックして別窓で再生)

回路図

半固定抵抗を調節し、入力信号として0〜5Vを加え、20個のLEDが順次点灯する様子を確認しました。LM3915はログスケールなので、一定の速さでボリュームを回したとき(電圧の上がり方が一定のとき)、最初の方はすぐに次のLEDが点灯しますが、最後の方になるにつれ、次のLEDが点灯するまでの間(ま)が空きます。これがLM3914だとリニアスケールなので、ボリュームを回した角度に比例してLEDが点灯します。

オーディオレベルメーターとしてテスト

動画※無音
(クリックして別窓で再生)

回路図

PCで音楽を再生し、ヘッドホン出力の右チャンネルをOPアンプで増幅し、入力信号としました。OPアンプLM358を5Vで動作させると、音楽再生のボリュームを一杯に上げても20番目のLEDは点灯しませんでした。9V(正確には7V強の乾電池)で動作させると20番目も点灯しました。LM3915とLEDの電源は5Vです。
データシートの回路図で入力信号のところに「10V FULL SCALE」と書いてありますが、実験の回路では6VもあればLEDは全点灯しました。もし抵抗の値を計算し直して3Vフルスケールとして作ったら、OPアンプの電源も5Vで行けると思います。

カスケード接続して気付いたこと
1段目(低位側のLM3915)のLED-10は点灯せず、2段目(高位側)のLED-1が点灯しました。
10連のLEDアレイを使う場合、とりあえずの解決策として、1段目のLED-10は2段目の1ピン(2段目のLED-1がつながっている)につなぎます。こうすると1段目のLED-10と2段目のLED-1が同時に(他のLEDの半分の電流で)点灯しますが、見た目には違和感なく20個のLEDが点灯します。※動画を見ても気付かないでしょ?

2011/09 追記
[
上記回路図ではOPアンプの抵抗をR4=200kΩ、R5=10kΩ(増幅率約20倍)としていますが、データシートの回路図では各々309kΩ、10kΩ(増幅率約30倍)となっています。実験で低位側のLED-10が点灯しなかった理由はこの違いかもしれません。もしそうであれば、低位側LED-10と高位側LED-1を接続する必要はなくなり、きちんと別々に点灯すると思います。※すみません。追試してません。]

バー表示で20個のLEDを個別の値として点灯させる方法は分かりませんでした。実験では電圧の設定が微妙だったのかもしれないし、データシートの「Mode Pin Functional Description」の章の「Block Diagram of Mode Pin Function」の図(LM3914/15は8ページ、LM3916は9ページ)あたりから解決方法が、あるいはLED-10は点灯しない仕様なのかもしれないことが分かるのかもしれませんが、自分の頭では追いつきませんでした。
一方、ドット表示では9ピンをキャリー(1段目と2段目の値の受け渡し)の役割とし、接続を工夫することで20個全部のLEDが使えるようです。

◆◆◆
この先は製作とほとんど関係ない内容です。


式の説明

 …[式P2-V]
 …[式P2-I]

計算に使った2つの式[式P2-V][式P2-I]について説明します。と言ってもデータシートに詳しく書いてあります。
LM3914/15/16ともデータシート8ページ Functional Description の章の、INTERNAL VOLTAGE REFERENCE の節と CURRENT PROGRAMMING の節です。

[式P2-I]について
REF OUT(7ピン)とREF ADJ(8ピン)の間にはIC内部で1.25Vの電圧が掛けられています。この2つのピンを抵抗R1でつなぐとR1には(1.25V/R1)Aの電流が流れます。今この電流をIR1と呼ぶことにします(データシートでI1と書いてあるのはこの電流のことだと思います)。
CURRENT PROGRAMMINGの説明によるとIR1の10倍がLEDに流れる電流ILEDとなるようです。
これは電気特性の表から読み取ることもできます。項目 OUTPUT DRIVERS の LED Current の欄で、IL(REF) = 1 mA のとき LED Currentは10mA 流れる、となっています。
「IL(REF)」とは「I LED REF」の意味で、ここで言うIR1を指していると思われます。

この関係を式で表すと、
ILED = 10 * IR1 = 10 * (1.25V / R1) → ILED = 12.5V / R1

これが[式P2-I](の主たる部分)です。
LM3914のデータシートにはこの式が近似式として載っています。厳密には、回路は他の部分ともつながっているのでもう1つ項が付きます(+ VREF/2.2kΩ)。

[式P2-V]について


REF OUT(7ピン)から出たIR1(上図ではIL)は抵抗R1,R2を通ってGNDへ流れます。
R1はREF OUT(7ピン)とREF ADJ(8ピン)をつないだものなので、両端に掛かる電圧はVREF(1.25V)です。
またREF OUTの電位をVOUTとします。これは(R1+R2)の両端に掛かる電圧です。

抵抗と両端に掛かる電圧の関係を式で表すと、
VOUT : VREF = (R1 + R2) : R1

VOUT = VREF * (R1 + R2) / R1 = VREF * (1 + R2 / R1) = 1.25V * (1 + R2 / R1)

これが[式P2-V](の主たる部分)です。
LM3914のデータシート2ページの図にはこの式が載っています。厳密には、REF ADJ(8ピン)から出たIADJがR2を通ってGNDへ流れるので、その分の電位を加えます。データシートによるとIADJは80μA〜5mAです。

VOUT = 1.25V * (1 + R2 / R1) + IADJ * R2 = 1.25V * (1 + R2 / R1) + 80μA * R2

これが[式P2-V]、上図・右の式です。
この式は次のように導くこともできます。こちらの方が素直かもしれません。
R2に流れる電流は I
R1 + IADJ なので、R2の両端に掛かる電圧をVR2とすると VR2 = R2 * (IR1 + IADJ)
よって V
OUT = VREF + VR2 = VREF + R2 * (IR1 + IADJ) = VREF + R2 * (VREF / R1 + IADJ) = VREF(1 + R2/R1) + IADJ * R2

データシートで紹介されているほとんどの応用回路はVOUTをRHI(フルスケールの上限とする電圧)としています(ピン6をピン7出力のR1手前につなぐ)。ということはR2を適当に分割して、その点にRLO(ピン4)をつなげば、フルスケールの下限値を0Vでなく1Vや1.5Vなどとすることができるのでしょう。
…と思ったらLM3914のデータシートにそれらしいことが載っていました。LM3915/16のデータシートには載っていません。リニアスケールならそのような使い方もあろうが、ログスケールでは使い道がなさそうだ、ということでしょうか。

LM3914/15/16をもっと研究したい人は
VREF, ILED の決め方についての解説が、データシート Application Hints の章の、TIPS ON REFERENCE VOLTAGE AND LED CURRENT PROGRAMMING の節に載っています(LM3915では13ページ、LM3916では14ページ)。

レベルメータの下限値(RLO)を0V以上にする(と思われる)方法も載っています。使い道がすぐに思い付きませんが、例えば入力1V未満では反応せずに1V〜5VでLEDを点灯させる、ということができます。LM3914のデータシート16ページ、Application Hints の章の、APPLICATION TIPS FOR THE LM3914 ADJUSTABLE REFERENCE の節です。LM3915/16にも適用できそうです。

LM3914/LM3915の互換IC?
2011/01 追記
NTE Electronics, Inc.というメーカー製でLM3914/LM3915の互換ICを見付けました。
このメーカーは、何やら様々な互換ICを製造しているようです(?)

NTE1508(LM3914互換)/NTE1509(LM3915互換) ※LM3916の互換ICはありません。
上記製品の紹介ページはなく、データシート(pdf)のみ公開されています。
メーカーサイトのトップページ → [Keyword Search]から検索ページへ → 型番で検索。

ただ、どちらの価格も互換元ICの2倍ほどするのが残念です。Mouserで在庫検索。


◆ ◆ ◆
調査と実験のまとめは以上。
※ちょっと書くだけのつもりが何でこんなに長くなったんだ…


(C) 『昼夜逆転』工作室 [トップページへ戻る]
inserted by FC2 system