マイクセレクター(PIC16F84)

概要

無線仲間に移動運用をアクティブにされる方がいます。 その時には、複数のメンバーで1台の無線機を使って運用することになります。 でもマイクが1本だといちいち席を替わるかマイクを渡すかしなければなりません。 そこで4本のマイクを接続して送信スイッチ(PTT-SW)を押した人のマイクを優先させることが出来ないかと相談を受け作成したのが本マイクセレクターです。

動作原理

回路図からも判断できるようにとてもシンプルな構成にしました。

4つのPTT-SWのどれが押されるかを監視する。

押されたPTT-SWに対応したマイクからの信号をONにする。￫アナログスイッチ(4066)をONにする。

押されたPTT-SWに対応したLEDを点灯させる。

PTT出力をONにする。￫トランジスタ(2SC1815)をONにする。

回路図

※4066の10kの抵抗は、1kに変更してください。

ソースコード

//********************************************************************** /* ★マイクセレクター ★機能 ・4本のマイクを切り替えます。 ・早くＰＴＴ（送信）スイッチを押されたマイクを選択します。 */ //********************************************************************** #define MIC_SW1 PORTA.F1 #define MIC_SW2 PORTA.F2 #define MIC_SW3 PORTA.F3 #define MIC_SW4 PORTA.F4 #define MIC_LED1 PORTB.F7 #define MIC_LED2 PORTB.F6 #define MIC_LED3 PORTB.F5 #define MIC_LED4 PORTB.F4 #define MIC_SEL1 PORTB.F1 #define MIC_SEL2 PORTB.F3 #define MIC_SEL3 PORTB.F0 #define MIC_SEL4 PORTB.F2 #define MIC_PTT PORTA.F0 //********************************************************************** void main() { TRISA = 0b11111110; TRISB = 0b00000000; // PORTA.F0 = 0; PORTB = 0b00000000; while(1) { if (MIC_SW1 == 0) { MIC_SEL1 = 1; MIC_LED1 = 1; MIC_PTT = 1; while(MIC_SW1 == 0) ; MIC_PTT = 0; MIC_SEL1 = 0; MIC_LED1 = 0; } if (MIC_SW2 == 0) { MIC_SEL2 = 1; MIC_LED2 = 1; MIC_PTT = 1; while(MIC_SW2 == 0) ; MIC_PTT = 0; MIC_SEL2 = 0; MIC_LED2 = 0; } if (MIC_SW3 == 0) { MIC_SEL3 = 1; MIC_LED3 = 1; MIC_PTT = 1; while(MIC_SW3 == 0) ; MIC_PTT = 0; MIC_SEL3 = 0; MIC_LED3 = 0; } if (MIC_SW4 == 0) { MIC_SEL4 = 1; MIC_LED4 = 1; MIC_PTT = 1; while(MIC_SW4 == 0) ; MIC_PTT = 0; MIC_SEL4 = 0; MIC_LED4 = 0; } } } //**********************************************************************

動作確認

基板に実装したところです。

これをケースに組み込む部分は無線仲間(JA3WGH局)が担当して頂けました。感謝!

このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。詳細 This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.Details