jl7gmnのblog

yahooブログから移行してきました。アマチュア無線を中心としたブログです。

2017年09月

バーチカルアンテナのバンド切り替え用コントローラ回路その5

バーチカルアンテナのバンド切り替え用コントローラの制作の残っている作業を行いました。

まずは、各リレーのキックバック吸収用ダイオードの取り付けです。
RL1                  RL2
イメージ 1 イメージ 2
          RL3
イメージ 3
実は、リレーのコントロール用の配線ワイヤーの色は、今回は赤がマイナスで、黒がプラスなんです。(先の回路図でCOM(コモン)の黒が+12V)紛らわしいですが、そうしています。つながれば特に線材の色は問題ありません。Hi!

あとは、コントロール線用のメスコネクタの配線です。

端子は半田付けと圧着端子で処理します。
イメージ 4

コネクタ側は収縮ヒシチューブで処理します。
イメージ 5

コントロール用メスコネクタの本体への取り付けです。
圧着端子は、ターミナルに接続します。
イメージ 6

コネクタ取り付け外観
イメージ 7

一通り、テスタと電源を使い、リレー回路の接続の動作確認を手動で行いました。問題なく、設計通りにリレーが動作しました。

ほぼ完成のバーチカルバンド切り替えコントロールボックス
コイルは、ホットボンドで板に取り付け固定しました。
イメージ 8

後は、アース端子をどうするかが、残っています。Ḿ型コネクタにはバーチカルなのでアースに繋ぐ必要があります。Ḿ型コネクタに圧着端子を使い取り付けるか、本体にボルトねじ止めで用意するか(古い穴を利用するか?)別にコネクタのそばにボルトねじ止めの穴をあけるか?最後の1点 どうするかが残りました。

つづく?



バーチカルアンテナのバンド切り替え用コントローラ回路その4

バンド切り替えリレー回路の実際のレイアウトをリレーとの配線を考えほぼ決定しました。各バンド同調用のバリコンの取り付け用アルミ板の加工と取り付け、バンド切り替え用リレーの取り付け1.9MHz(1.8MHz)用コイル、3.5MHz用コイル、3.8MHz用コイルの配置とリレーのターミナルとの接続の一部半田付けを行いました。コイルの配置は、先の仮配置とは、全く違う配置となりました。やはり、リレーやら、ターミナル端子などとの配線を考慮すると、変わります。Hi!

 アルミにバリコン用の取り付け穴をあけました。
ローターシャフトはアルミに接触しない様に
シャフト径より大きな穴にしてあります。
イメージ 1

ケースに取り付けとアンテナ端子とバリコンの半田付け
イメージ 2

アンテナ取り付け用端子
穴が1つ残っていますが、愛嬌です。
後でふさぐか、GNDにするか、検討中
イメージ 3

コイル配置とリレーの取り付け配線
イメージ 4

コントロール用の3つのリレーの取り付けは、今回は手抜きですが、ホットボンドで板に接着しました。ネジも何もいらないので超便利で助かります。結構しっかりとリレーが固定できます。ホットボンドが固まると、ちょっとやそっとでは、取れません。
残りの作業は、アンテナ端子、各バンドコイルとリレーの配線、制御用コントロール線のコネクタ配線、キックバックダイオードの取り付け、コネクタ取り付け等々他、です。時間を見て、行います。

なお、今回はリレーは2回路のリレー端子を並列にしてダブルで使用してますので、片側の接点がだめになっても、もう片方で接続されるという安全策をとっています。使いまわしのリレーなので、ケースを開けて接点復活スプレー(通電復活)を端子に噴射して、ON/OFFを行い端子になじませています。端子の接触抵抗がかなり改善されています。

今日も、ひと眠りして起きてからのブログ投稿です。最近はこのパターンが多くなってきました。さすが、昼、ご飯を食べた後は、眠さが出ます。最低でも5時間は寝たいです。

つづく?

