【ESP32入門】ESP32で負電圧を扱う【7回目】

2023/01/28

ESP32 HOW2 MCP3208 OPアンプ アンプ レベルメーター 電子工作

t f B! P L
レベルメータ作成のまとめはこちら

はじめに

どうもtakaです。
雪はいかがでしたか?
私の居住地もしっかり積雪しました。
車の雪は手で降雪できる程度でしたが、意気揚々と新品の除雪用具で除雪しました😂

さて、前回はAD変換に関して説明いたしましたが、今回はAD変換で負の電圧を扱う方法についてです。AD変換ICを使用して説明しますがESP32の内蔵ADCを使用する場合でも同様です。

それでは行ってみよ~

概要

ESP32のADCでも今回使用するMCP3208でも負電圧は扱えません。音声信号を扱いたいとき不便ですね。そこで外部回路で電圧の簡単な計算を行います。
MCP3208に入力可能な電圧は0~5[V]のため、入力電圧に2.5[V]だけ足し算してやります。つまり、入力可能な電圧が-2.5~+2.5[V]になるのです。(ESP32は3.3[V]までなので1.65[V]足す)

たったそれだけです( ゚Д゚)


グラフ上段の黄色が2.5[Vpp]の入力信号とすると、そのままでは下段の黄色の様に負の領域がカットされてしまいます。下手するとESP32やAD変換ICが破損します。そこで黄色の入力信号を2.5[V]だけオフセットさせてやると、下段青色の波形の様に、±2.5[V]の正弦波が0~5[V]の正弦波に変換されAD変換に入力可能となるわけです。

アナログ回路で足し算と掛け算

それでは実際に2.5[V]をオフセットさせる方法を説明しますが、ついでなので掛け算も説明します。入力信号電圧が小さい場合に増幅させるためです。加算も乗算も差動増幅を利用します。今回は手軽にOPアンプを使用します。

足し算

典型的な加算回路です。
詳細原理は省きます。この回路はOPアンプの出力電圧が下記の様に動作します。
\begin{eqnarray} V_{out}&=&-R_{106}(\frac{1}{R_{104}}V_1+\frac{1}{R_{105}}V_2) \\&=&-(V_1+V_2) \end{eqnarray}

$V_1$を入力信号、$V_2$を2.5[V]とすれば目的達成ですね。
簡単ですが、符号が反転することに注意です。

掛け算

先述の加算回路は符号が反転します。また、小さな音声信号を扱うために符号反転+電圧増幅を行います。ようするに反転増幅回路です。
こちらも詳細は省きますが下記の様に動作します。
\begin{align} V_{out}=-\frac{R_{102}}{R_{101}}V_{in1}=-47V_{in1} \end{align}
入力信号を-47倍するだけの回路です。

先述の加算回路を接続すると全体として
\begin{align} V_{out}=47V_{in1}+2.5 \end{align}
となるよう動作する回路の完成です!

当然ですがAD変換の入力可能範囲は変わらない(MCP3208だと0-5[V])ので、$V_{in1}$に入力できる電圧は
\begin{align} V_{in1}=\frac{5-2.5}{47}≒0.053 [V]\end{align}
となりますので環境に応じてゲインを調整してください。

最終的な外部回路

電源や簡易的な保護回路等を付加した全体像を示します。
使用するOPアンプは両電源で電源電圧が±5[V]以上必要です。オペアンプは電源電圧より小さな電圧しか出力できないため電源はそれより大きな電源電圧を選択します。
VR3はESP32のプログラムの動きを変化させるために設けているためあってもなくてもいいです。(次回のオーディオレベルメーター完成編では必要です)

電源は+24[V]のACアダプターから分圧して±12[V]生成しています。正負の負荷が均等でないと単に2分割しても±12[V]にはなりません。そこで今回は簡易的に分圧抵抗を調整しバランスを取っています。(R1に並列になっている1.8[kΩ]がそれです)

WS2812B用の+5[V]もACアダプターを使用しています。+12[V]から生成してもどちらもいいです。

実行結果

ESP32のプログラムは前回のままでOKです。
Arduino IDEのシリアルプロッタを用いてAD変換した結果を確認してみます。
入力信号は信号源(ファンクションジェネレータ)を使用していますがスマホやPCから適当な音を入力してやってもいいです。

シリアルプロッタに正弦波が表示されれば成功です!
電圧で表示すると2.5[V]が重畳された正弦波、正規化前だと2047が重畳された正弦波が表示されれば成功です!
※こちらはイメージ図ですのでご注意を

今回は以上です!
次回ESP32のプラグラムを作成しオーディオレベルメータが完成します!
乞うご期待♪


全投稿のまとめページは こちら

中の人

自分の写真
モノ作りが好きです。GUIアプリの作成からアナログ回路まで手当たり次第です。 アンプの修理を紹介するためにブログを始めました。 (Twitter:@TakaElc)

記事カテゴリ

5M21 (10) A-6 (5) A-717 (2) A-950 (1) AB級 (8) Arduino (2) A級 (29) C-21 (1) C29 (1) ESP32 (9) EUMIG (13) FFT (2) HOW2 (6) LED (2) LUXMAN (10) M-1000 (13) M-22 (23) MATLAB (1) mcintosh (1) MCP3208 (3) OPアンプ (1) Pioneer (26) QUAD (1) Simulink (1) WS2812B (4) YAMAHA (6) アンプ (62) スピーカ (3) プリ (1) プリアンプ (1) プリメイン (6) レベルメーター (8) 化石 (1) 山水 (3) 自作アンプ (7) 電子工作 (20) 日記 (1)

QooQ