ゆるく楽しむプログラミング

レベルメーターIC XD3914 / LM3914N

レベルメーター専用ではないですが▼のような、レベルメータ(LEDバー)を操作するICです。
XD3914とLM3914Nは動作電圧の範囲が異なるだけで、ピン配置や機能は同じようです。


LM3914の使用方法は、秋月電子のレベルメーターキットの取説を参考にしています。
レベルメータの回路図   LM3914の内部回路
   

内部構造を見ると分かり易いですが、RLo~RHiの基準電圧に対する、SIG INの電圧に応じてLEDが点灯します。
つまり、SIG INの電圧はRLo~RHiの間で変化する必要があります。

M5Stack/M5AtomのDAC(Digital to Analog Converter/デジタルトゥアナログコンバーター)を使用する

M5Stack/M5Atomにはデジタル値をアナログ電圧として出力するDAC(Digital to Analog Converter/デジタルトゥアナログコンバーター)が付いています。
M5AtomLITEの場合はG25/G26でDACが使用できます。
ArduinoIDEでは dacWrite(ピン番号、出力値0~255) で0~3.3Vの電圧を出力できます。
   

ArduinoUNOのPWM出力を使用する

Lチカの明度調整でお馴染みPWM出力ですが、PWM出力ではON/OFFの時間を操作する事でLEDに供給する電力量を変える事で明るさを操作してます。
ON/OFFの時間が変わるだけで、ONの時の電圧が変わる訳ではないので、普通にやると全部のLEDが点灯して、PWMのデューティー比に応じてレベルメータの明るさが変わる・・・Lチカと同じ動作になります。


そこで、入力側に電解コンデンサを付けて、電圧変化を平準化します。
※回路図では10μFの電解コンデンサが付けてあります。

すると、入力電圧はこんな感じに平準化します。
入力側のRとCを調整すると、入力電圧×デューティー比の電圧が得られるようになります。
これは、見かけの電力ではなく、実際に電圧が変化しているのでDACを使用した時と同様にレベルメータを操作する事ができます。



解説動画