バーチカルアンテナのバンド切り替え用コントローラ回路その3

早速、回路も3バンドから4バンドへの変更がほぼ決まったので、各バンドのコイルを巻き、実際に7MHzバーチカルアンテナに繋ぎ、各バンド調整できる状態までコイル試作しました。全バンド実際に仮接続して、問題ないことを確認しています。

今現在は、制作中にも3.5MHzに出られるように、別の空芯コイルとバリコン(350PF)を7MHzバーチカルアンテナに繋いで、3.5MHzで仮運用中です。インピーダンスの変換コアも使用しています。インピーダンス変換をしないとSWRが少し高い為、インピーダンスの調整用のバランを使用する事にします。このバランは本当に便利でいろいろなインピーダンスに変換が可能です。考案者はJA1BBE(出野OM)です。現在は、ホームページのプロバイダーが止めてしまったようで、直接の資料は見れませんが、探せば、どこかネット上にあると思います。今回はスペースがあまりないので、外付けとすることにしました。

追記'170920:自分のブログに少し記載してました。リンク張りました。
最近は物忘れが少し....思い出したから、まっいいか!
イメージ 4

このバラックの3.5MHzアンテナで昨日は7局とコンタクトできています。
                   こんなバラックでもマッチング十分です
イメージ 2 イメージ 3

実際に作ったのは、1.9MHz、3.5MHZ、3.8MHzの3コイルです。3.5MHzと3.8MHzはほぼ同じコイルです。直径は全コイルすべて35Φ、試運転とは別に密巻としました。密巻でも確認しましたが、全く問題ありませんでした。コイルは網戸の芯の段ボールを利用して作成です。ホットボンドも使います。網戸ネット取り付け後には捨てる段ボールの芯ですが丁度いいサイズで利用できました。後は、各バンドのコイルと、切り替え用3個のリレー、同調用各バリコン3個と、同軸コネクタメス、リレーコントロールケーブル接続コネクタ、実際のレイアウトを実態的に検討確認です。

イメージ 1

コントロールボックスは以前作成した物を汚れを落とし、磨きなおして、再利用です。うまい具合に同軸メスコネクタと、リレーコントロールコネクタ(メス)コネクタ用の取付穴はそのまま使用できます。Hi!
まだ、リレー3個の取り付け方法、コイル取り付け方法、バリコン取り付け方法とかは、思案検討中です。取り付け方法が決まったのは、バリコンです。バリコンを、アルミの板を切って穴を3個開けて蓋を開けた時にそれぞれのツマミで調整できるようにしたいと思います。

この、色々と、これは、どうしようかと考えているときが、一番楽しいです。
バーチカル用の4バンドコントロールボックスを制作しながら、もうすでに、以前作成し、うまく動作した3.5MHzの短縮ロータリーダイポール、知る人ぞ知る?(ガママッチ)ダイポールの再制作準備をしています。(参照:HAM Journal No.89)

今回のコントロール回路の心臓部のPIC周辺のパーツ(TR、抵抗、ダイオード、SW他)も、準備しました。やることがいっぱいあり、ペンディングしている他の事も結構あります。それぞれは、やれると、気持ちが動いた時が来たらやりましょう!!

つづく?

バーチカルアンテナバンド切り替え用コントローラー回路その2

