見出し画像

オーディオセレクター作ってみた

初めに

中華アンプ+自作スピーカーでPCオーディオ環境を構築しました。メインはパソコンからの音声を出力するために使っていますが、それ以外の用途でも使いたいです。例えば、僕の場合だとパソコンの他に、レコードプレイヤー・スマホの音楽・サブパソコンの出力などです。
アンプの入力を毎回つなぎ直すのもいいですが、面倒なのでオーディオセレクターが欲しくなりました。簡単なものだとロータリースイッチを使ったものがあります。
今回はアナログスイッチマルチプレクサを使った電子工作で遊ぼうと思います。

前提

オーディオセレクターの電源は、中華アンプの12Vから分岐させて取ります。そうすれば、有限なコンセントを浪費しなくてすみます。(なら、電源不要なロータリースイッチ式にしろと言われそうですが…笑)
オーディオセレクターの要求スペックは4入力1出力とします。選定したマルチプレクサはTIのCD74HC4052にします。
ここで問題発生です。このIC、正負電源が必要ですが入力は+12Vです。どのようにして正負電源を用意しましょうか?
実は、この正負電源を作りたいので今回のオーディオセレクターを作成したと言っても過言ではありません。

正負電源

さて、正負電源ですがレールスプリッタ回路を作ります。レールスプリッタ回路は、仮想グラウンドを作って正負電源を再現するというものです。今回の場合だと+12Vから±6Vにするイメージでいいと思います。
色々とやり方はあるみたいです。
簡単なものだと抵抗分圧式。これは単純に抵抗分圧をして、その中点を仮想グラウンドとして正負電源を再現するというものです。その他にも、カレントミラー方式、オペアンプ方式、レールスプリッタICを使ったものなどあるそうです。
今回は、手持ちにあったオペアンプとバッファが余っているのでオペアンプ方式で作成しました。出力にバッファとしてLT1010をつけて安定アップを測っています。

正負電源回路図

手元にあったオペアンプ(NJM4580)とバッファー(LT1010)を使用して回路を作成します。レールスプリッタを通った後の電源は±6Vです。PICマイコンの定格は5.5Vまでですので、±5V電源にしたいです。なので、3端子レギュレーターを用いて実現します。
回路図上はオペアンプもバッファーも1回路です。使用するオペアンプとバッファーは2回路入りですので、実際の回路は並列に2回路接続しています。

+12V電源を±5V電源に変換する回路

アナログ・マルチプレクサを使用したオーディオセレクター

オーディオ信号は、アナログスイッチのマルチプレクサを使用して選択しようと思います。2回路入りの4チャネルマルチプレクサです。2信号4ペアの信号セレクトができます。今回の場合だと、4つの音声信号を1つの出力に選択して使用することができます。データシートを確認すると、9番ピン、10番ピンの2つを使って信号選択します。

データシートより引用

PICとロータリースイッチ

マルチプレクサの選択制御をPICとロータリースイッチを使って行おうと思います。このロータリースイッチはチャンネル選択のために使います。(このロータリースイッチをそのままセレクターとして使えばいいんじゃない?という意見は言わないでください。)
ロータリースイッチに3つの抵抗をつけて、PICのADCを使ってどのチャンネルを選択するかを決めます。

PICの回路とプログラム

PICのRA3にロータリースイッチを接続します。4接点のロータリースイッチを使用します。それぞれの端子に抵抗を接続して、PICにアナログ電圧を入力します。
PIC側で、アナログ電圧を読み取りセレクト信号を出力します。

PIC周辺回路

PIC自体のプログラムは非常に簡素なものを作成しました。
AD変換の結果はMCCで自動生成されたADC_GetConversionを利用して取得しています。

#AD変換結果は、MCCで自動生成された関数(ADC_GetConversion)を利用しています。

void delay_ms(short int delaytime){
    while(delaytime--){
        __delay_ms(1);
    }
}

void main(void)
{
    // initialize the device
    SYSTEM_Initialize();

    int  Value;
    
    while (1)
    {
        Value=ADC_GetConversion(channel_ANA4);
        
        delay_ms(100);
        
        if(Value>=1024/100*75){
            LATA0=1;
            LATA1=1;
        }else if(Value>=1024/100*45){
            LATA0=1;
            LATA1=0;
        }else if(Value>=1024/100*25){
            LATA0=0;
            LATA1=1;
        }else{
            LATA0=0;
            LATA1=0;
        }        
    }
}

これでロータリースイッチを使って、マルチプレクサに制御信号を入力できます。

オーディオセレクター設計

さて、電源・マルチプレクサ・PICプログラムなどが出来上がりそうです。
PICの選択信号とマルチプレクサの回路図つなげてみましょう。

PICマイコンとマルチプレクサ

音声入力の入り口と音声出力の出口にカップリング用にキャパシタを挿入します。今回は、手元にあった0.01uFを使用しました。
これで、ロータリースイッチを使って音声入力を選択できるようになります。

オーディオセレクター設置

電源回路とオーディオセレクターの設計が完成しました。実際に、基板に作成してみましょう。作成したものがこちらです。タカチ製のプラスチックケースに収納しています。

作成した基盤

電源ラインにスイッチを取り付けをして、手元で電源をon/offできるようにしました。このオーディオセレクターはアンプの上に設置します。

オーディオセレクタ設置

最後に

オーディオセレクタの作成を建前に、レールスプリッタ回路の実装を行いました。正負電源の用意が自分の中で容易にできるようになったのがよかったです。オーディオセレクター自体も非常に便利です。
オーディオにこだわりがある人ではないので、音質の劣化等全く気になりません。それよりも、利便性が向上することのほうが嬉しいです。
こういった、利便性を向上できる電子工作をこれからもやっていきたいですね。

この記事が気に入ったらサポートをしてみませんか?