====== VUメータ(デジタル処理+アナログ表示) ====== ===== 概要 ===== VUメーター(VU Meter)は、元々、音響機器に於いて音量感(volume unit)を指示するための測定器だそうです。 【開発当時の規定】 インピーダンス600Ωの回路において1khzの正弦派を加えて1mWの電力を消費したときに0VUとする。 VUメーターの指示範囲は-20から+3で単位はdBである。信号が発生してから針が既定値に達するまでの時間は300msecである。 今回は、信号をPICでデジタル処理し、針式メータで表示させてみました。 ===== 動作原理 ===== 出来るだけハードウエアは単純にし、ソフトウエアで処理をしました。 * 入力信号を、先ずはトランジスタで10倍に増幅します。 * 次にダイオードを2個使って倍電圧整流します。 * 整流された電圧をPICのA/D変換機能で取り込みます。 * 1msec間隔で300回データを取り込んでその平均を求めます。 * その結果を10ビットのD/A(ラダー方式)でアナログ電圧に変換します。 * この電圧をオペアンプのボルテージフォロアでインピーダンス変換し、針式メータを振らせます。 ===== 回路図 ===== {{:imgpaste:202004:htmikan-20200429-164137.png}} ===== ソースコード ===== //********************************************************************** void main() { static unsigned int ad, cnt; static unsigned long adLong; // CMCON = 0b00000111; ANSEL = 0b00000100; TRISA = 0b00111100; TRISB = 0b00000000; OSCCON = 0b01110000; while (1) { PORTA.F1 = ~PORTA.F1; adLong = 0; for (cnt = 0; cnt < 300; cnt++) { ad = Adc_Read(2); adLong += ad; Delay_us(1000); } ad = adLong / 300; PORTB = ad; PORTA.F6 = (ad & 0b0100000000) == 1 ? 1 : 0; PORTA.F7 = (ad & 0b1000000000) == 1 ? 1 : 0; } } //********************************************************************** ===== 動作確認 ===== 入力にはCDプレイヤーを接続しました。 {{:imgpaste:202004:htmikan-20200429-164309.png?500}} どこかのメーカのパワーアンプから外したメータを接続してみました。 {{:imgpaste:202004:htmikan-20200429-164325.png?500}} {{:imgpaste:202004:htmikan-20200429-164344.png?500}} トランジスタのアンプ部と倍電圧整流部です。 {{:imgpaste:202004:htmikan-20200429-164358.png?500}} PICとD/A変換の接続部分です。 {{:imgpaste:202004:htmikan-20200429-164412.png?500}} ブレッドボードで使えるようにD/A変換部をユニット化しました。 {{:imgpaste:202004:htmikan-20200429-164427.png?500}} このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。[[elechobby:picdic:picdic|詳細]] This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.[[elechobby:picdic:picdic|Details]]