ひと眠りして、目がさえたので、先のアンテナコントロール回路の実験がうまくいったのでそのゲート回路について防備録兼ねてのブログ投稿です。
3バンドのバーチカルアンテナの回路を4バンドにすべく検討しました。理由は単純に1.9Mz(1.8MHz)も追加したい為です。今までの、3.5MHz,3.8MHz,7MHzの切り替えの回路をそのまま使いたい思いがあったのですが、物理的に使用したPICのPIC12F675(8P)では3入力4出力を要するのでポート1つが足りない勘定です。そこを何とか同じPICでやろうという訳です。先に検討したPICでの実際のリレーコントロール出力をみると以下の3通りです。
7MHz 、3.8MHz、 3.5MHzの順(1は出力ON 0はOFF)
100
010
001
ここにない状態を1つ付けたしたいのですが、一番簡単なのが、次の
000
です。
出力がない状態を1.9MHzとするように3入力のSWをプログラムします。
なぜ、000にしたかというと、ゲートにてPICで出力できない(ポートが足りない)分をハードでカバーするためです。単純に000と3出力が出たときに出力するゲート回路を組めばいいのです。しかも、000 3出力を入力として出力1を出すだけです。そのまま単純に真理値表からNORゲートが当てはまります。私の場合は、手持ちゲートICの都合から実際に組むにはNORをNAND回路に変換して、汎用ゲートICで構成です。
イメージ 1

前のPIC&コントロール回路を変更します。
イメージ 2
3芯ケーブルは必然に、4芯ケーブルに変更になります。ゲート回路とSWトランジスタ回路の追加です。また、入力のGP3は内部プルアップがないので、外付けでプルアップが必要です。他は、プログラム設定でプルアップ設定できます。(GP4,GP5)

アンテナの切り替えリレー部も変更します。各バンド毎の設定に換えました。実際に調整が楽だったためです。
イメージ 3


実際のゲート実験回路です。実験というより、単純に配線しただけですが。。。
イメージ 4

前作成の回路とドッキングです。
イメージ 5
SW3の入力 3番PIN(GP3ポート)追加と1.9MHzのLED出力追加です。

以下、PIC12F675の3入力にての4バンドコントロールプログラムです。7MHzにSWで選択されているときは、SW2,SW3は押しても出力は7MHzから変わらないようにプログラムしてます。SW2,SW3の同時押しでも同じです。なお、電源が入った状態では、バーチカルアンテナの7MHzのデフォルト設定です。

int main(int argc, char** argv) {
    OPTION_REG = 0b00000010;//prescale 8 デジタルI/Oに内部プルアップ抵抗を使用する
    CMCON      = 0x07;       //コンパレータは使用しない
    ANSEL      = 0b00000000; //アナログは使用しない(全てデジタルI/Oに割り当てる)
   //TRISIO     = 0b00110000; //GP4,GP5だけ入力その他のピンは出力に割り当てる(GP3は入力のみ)
 
    TRISIO     = 0b00111000; //GP5,GP4,GP3だけ入力その他のピンは出力に割り当てる(GP3は入力のみ)
   //WPU        = 0b00110000; // GP4,GP5 PULLUP
 
    WPU        = 0b00110000; // GP5,GP4,GP3 MANUAL PULLUP
    GPIO       = 0b00000000;  //出力ピンの初期化(全てLOWにする)
    while(1)
    {
        if ((GPIO5 == 1) && (GPIO4 == 1 ) && (GPIO3 ==1)){ 
            Delay_ms(10);
            GPIO2 = 0;     
            GPIO1 = 0;
            GPIO0 = 1;     //7MHz Nominal
        }else{
            if((GPIO5 == 1 ) && (GPIO4 == 1) && (GPIO3 == 0)){
                Delay_ms(10);
                GPIO2 = 0;
                GPIO1 = 0;
                GPIO0 = 1;
            }else{
                if ((GPIO5 == 1) && (GPIO4 == 0 ) && (GPIO3 == 1)){  
                    Delay_ms(10);
                    GPIO2 = 0;     
                    GPIO1 = 0;      // 3.5MHz
                    GPIO0 = 1;
                }else{
                    if ((GPIO5 == 1) && (GPIO4 == 0) && (GPIO3 == 0)){
                        Delay_ms(10);
                        GPIO2 = 0;
                        GPIO1 = 0;
                        GPIO0 = 1; //7MHz
                    }else{
                        if ((GPIO5 == 0) && (GPIO4 == 1 ) && (GPIO3 == 0)){ 
                            Delay_ms(10);
                            GPIO2 = 0;     //1.9MHz
                            GPIO1 = 0;     
                            GPIO0 = 0;
                        }else{
                                if ((GPIO5 == 0) && (GPIO4 == 0 ) && (GPIO3 == 0)){ 
                                    Delay_ms(10);
                                    GPIO2 = 0;   //1.9MHz
                                    GPIO1 = 0;
                                    GPIO0 = 0;  
                                }else{
                                    if ((GPIO5 == 0) && (GPIO4 == 0) && (GPIO3 == 1)){
                                        Delay_ms(10);
                                        GPIO2 = 1;  //3.8MHz
                                        GPIO1 = 0;
                                        GPIO0 = 0; 
                                    }else{
                                        if((GPIO5 == 0) && (GPIO4 == 1) && (GPIO3 == 1)){
                                            Delay_ms(10);
                                            GPIO2 = 0;
                                            GPIO1 = 1;  //3.5MHz
                                            GPIO0 = 0;
                                        }else{
                                            GPIO2 = 0;
                                            GPIO1 = 0;
                                            GPIO0 = 0;
                                            Delay_ms(10);
                                        }
                                    }
                                }
                            }  
                    }
                }
            }
        }
    }
}
// 1mS x ms ウェイトルーチン
static void Delay_ms(unsigned char ms){
    unsigned char c;
    for (c=ms; c>0 ;c--){
        Delay_1ms();
    }
}
// 1ms ウエィトルーチン
static void Delay_1ms(){
    unsigned int cnt;
    unsigned int i;
    cnt = 76;
    for (i=0; i<cnt ; i++){
        NOP();
    }
}

