====== 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]]