余談ですが、4バンド用で、SW3を外せば(使わなければ)、前の3バンドの切り替えそのまま使用できます。今回はオプション的な追加でもあります。

つづく?

バーチカルアンテナバンド切り替え用コントローラー回路

7MHz 1/4λのバーチカルアンテナに延長コイルを追加して、3.5MHzと3.8MHzのバンド追加を構想した。以前もリレーで切り替え使用していた回路がありましたが、今回は、アンテナがどのバンドになっているかをLEDを点灯表示させる表示回路を考えてみました。案外と2つのSWでバンドを切り替えを行うには、少し条件がいります。SW1とSW2で制御するのですが、SW1で7MHzになっているときは、SW2が効かないようにしなければなりません。SW1が3.5/3.8MHzに選択されているときだけ、SW2が効くようにするためには、やはり論理回路で組むのが得策です。

真理値表です。
----入力----    -----出力--------
SW1   SW2     7    3.5    3.8
0        0      1    0    0
0        1            1      0      0
1        0            0      1      0
1        1            0      0      1

最初に考えた論理回路です。
(ANDゲート,INV,BUFの3種類で構成です。)
イメージ 1

上記の制御回路にて、SWトランジスタ回路でリレー2個を制御します。3.8MHzはLED表示用のみです。
イメージ 2

リレー2個でバーチカルアンテナに延長コイル2個を付けて3.5MHzと3.8MHzを切り替えます。
イメージ 3

上記は、大まかな回路ではありますが、現実的な面で、コントローラでANDゲートをそのまま使用してもいいのですが、汎用のNANDゲート(4011)にて構成するように書き換えてみました。(ANDとNOTを書き換えです。H!)
イメージ 4

しかしながら、4011のNAND(2入力4個入り)を4個も用意する必要があります。てがるな、4011ではありますが、BUFをふくめてもゲートIC数が5個です。かえって最初の回路のAND回路の場合のほうが4個ですみます。

ここで、発想の転換で、ハードではなく、ソフトウェアでゲート回路の動作をプログラミングしてみました。回路的には、2入力SWに対して3出力が制御できれば良いことになります。一番使いやすい8ピンのPIC 12F675等がマッチします。
簡単に、プログラムのコーディング構想として、ササッと書いたものが次になります。

IF SW1=0 AND SW2=0
THEN OUT1=1,OUT2=0,OUT3=0 ;7MHz
IF SW1=0 AND SW2=1
THEN OUT1=1,OUT2=0,OUT3=0 ;7MHz(SW2が効かないようにしてます)
IF SW1=1 AND SW2=0
THEN OUT1=0,OUT2=1,OUT3=0 ;3.5MHz
IF SW1=1 AND SW2=1
THEN OUT1=0,OUT2=0,OUT3=1 ;3.8MHz
上記の仕様でPIC12F675のコーデイングを行いました。

設定部は省略でメインのコーディングです。
******************************************************
int main(int argc, char** argv) {
    OPTION_REG = 0b00000010;//prescale 8 デジタルI/Oに内部プルアップ抵抗を使用する
    CMCON      = 0x07;       //コンパレータは使用しない
    ANSEL      = 0b00000000; //アナログは使用しない(全てデジタルI/Oに割り当てる)
    TRISIO     = 0b00110000; //GP4,GP5だけ入力その他のピンは出力に割り当てる(GP3は入力のみ)
    WPU        = 0b00110000; // GP4,GP5 PULLUP
    GPIO       = 0b00000000;  //出力ピンの初期化(全てLOWにする)
    while(1)
    {
        if ((GPIO5 == 1) && (GPIO4 == 1 )){  //2番,3番ピン(GP5,GP4)のスイッチが押されたか?
            Delay_ms(10);
            GPIO2 = 0;     
            GPIO1 = 0;
            GPIO0 = 1;     //7MHz Nominal
        }else
            {
                if ((GPIO5 == 0) && (GPIO4 == 1 )){  // 7,3.5MHzSW on(0)  3.5,3.8MHzSW off(1)
                    Delay_ms(10);
                    GPIO2 = 0;     
                    GPIO1 = 1;      // 3.5MHz
                    GPIO0 = 0;
                }else{
                        if ((GPIO5 == 0) && (GPIO4 == 0 )){  //7,3.5MHzSW on(0)  3.5,3.8MHzSW on(0)
                            Delay_ms(10);
                            GPIO2 = 1;     //3.8MHz
                            GPIO1 = 0;     
                            GPIO0 = 0;
                        }else{
                                if ((GPIO5 == 1) && (GPIO4 == 0 )){ //7,3.5MHzSW off(1) 3.5,3.8MHzSW on(0)
                                    Delay_ms(10);
                                    GPIO2 = 0;
                                    GPIO1 = 0;
                                    GPIO0 = 1;  //7MHz
                                }else{
                                    GPIO2 = 0;
                                    GPIO1 = 0;
                                    GPIO0 = 0;
                                    Delay_ms(10);
                                }
                            }  
                    }
            }
    }
}
***********************************************************
簡単なIF分でのコーディングのみで出来てしまいます。
PIC12F675の実験時の実際の回路構成です。ブレッドボードに組みました。
イメージ 5

コーディング後にライターで書き込みです。
イメージ 6

コーディング、書き込み、チェックを繰り返してデバッグして完成した動作の動画です。仕様通りに動作してくれています。

PIC12F675を使用した場合の回路は下記になります。
イメージ 7
たった1個のPICで、先のゲート回路と同じ動作が出来てしまいました。やはりソフトウェアのほうが回路もシンプルになります。
久々にPICコーディングしました。Windows10にインストールしたMPLABでコーディングしましたが、最初PICの認識ができなくて、あせりました。単純に端子の酸化による接触不良がトラブルの原因でした。端子を数回ゴシゴシと酸化膜をはがすことで解決しました。久々に使用するとこんなことになります。Hi!

ゲート回路を考えること自体が最高に面白いですが、今はやはりハードよりソフトウェアのほうが、全体の作業も楽で、簡単になり、仕様も任意に変更対応できるので望まれる時代のようです。しかしながら、久々に頭の体操になりました。

アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード
  • ライブドアブログ