無線ブログ集
メイン | 簡易ヘッドライン |
リンク 単体表示
jl7gmnのblog (2024/7/3 7:06:06)
現在データベースには 156 件のデータが登録されています。
TS820-DDS-VFOその9
(2022/2/28 3:50:10)
#define freq01 1815000
#define freq02 3550000
#define freq03 7150000
#define freq04 14150000
#define freq05 15000000
#define freq06 18120000
#define freq07 21250000
#define freq08 28100000
#define freq09 28500000
#define freq10 29000000
#define freq11 29500000
DDS-VFO回路3基板のTS820本体とのドッキング確認が済みましたので、表示部のTFT液晶、デジタルサブダイヤルをフロントパネルをはずし取り付けることにしました。先ずはTFT液晶のTS820本体のサブダイヤル窓から見た時の不要な箇所が見えない様に目隠し板を作成し取り付けします。
光沢紙はがきを黒マジックで塗りつぶしたものです。まどから十分隠せる分だけ両面テープを使い貼り付けしています。TFT液晶は更に強力な両面テープを3重に重ねてフロントパネルに貼り付ける算段で進めます。
フロントパネルを通して基板に繋いであります。接続ケーブルもTFT液晶に応力が
かからないように適当に曲げて設置します。強力な両面テープなのでまず剥がれる
事は無いと思います。前の外部VFOに設置したときと同じ方法で、実績があります。
先ずはTFT液晶ディスプレイをフロントパネルに取り付けて見ました。取り付けの際に前のサブダイヤルの豆球の取り付け金具は外しています。金具があると取り付けが出来ません。
取り付けての確認です。見た目、中々、いい感じです。
ついでにTS820本体の周波数表示管も元のように取り付けします。そしてダイヤルを取り付けます。
外してたツマミ類を元のように取り付けて戻します。
3.5MHzのQSOを聞きながらの作業です。
周波数表示が2つあるので、バンド毎の周波数の違いを見てみました。
結果、元々の周波数表示部とDDS-VFOのTFT液晶表示上の周波数表示はバンドにより若干ズレがありました。本体の局発のズレが元々の周波数表示管ではそのまま出ます。DDS-VFOはバンドSWを変えても変化はしない仕様にてスケッチしてあります。本体の周波数表示はバンドSWを変えても変わらないようにするにはズレのあるバンドの局発の周波数を微調整しないと修正は出来ません。支障がないのでそのままにしておきます。
表示部の拡大写真です。
本体の周波数表示は100Hzの桁までですが、DDS-VFOでは10Hzまでの表示です。
7MHzでの周波数表示です。電源オン時7.150MHzで起動されるソフトウェア仕様です。
ちなみに電源オンでの各バンドでの初期設定周波数は自己都合でスケッチの定義部で下記設定にしてあります。(TS820本体の設定バンドSW位置での電源ON時の起動周波数になります。)定義なので、好きに変えることが出来ます。
// presett frequency default 2020.oct.18#define freq01 1815000
#define freq02 3550000
#define freq03 7150000
#define freq04 14150000
#define freq05 15000000
#define freq06 18120000
#define freq07 21250000
#define freq08 28100000
#define freq09 28500000
#define freq10 29000000
#define freq11 29500000
7MHzの周波数表示部の拡大写真です。
本体の上蓋を取り付けて完成としました。
DDS-VFOに変わっていますので、送信出力の確認も行ないました。
各バンドでの出力も90Wと元のアナログLC発振のVFOと同じ仕様通りの出力で問題ありません。
ひとまず組込完了です。アナログ機構のサブダイヤルがデジタルのサブダイヤルに代わり、また周波数表示も付くディスプレとして、リニューアルする事が出来ました。仕様もアナログVFOと同じくバンドを変えても周波数は同じになる様にソフトウェアで対応していますので、元のアナログVFOと遜色なく使うことが出来ます。違いは周波数の安定度が良くなった事です。新たにソフトウェアで追加する項目が残っていますが、先ずはQSOで試験運用を行ないたいと思います。実際のコンディションの良い時にDDS-VFOでの受信の動画なども撮りたいと思います。
あらためてデジタル式サブダイヤルのVFOsysのスケッチを公開していただいたJF3HZB局UEBO氏には感謝いたします。
つづく?
TS820-DDS-VFOその10
(2022/2/28 3:49:23)
私のDDS-VFOでの周波数ズレ値としては下側に150Hzでした。 awase が+150Hzでドンピシャの周波数となっているのでこの150Hzに対して加算、減算してRIT周波数変化させるスケッチの追加になります。
DDS-VFOにしたTS820本体の試験運用、国内局との交信テストでやはり機能不足が確認出来ました。いわゆる周波数ズレで呼んでくる局です。聞き取りにくい受信時には、やはり相手にゼロイン受信するためにはRITが必要です。(KENWOOD:RIT、YAESU:クラリファイア)受信の周波数のみ変化させ、送信周波数は変わらないRIT機能をDDS-VFOに追加する必要が出てきました。
先ず、RITの周波数をどうやって変化させるかを考える必要があります。ロータリーエンコーダーをシフトモードなどにしてRIT動作させる方法は良く使われている方法の様ですが、メインのロータリーエンコーダーには触りたくありません。よって他の方法を考えることにしました。
単純に押し釦式SWをクリックする方法でやってみることにしました。USBモード,LSBモードと+側もー側も両方合わせられなければなりませんこれが必要条件です。先ずは仕様を考えます。イメージとして、周波数の動きやその時のステップ等を下記の様に考えました。この様な方式のRITの無線機への搭載は過去見たことはありません。実用性は別にして、カッコ良く言わせてもらえば、
世の中では初の押し釦式のRIT方式スケッチ部かと思います。なので、私のTS820本体組込のDDS-VFOに初方式での追加初搭載になります。Hi!
(オリジナルのDDS-VFOはJF3HZB局、上保氏の作製デジタルサブダイヤル式DDS-VFOのVFOsysスケッチです。このVFOsysをTS820本体用の組込DDS-VFOにモディファイし、新たに独自方式のRITスケッチ部を追加したものになります。)
【RIT追加仕様】
■ESP32DevKitCにRIT-SW用と送受信用の2入力ポートを割り当てます。
送受信切り替え用の入力ポートには電源投入時に出力してたポート0を止めて割り当てます。
RIT-SW用に空きのポート17を入力ポートとして割り当てます。
■送信周波数を0とし基準周波数とします。受信周波数も初期時0
■周波数のステップ:100Hz(RIT-SWを押すごとに動かす周波数は100Hzとします。)
RIT-SWをずっと押しっぱなしの間自動でステップ変化。RIT-SWワンプッシュで1ステップ動作
■周波数の偏移:基準周波数に対しRIT-SWプッシュで受信時の受信周波数だけを可変、送信周波数はいつも基準周波数0(エンコーダーを止めた位置)送受信は最初同じ0(ゼロイン)
RIT-SWを押した時の周波数の偏移
0>+100>+200>+300>+400>+500>+400>+300>+200>+100>0>-100>-200>-300>-400>-500>-400>-300>-200>-100>0> [Hz] 繰り返し元の0へ
送信周波数を中心に受信周波数のみ±500Hz動かす仕様です。実践で使ってみて周波数変化量が足りなけれは増やします。
ESP32DevKitCに追加するポートは余りの中から何とか選び出しました。
RIT-SW
:PORT 17 // 連続Lで自動ステップ動作、単発Lで1ステップ動作 通常時:H
TX/RX-SW:PORT 0
// 送信時:L 、受信時:H
----------------------------------------------------------------------------------------------------------------------------------------
RIT機能追加の為のスケッチの追加箇所
周波数設定の心臓部である周波数設定項にモディファイスケッチ追加してある awase を利用
することにしました。
void task0(void*
arg)ルーチン部にTS820様にヘテロダインとズレ分のスケッチ追加変更した部分のawase値です。
//set_freq( frq +
offset_frq );
set_freq( HET_FREQ - frq + offset_frq + awase ); //change to ts820vfo
現状の周波数のズレ分の
+150Hzを使います。ここが基準となります。使用するDDS用ICにより周波数ズレ分はまちまちですので、必ずしも150Hzとはならないので、実際の周波数のズレに合わせて設定します。ご注意下さい。
const long awase = 150;
このままでは固定値での設定なので、下記の
バリアブル対応の変数に変えます。
long awase = 150;
私のDDS-VFOでの周波数ズレ値としては下側に150Hzでした。 awase が+150Hzでドンピシャの周波数となっているのでこの150Hzに対して加算、減算してRIT周波数変化させるスケッチの追加になります。
ステップアップ用のカウンタ変数にsを設定
int32_t s =
0;
入力ポートを2つ追加
#define RX_RIT 17 //
LOW THEN RX MODE RIT 2022/feb/15 add
#define TX_SW 0 //TX-RX change SW 2022/feb/15 add
#define TX_SW 0 //TX-RX change SW 2022/feb/15 add
setup(){ ルーチン内でのポート設定も追加します。 出力ポート0を送受信切り替えの入力ポート
に設定し直し。RIT-SWをポート17に入力ポートとして設定。
// pinMode(START_ON, OUTPUT);
// ポート0 START TORRIGGER OUTPUT
pinMode(TX_SW,INPUT_PULLUP); //ポート0、TX/RX
SW INPUT: (L: TX、H:RX)
// RX_RIT TEST
// RX_RIT TEST
pinMode(RX_RIT,INPUT_PULLUP); //DIGITAL INPUT 17 ;
上記の設定追加後の void loop(){
ルーチンの各バンドのヘテロダイン設定ルーチン後に以下 送受信SWとRIT-SW用のスケッチ を追加します。
void loop (){
〜省略
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==HIGH))))))))))){ //1.9MHz
HET_FREQ = HET_FREQ01;
if(p==0){
frq = freq01;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
p=1;
}
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==HIGH))))))))))){ //1.9MHz
HET_FREQ = HET_FREQ01;
if(p==0){
frq = freq01;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
p=1;
}
if(digitalRead(TX_SW)==LOW){ //Port 0
awase = 150;
}
else{
if(digitalRead(TX_SW)==HIGH){
if(digitalRead(RX_RIT)==LOW){ //Port 17
s = s+1;
delay(200);
if(s == 0){
tawase = 0;
}
if(s == 1){
tawase =100;
}
if(s == 2){
tawase = 200;
}
if(s == 3){
tawase = 300;
}
if(s == 4){
tawase = 400;
}
if(s == 5){
tawase = 500;
}
if(s == 6){
tawase = 400;
}
if(s == 7){
tawase = 300;
}
if(s == 8){
tawase = 200;
}
if(s == 9){
tawase = 100;
}
if(s == 10){
tawase = 0;
}
if(s == 11){
tawase = -100;
}
if(s == 12){
tawase = -200;
}
if(s == 13){
tawase = -300;
}
if(s == 14){
tawase = -400;
}
if(s == 15){
tawase = -500;
}
if(s == 16){
tawase = -400;
}
if(s == 17){
tawase = -300;
}
if(s == 18){
tawase = -200;
}
if(s == 19){
tawase = -100;
}
if(s == 20){
tawase = 0;
}
}
if(s>20){
s=0;
}
if((s==0)or(s==10)or(s==20)){
awase = 150;
}
awase = 150 + tawase;
}
}
awase = 150;
}
else{
if(digitalRead(TX_SW)==HIGH){
if(digitalRead(RX_RIT)==LOW){ //Port 17
s = s+1;
delay(200);
if(s == 0){
tawase = 0;
}
if(s == 1){
tawase =100;
}
if(s == 2){
tawase = 200;
}
if(s == 3){
tawase = 300;
}
if(s == 4){
tawase = 400;
}
if(s == 5){
tawase = 500;
}
if(s == 6){
tawase = 400;
}
if(s == 7){
tawase = 300;
}
if(s == 8){
tawase = 200;
}
if(s == 9){
tawase = 100;
}
if(s == 10){
tawase = 0;
}
if(s == 11){
tawase = -100;
}
if(s == 12){
tawase = -200;
}
if(s == 13){
tawase = -300;
}
if(s == 14){
tawase = -400;
}
if(s == 15){
tawase = -500;
}
if(s == 16){
tawase = -400;
}
if(s == 17){
tawase = -300;
}
if(s == 18){
tawase = -200;
}
if(s == 19){
tawase = -100;
}
if(s == 20){
tawase = 0;
}
}
if(s>20){
s=0;
}
if((s==0)or(s==10)or(s==20)){
awase = 150;
}
awase = 150 + tawase;
}
}
}
ブレッドボード上での動作試験はほぼ完了しているのですが、組込の為には、本体からのTX信号(送信時:”L”、受信時
:”H"
;+3.3V)を準備する必要があります。TS820本体の回路図を見て回路追加ありも考慮の上,TX/RX信号線を用意しなければなりません。RIT-SWもロック無しタイプのSWに交換しないといけません。本体の元々のRIT-SWの交換(ロック無しSWに変更)用SWがあるのかも探さないといけません。まだまだやることがたくさんあります。先ずは実機動作確認が重要ですので、仮のボタンSWを使いRITテスト運用したいと思っています。
VFOsysはJF3HZB局 上保(uebo)OM の公開のデジタルサブダイヤルDDS-VFO スケッチ
です。私なりのスケッチ追加にて全バンド化モデファイしTS820Sの本体のアナログVFOと入れ替えたものです。
上保氏のホームページからリンクされたgithub.comにスケッチがあります。ここのVFOsysを使わさせていただきました。
UEBO氏には、重ね重ね、お礼申し上げます。
https://tj-lab.org/2019/02/15/vfo4/
https://github.com/tjlab-jf3hzb/Digital_VFO_with_analog_dial
つづく?
TS820-DDS-VFOその11
(2022/2/28 3:47:47)
黄色の半田付けされた線が2本ありますが、一つは(下側)がTX-SWへ、もう一つはタイマーIC555のパルス出力のESP32DevKitCの入力ポートへ来ている別回路の信号確認用の線です。RIT動作には関係ありません。パスコンが付いているのがTX-SW,RIT-SWのESP32DevKitCの入力端子です。赤がRIT-SWへ繋がっています。
2番と4番を繋ぐと送信になります。
TS820-DDS-VFOのテスト運用にて新たな追加機能のRITをブレッドボードにて作製し、問題ないレベルまでになったので、早速予定通りに実機でのRIT動作の確認を行ないました。
結果から言いますと、うごきませんでした。RIT機能追加スケッチを書き込んだESP32DevKitCを前の物と入れ替えし、RIT-SWと送信SWを引き出し繋ぎ、電源投入した時点では動作してくれませんでした。ブレッドボードで確認をし直しましたが、特に問題はありません。TS820に組み込んだ作製基板では動いてくれません。DDS-VFO自体は動作は問題ないのですが、RIT-SW、送信SWを読み込んで動いてくれません。先ずは解析です。
なぜ、動かないかをオシロスコープで確認しました。単純にESP32DevKitCのRIT-SW入力とTX-SWの通常時”H” RIT、TX動作時それぞれのポート0とポート17が”L”になっているかを確認しました。2つの入力ポートはSWを押すと、押している間はどちらも問題なく”H”から”L”へと信号が切り替わり正常入力されています。ESP32DevKitCの入力は2ポートとも問題はありません。とても不思議な現象です。入力ポートに正常な信号が行っているのに、動作しないという現象が起きています。一応念の為、もう一つ別のESP32DevKitCにスケッチを書き込みして、入れ替えでの確認もしました。別のESP32DevKitCに変えても同じで動作しません。動作しないESP32DevKitCをブレッドボードに付けてRIT-SW、TX-SWを確認すると問題なく動作します。何か不思議な世界に入り込んでしまった様で、狐につままれた感じです。念の為SWとの接続ミスがないか回路図とポートの位置を確認しました。問題ありません。ふと、アナログテスターでポート端子電圧をあたっていたら、周波数が変化しました。一瞬1回だけRIT動作した感じです。ただ肝心のRIT-SWプッシュでは周波数の変化は起きません。このような不安定な動作をしているのは、誘導等でノイズが誤動作を招いているケースがほとんどです。早速ノイズが原因と見越してノイズ対策をすることにしました。CNCの切削モーターも電源端子にノイズ除去用のパスコンを付けないと制御回路が上手く動作してくれない事がありました。ノイズは本当に動作を邪魔する信号となることが多いです。今回もDDS-VFOの+9Vの電源でTS-820の+9V電源を使うとロータリーエンコーダーを回す時のパルスノイズが電源回路を通してスピーカーから聞こえたり、送信時には電波にのるほどノイズが回り込みしていましたのですでに対策として、+9VのDCアダプターを別途用意し繋いであります。こうすることで無線機側へのノイズの回り込みは皆無となっています。前の外部VFOのDDS-VFOのときも電源はTS820本体からではDDSのロータリーエンコーダーのパルスノイズが電源ラインから回り込みしていました。この時も電源供給先をUSBから供給することで、パルスノイズは皆無となっています。これらの経験よりの対策です。今回はロータリーエンコーダーのパスルノイズではありませんが、誘導系のacの様なノイズが入力端子に”H”とも”L”ともどちらつかずの状態をおこしていると思われます。Arduinoのボード回路作製でもよくあります。こういう交流信号系のノイズ時の対策はパスコン追加です。結果から言いますと”ビンゴ”でした。0.01μFのパスコンをポート0、ポート17とGND間に追加して、問題なく動作するようになりました。引き回しも結構長いので、かなりノイズをうけていたと思われます。
一端基板をTS820から外し、+3Vのプルアップ追加と0.01μFパスコンを仮追加しました。
こんなにパスコンの足が長くても効果はあります。
黄色の半田付けされた線が2本ありますが、一つは(下側)がTX-SWへ、もう一つはタイマーIC555のパルス出力のESP32DevKitCの入力ポートへ来ている別回路の信号確認用の線です。RIT動作には関係ありません。パスコンが付いているのがTX-SW,RIT-SWのESP32DevKitCの入力端子です。赤がRIT-SWへ繋がっています。
右の赤いワイヤーがRIT-SW、左の黄色いワイヤーが送信SW抵抗は単にブレッドボードへ差すコネクション用としてリード線部のみ使っています。青と右の黄色ワイヤーがGNDです。
上がオリジナルのTS820の周波数表示部です。受信時の周波数が表示されます。
下がDDS-VFOのエンコーダーでの周波数表示部です。上と下が同じ周波数でゼロイン状態です。
実際のRIT動作です。プラス側マイナス側へとそれぞれ最大500Hzまで動かす事が出来る仕様です。
仕様通り動いてくれています。PUSH-SW(RIT-SW)を100Hz/1プッシュずつ可変出来ます。
最後の方ではRIT動作時に受信周波数と異なる送信時のDDS-VF0のメイン周波数で送信できています。
上手くRIT動作しています。交信の内容は関係なく、周波数表示の確認用動画です。
最初はTS820実機でのPUSH-SWでのRIT追加が失敗したかと思いましたが、何のことない入力端子のノイズ回り込みがあり、これを対策する事でブレッドボード上のPUSH-SWでのRIT動作は問題なく実機で良好に動作を再現させる事が出来ました。
あと残る確認は送信時の切り替え回路との接続です。TS820の全面のマイク接続端子の2番端子に繋ぐ必要がありますが、+12Vかかっているので直接はつなげません。ESP32DevKitCの入力端子は3.3V仕様なので抵抗で分圧して合わせる必要があります。+12Vを+3.3Vにする抵抗分圧です。10KΩ以上を使います。マイク端子の接続は回路図からとMC-50のマイクロホン取説からの確認です。
2番と4番を繋ぐと送信になります。
+12Vを+3.3Vにするための分圧抵抗は大体ですが、計算上、26KΩと10KΩですが、存在してる抵抗1本では10KΩはありますが26KΩはありません。近い値として27KΩがありますのでこれを使います。およそ抵抗を流れる電流は0.3mAです。
次回TS820本体に繋いで受信のRIT時の送信動作が上手くゆくか確認して見たいと思います。
つづく?
15mバンドのWとの交信
(2022/2/14 22:41:54)
TS820の本体組込したDDS-VFOの試験運用をしようと思い21MHzを聞いてみると、何かいつもと違うバンドのノイズです。バンドをダイヤル回して見るとW(USA)の局が聞こえているではないですか?2001年頃の記憶が一瞬蘇って来ました。早速アンテナをW(South
America)に向けてCQ Callingです。その時の動画です。DDS−VFOを組み込んだTS820でのテスト運用です。その時の交信している動画を撮りました。
W(USA)、VE( Canada)合わせて15局との交信が出来ました。そうそう、ブラジル局PY3ZZ
RICOとも交信出来ています。
上記交信ログ中のKE6TZ局 KENとのQSOです。
へぼな英語のオペレートですみせん。私のデタラメ英語でなく、KENと
JONのネイティブ英語を聞いて下さい。素晴らしいです。
Sメータ信号の強力に振れているのも分かります。それとDDS-VFOも活躍しています。
ログリスト中のN7GK
GARY、及び KK7PW JONとの交信です。
DDS−VFOの実践テスト運用がWとの交信なんて、なんて運が良いのでしょう!サイクル25は間違いなく始まっています。タワーを修理して、DDS-VFOが組込完成して、実践テスト運用でWとのQSOができてるのです。何かに導かれてとった行動の様に思えなくもない不思議さを感じます。何かは、はっきりとはわかりませんが!何かがそう、させてくれているのかもしれません。不思議な国日本ですね!
しかし、自分の声を聞くとザワザワ感があり少し恥ずかしいですね!
つづく?
TS820-DDS-VFOその8
(2022/2/12 2:06:42)
この状態でバンドSWでの切り替え動作確認です。結果は、半分失敗でした。バンド情報の並びが上手くありませんでした。思い違いでGNDの位置が逆側になっていたことが原因でしたので、ハードはそのままで、ソフトウェアで修正をする事にしました。内容はD0からD11を全部入れ替えです。D11からD0
TS820の本体へのドッキングでの動作確認を行ないました。
基板の位置が斜めですが、問題なく本体のPLLボードからのバンド情報線がつながっています。
全部基板がTS820本体に繋がりました。
この状態でバンドSWでの切り替え動作確認です。結果は、半分失敗でした。バンド情報の並びが上手くありませんでした。思い違いでGNDの位置が逆側になっていたことが原因でしたので、ハードはそのままで、ソフトウェアで修正をする事にしました。内容はD0からD11を全部入れ替えです。D11からD0
D0はD11と言う具合に書き換えです。ヘテロダイン部の修正です。ついでに発振周波数が150Hz低かったので+150Hzに修正もしておきました。
修正コメントとしてスケッチ上に履歴記録もしています。
JAN/11:BAND PORT CHANGE D0 to D11 -> D11 to
D0
:awase set +150Hz
:awase set +150Hz
実際の修正箇所(青い色部)です。
awaseは定義部の修正です。
-----------------------------------------------------------------------------
const long awase = 150; //frequency [Hz]周波数補正
-----------------------------------------------------------------------------
void loop()部の中の修正です。
--------------------------------------------------------------------------------------------------------------------------------
if(digitalRead(CHANG_BAND)==LOW){ // IF pin16 L PULS IN (ordinary H level)
if(((((((((((digitalRead(TO_ESPD0)==HIGH) // "1" PLL OUT portD0-D10 condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //29.5MHz
HET_FREQ = HET_FREQ11;
if(p==0){
frq = freq11;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN,HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==HIGH)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //29MHz
HET_FREQ = HET_FREQ10;
if(p==0){
frq = freq10;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==HIGH)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //28.5MHz
HET_FREQ = HET_FREQ09;
if(p==0){
frq = freq09;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==HIGH)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //28.0MHz
HET_FREQ = HET_FREQ08;
if(p==0){
frq = freq08;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1, LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,HIGH); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==HIGH)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //21MHz
HET_FREQ = HET_FREQ07;
if(p==0){
frq = freq07;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1, LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,HIGH); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==HIGH)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //18MHz
HET_FREQ = HET_FREQ06;
if(p==0){
frq = freq06;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,HIGH); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==HIGH)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //15MHz WWV/JJY
HET_FREQ = HET_FREQ05;
if(p==0){
frq = freq05;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,HIGH); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==HIGH)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //14MHz
HET_FREQ = HET_FREQ04;
if(p==0){
frq = freq04;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1, LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==HIGH)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //7MHz
HET_FREQ = HET_FREQ03;
if(p==0){
frq = freq03;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1, LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==HIGH)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //3.5MHz
HET_FREQ = HET_FREQ02;
if(p==0){
frq = freq02;
f_dchange = 1;
f_fchange=1;//add 2020Dec12
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==HIGH))))))))))){ //1.9MHz
HET_FREQ = HET_FREQ01;
if(p==0){
frq = freq01;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
p=1;
}
if(((((((((((digitalRead(TO_ESPD0)==HIGH) // "1" PLL OUT portD0-D10 condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //29.5MHz
HET_FREQ = HET_FREQ11;
if(p==0){
frq = freq11;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN,HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==HIGH)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //29MHz
HET_FREQ = HET_FREQ10;
if(p==0){
frq = freq10;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==HIGH)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //28.5MHz
HET_FREQ = HET_FREQ09;
if(p==0){
frq = freq09;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==HIGH)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //28.0MHz
HET_FREQ = HET_FREQ08;
if(p==0){
frq = freq08;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1, LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,HIGH); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==HIGH)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //21MHz
HET_FREQ = HET_FREQ07;
if(p==0){
frq = freq07;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1, LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,HIGH); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==HIGH)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //18MHz
HET_FREQ = HET_FREQ06;
if(p==0){
frq = freq06;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,HIGH); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==HIGH)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //15MHz WWV/JJY
HET_FREQ = HET_FREQ05;
if(p==0){
frq = freq05;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2,HIGH); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3, LOW); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==HIGH)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //14MHz
HET_FREQ = HET_FREQ04;
if(p==0){
frq = freq04;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1, LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==HIGH)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //7MHz
HET_FREQ = HET_FREQ03;
if(p==0){
frq = freq03;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1, LOW); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
else{
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==HIGH)
and(digitalRead(TO_ESPD10)==LOW))))))))))){ //3.5MHz
HET_FREQ = HET_FREQ02;
if(p==0){
frq = freq02;
f_dchange = 1;
f_fchange=1;//add 2020Dec12
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, LOW); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
}
if(((((((((((digitalRead(TO_ESPD0)==LOW) // "1" BCD port condition check
and(digitalRead(TO_ESPD1)==LOW)
and(digitalRead(TO_ESPD2)==LOW)
and(digitalRead(TO_ESPD3)==LOW)
and(digitalRead(TO_ESPD4)==LOW)
and(digitalRead(TO_ESPD5)==LOW)
and(digitalRead(TO_ESPD6)==LOW)
and(digitalRead(TO_ESPD7)==LOW)
and(digitalRead(TO_ESPD8)==LOW)
and(digitalRead(TO_ESPD9)==LOW)
and(digitalRead(TO_ESPD10)==HIGH))))))))))){ //1.9MHz
HET_FREQ = HET_FREQ01;
if(p==0){
frq = freq01;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
//digitalWrite(LED_BUILTIN, HIGH); //CHANGE TO USE D0 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN1,HIGH); //CHANGE TO USE D1 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN2, LOW); //CHANGE TO USE D2 THERE'S NO OUTPUTPORT FOR USE
//digitalWrite(LED_BUILTIN3,HIGH); //CHANGE TO USE D3 THERE'S NO OUTPUTPORT FOR USE
}
p=1;
}
--------------------------------------------------------------------------------------------------------------------------------
上記のスケッチ修正で正常に本体のバンドSWを検出してくれました。ソフトウェアでの修正はハードをカバーするかなり有効な修正方法であることは間違いありませんね。ハード回路を作り直さなくても、ソフト書き換えでのみで対応出来ます。Hi!
早速、DDS-VFOでの受信確認を行いました。
実際の受信確認−1
今日は21MHzのコンディションもとても良い様です。
実際の受信確認−2
結構7MHzもコンディションが良くたくさん局が聞こえました。
受信以外にDDSでのSSB送信とキャリア送信のテストも行いました。特にひずみやハム音等の問題はありませんでした。
つづく?
タワーのプーリー交換修理
(2022/2/12 1:14:38)
ここの所ずっとクランクアップタワーを伸ばすことが出来ない状態で、修理待ちだったのですが、今日の天気は今の冬の時期ではありえない程快晴だったので、思い切ってプーリー交換修理実施することにしました。以前にタワー各部の保守部品と風力センサー部品や、保全用の蛇腹のグリス、グリススプレー、ワイヤーを注文し、手元に既に修理する為の物の準備は出来ています。また、今回のプーリー交換の手順の図や、専用グリス、スプレーする場所の説明書もいただいています。交換するときには直接説明するので電話をするように言われていましたので、修理実施直前に製作元の社長さんに電話をかけて、指示を仰ぎました。一通り手順を聞いて、納得した上でのプーリー交換修理開始です。とその前に1ヶ月前の強風でアンテナのマストクランプが折れてぶら下がっていたマルチバンドダイポールアンテを先ずは取り外しました。ロープでエレメントを吊って合ったのが正解でした。どこへも飛ばされずにタワーのそばにぶら下がってくれていました。
アンテナのエレメントも少し曲がってはいますが、まだ使えそうです。Hi
いよいよタワーのプーリー交換開始です。
先ずはタワーを規定の位置まで上げる作業です。これはウィンチからのワイヤーを緩める為に行う作業です。必要なものは角材です。規定の位置まで恐る恐る上昇ボタンを押しては、少し上げ、停止ボタンをを押す事を繰り返しました。壊れたプーリーからステンレスワイヤーがはずれないかが心配でしたが、何の事ない、壊れているベアリングがもしなくなっても大丈夫なほどプーリーは丈夫な材質でできているようです。
角材を入れた状態です。
角材を入れた状態で、タワーを下げる下降ボタンを押してウィンチに巻いてあるステンレスワイヤーを緩めます。下降ボタンを押しては、少し緩め、停止ボタンを押し、これを繰り返し行いました。
程よくステンレスワイヤーが緩んだ状態でスレンレスワイヤーをプーリーの上方に被覆銅線を使って吊ってプーリーの上にステンレスワイヤーが来るぐらいまでになればOKです。ステンレスワイヤーを引っぱった時40〜50cm幅位動く位でプーリーの交換取り外しが出来るようになります。実際はある程度緩めた後、タワーに登ってステンレスワイヤーを吊ってプーリーの上までステンレスワイヤーが来なくて、タワーから降りて、また緩めては登りのステンレスワイヤーの吊り位置確認を数回繰り返しています。うまく緩んだ状態で、タワーの電源コンセントを抜きます。
ウィンチのステンレスワイヤーが緩んだ状態です。
ついでにウィンチ部のサビが気になり後で少しサビ落としもしました。サビ落としの後はグリスを塗っておきました。
十分にステンレスワイヤーが緩んだ状態になってから、交換用の新品プーリー交換作業開始です。
交換時の道具は、プーリーの芯の抜け防止のピンを曲げるペンチ、芯を押し出す専用の鉄棒、それにハンマーです。なかの芯はプーリーが外せるまで専用の鉄棒をハンマーでたたき押し出しますが、私は押出した後壊れたプーリーと中の芯ぶれ防止パイプまで、雪の中に落としてしまい、芯ぶれ防止パイプを一時紛失してしまいました。押出時途中でプーリーの芯ブレ防止パイプを落とさない様にする注意が必要です。
新品のプーリーとプーリーの中心のブレ防止のパイプ、それに塩ビの輪を元と同じ位置にして芯を通し、交換しました。交換後は芯に抜け防止のピンを取り付け完了です。交換後は蛇腹の専用グリスをたっぷりとプーリーの軸ベアリング部に歯ブラシを使い塗ります。塗ると言うよりぬってから厚くおおいます。プーリーを手で回転させてもまんべんなく覆われている状態であることを確認し給油作業は終了です。
プーリー交換し給油作業終了後に吊っていたステンレスワイヤーを元の様にプーリーの溝にかかるように吊っていた被覆銅線を取り外します。タワーから降りて、タワーの電源を入れます。緩んだステンレスワイヤーを巻いてゆくのですが、ステンレスワイヤーどうしの位置がバラバラなのである程度緩みなく綺麗に左側に寄せ揃えて巻くように適度な寸法の木材の棒を使って少し押しながらちょっとずつ巻き上げてゆきます。少し上げては綺麗に揃え、また上げては綺麗に揃えを繰り返して、角材の上に載っていたタワーが、角材が取り外せる位置になるまでステンレスワイヤー揃えの巻上げを行います。角材が取り外し出来ればほぼ9割交換修理完成です。残りは巻き上げのウィンチ部とステンレスワイヤーにグリスを塗ります。最後にウィンチの給油ポイントにグリススプレーを吹き付け、モーターチェーン部にもグリススプレーを吹き付けます。最大まで延ばしたタワーを下げて終了です。
壊れたプーリーです。海の側では給油なしではこうなります。
プーリーの内側のベアリング部の残骸です。
ベアリングです。錆びてボロボロです。
ここまでボロボロにしたのは給油作業を怠った為にほかなりません。他の滑車はベアリング部にグリススプレーを定期的に行なっていたので今でも問題はありません。このプーリーだけスプレーするのを忘れていた為に起きたトラブルでした。
タワー製造社の社長さんの直接の電話指導と部品供給、説明資料送付等、本日快晴にて無事プーリー交換修理完了することが出来ました。
やっと安心してタワーを延ばす事が出来るようになりました。今後はすべてのプーリーに給油作業をおこなう様にします。また、他のべアリング、風車ベアリング、ガイドローラー、リミットSW等へのスプレーやグリスアップも今まで通り継続してゆきます。
終了
TS820-DDS-VFOその4
(2022/1/22 21:03:02)
前よりBCD変換で使ったダイオード、とバッファーICも削除されているためとてもシンプルになります。バンド情報の+B電圧は+9Vですが、抵抗で分圧してESP32DivKitCの入力につなぎます。+3.3Vに電圧を分圧して入力します。他は、前のBCD変換回路とほぼ同じタイマーIC2個とパルス発生ICの回路です。
ESP32DivKitCでのTS820のバンド情報は当初BCDコードに変換する回路にて4ポートでESP32DivKitCに入れていましたが、回路を現実的に組込を考えるとかなり大きな基板となり実現が無理と思われた為、仕様を、BCDコード変換せずにPLL基板から直接11本のバンド選択時の+B電圧出力をそのまま使う方法にし、変換回路部を削減する事にしました。こうする事でハードウェアがかなり減る分、当然製作もかなり楽になります。先ずは回路図をEAGLEでおこしてみました。
前よりBCD変換で使ったダイオード、とバッファーICも削除されているためとてもシンプルになります。バンド情報の+B電圧は+9Vですが、抵抗で分圧してESP32DivKitCの入力につなぎます。+3.3Vに電圧を分圧して入力します。他は、前のBCD変換回路とほぼ同じタイマーIC2個とパルス発生ICの回路です。
ついで、パターンの作成の感を取り戻すため、上記で練習をかねて回路からパターンも起こしています。
まだ、回路自体の動作確認もしてないうちからですので、本当に練習です。ただし、実際にTS820の本体のVFOの横のスペースに収めるサイズの70X100mmにてパターンを作製しました。実験後若干のパターン修正はあるものと見ています。Hi!
また、PLLからの周波数用のB電圧の12本(GND含めて)の出力線をESP32DivKitCの入力ポートに入れる側の回路図を不具合点も修正し今回のDDS−VFO用に作製し直しています。
(不具合点:SI5315Aの出力のピンヘッダーが当初2階建て構造でそのままピンでLPF回路のピンヘッダーに繋ぐつもりで前回作製したが、逆並びとなってしまい上下のピンヘッダーの接続線が交差してしまってた不具合)
動作確認していない回路ですが、パターンも練習がてら作製しました。
昔採った杵柄では無いですが、バンド情報の基板をパターン作製し、次のパターン作製時では、感もあっという間に取り戻せました。特にパターンに線材を使わない様にするために使うジャンパー線の使い方に関しては、本当に上手く出来るようになりました。PCBを切り抜く為の設定も最初やり方を完全に忘れていましたが、EAGLEを触っている内に思い出せました。
ESP32DivKitCの基板の上に載せるLPF回路は、前のシリアル通信型DDS-VFOで使った物と全く同じ回路を使います。(動作実績があります。)
パターンも変更無しです。
回路構成は上記の3回路図で決まりました。あとは実際にブレッドボードで回路部品との配線を行い、ハードが組み上がり次第、ソフトウェアの検討に取り掛かります。ボード用線材が足りないので、既に秋月電子通販に他のICや、セラコン各種合わせて注文済みです。今日発送の連絡がありましたので、恐らく明日辺り届くのではないかと思います。本当に秋月の通販は、到着が速いです。
最初のDDS-VFOのボードは、そのまままだとってあるのですが、今回のBCD変換回路も上手く動作しているので、バラすのはなんとなく気が引けますが、他には小さなブレッドボードしか無いので、今回のTS820本体組込用回路で使用するために部品や配線を取り除く作業を行い次への準備を進めたいと思います。案外動作しているものを壊す感じになるので、動作させるまでの、努力を考えると、壊したくないし、できれば動作した回路として残しておきたいのが本当のところです。
つづく?
TS820-DDS-VFOその3
(2022/1/16 4:31:57)
TS820-DDS-VFO本体の中に組み込む事を今回考えてきたDDS-VFOですが、現状うまく動作してくれているので、少し残念なのですが、実装を考えた場合にこの回路では、基板スペ−スが大きすぎて組込む為にIC類をSOPタイプに変えるとかチップR,Cにするとかのサイズ変更検討が必要になりそうです。特にBCDでの制御ではESP32DivkitCへの出力する為のゲートICの4050のバッファーICも結構スペースを取ります。またバンド検出用のダイオードはとても個数が多い為スペースを取る要因の一つとなっています。直接11ポートのバンド情報をそのまま使う方法ではバンド検出用ダイオードは11本で済みますのでBCD回路のバンド情報検出使用の24本は11本までに減る事によりスペースをかなり減らす事が可能となります。バンド検出トランジスタ以降の2本は同じ回路を使いますので減らせません。タイマーIC2個とパルス発生ICも変更無しで使います。
ふと思い、方針を変える事にしました。今までの方式はバンド情報をBCDの4ポートに変換してESP32DivKitCへのポート使用を減らす事を考えていました。当初全部のバンド情報用にポートを11個をESP32DivKitCに割り当てるのは無理だと思っていましたが、調べてみると直接11ポートを用意できる事に行き着きました。とにかく11ポートが割り当てできればいいので、下記の様に調べた結果を考慮し割り当てしました。特に使用出来ないポートが結構あるので、割り当ては本当に注意しないといけません。TFT液晶、SI5315A、ロータリーエンコーダ、シリアルポートは割り当て済みでの残りのポートで問題なく使えるポートとしての割り当てです。
書き忘れましたが、11個のバンド情報用ともう一つパルス入力のポート割り当ても合わせるとトータル12個のポート割り当てが必要です。
左側がバンド情報用として割り当てたポートです。
右側のIO16にバンド検出時のパルス入力ポートを割り当てました。外部VFOではハムログ用のシリアルポートとして使っていましたが、今回はハムログ用としてのシリアルポートはTXD0とRXD0を割り当てすることにしています。
TS820のバンド情報の11本は設定時バンドポートに+9Vがかかるので4.5Vに抵抗で分圧する回路は同じですがそれ以降がシンプルに検出用ダイオード11本となりまたバッファーICが不要なシンプルな回路となります。分圧されたバンドのポートはESP32DivKitCの上記D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10に直接つながるのでとてもシンプルな回路となります。
前に完成してるTS820本体側のArduinoNANOの回路と同じでESP32DivKitCでも直接ポート11本が繋がる回路となります。ESP32DivKitCでは入力11ポートの電圧分圧で抵抗アレーを使用するぐらいが変更点です。
ESP32DivKitC用の回路図はこれから作成しますが、基板の配置は現状のTS820のVFOのユニット内もしくは、そのスペースにはESP32DivKitCとSI5315Aの基板とTS820と同じLPF基板の2枚を入れ、バンド検出用の基板はVFOの横のスペースに取り付けることで全部で3基板を予定しています。あくまでも今の所の予定です。
LPFは前と同じ実績のあるこの回路基板を使います。
ロータリーエンコーダの取り付けをしての空きスペースに基板が収まるかどうかも見なければなりません。
随分と大きな変更となってしまいますが、実装出来るものでないと何にもなりませんので変更は必然的な事だと思っています。
今のBCD回路は満足に動作してますが、ソフトウェアは直接バンド情報をESP32DivKitCに繋ぐ方法でも4ポートが11ポートに変わるだけですので若干のif文の変更で同じように動作してくれると思っています。また検出原理も同じですから新たに考えるルーチンなどは特にありません。今までと同じ様にコーディングしてゆく事で問題無いと思っています。ソフトウェアより、VFOの位置に置く2枚の基板が上手く収まるかどうかがどちらかと言うと一番重要なポイントになると思っています。久しぶりのeagle
CAD作業です。eagle
CADでの回路図からの基板おこしも適切な基板サイズで収める事が出来るか、感を取り戻して何とか上手くまとめれればと思います。
また、確認で必要な実験用ボード配線も変更しなければなりません。やることが本当、増えてゆきます。
つづく?
バーチカルアンテナの修理2022年1月15日
(2022/1/16 2:01:53)
つい最近のロシアからの寒気団が日本にも降りてきて台風並みの強風が吹き荒れてた為にバーチカルの上方のエレメントが折れていました。折れているのに気づいたのは、最初は1月初頭のニューイヤーパーティで久々にQSOした様に無線で7MHzにオンエアーしようと思い、いつもの様にアンテナのSWRをネットワーク・アナライザ−で確認するため電源を入れ、7MHzのプリセットデータを読みこませ、SWRモードに設定し、バーチカルアンテナを切替器でネットワーク・アナライザー側に繋いでみたところ、共振周波数がやけに高い方へ動いているようで、裾しか見えない状態でした。これはもしかしたらエレメントが折れたんではないかと思い外へ確認しに言った所、予想した通り、先端から1.5mぐらい下のところから折れていました。
早速折れているエレメントを探そうと思い、強風で折れたんなら、少し離れた場所に落下しているだろうと思い、アンテナから10mぐらいの距離の辺りを中心に探してみました。しかし何処にも見当たりません。一体何処に落ちたのだろうと思いながらアンテナの下辺りも探してみましたが、一向に見つかりません。すぐそばに小屋があるので、もしかしたら屋根の上にないかと思い、少し離れて屋根の上も見てみましたが、なさそうです。不思議だな−と思いながら、ふと真下にある柿の木の枝を見た所、枝と枝の間に挟まってるエレメントがありました。飛ばされずに真下に落下して柿の枝に引っかかっていました。案外枝から取り外すのは大変で、少々時間がかかりましたが、釣竿を使い何とか折れたエレメントを枝から下ろす事が出来ました。
先ずは現物を見て、どこが原因で折れたかの確認です。
毎回エレメントのネジ止めしている箇所から亀裂が入り折れるのと同じ状況ですが、今回はかなり上の方の細い部分です。前回2021年2月に折れた箇所は今回は全く問題ありませんでした。前回は、ほぼ原因がわかり対策を行なっていたので、今回は別の弱い箇所で折れたようです。今回は、折れたエレメントを持った時に、およそ見当がつきました。トップヘビーが原因だと思われます。先端部は前回少し長いステンレス棒に変えていました。アルミと比べるとかなり重いエレメントとなった為、しかも長さを長くした事も重なり、しなりが前よりも大きくなり、丁度折れた辺りがしなる箇所となった為、そこの取り付けネジ部に歪みが発生し亀裂ができて折れたと思われます。やはりタッピング用のネジ穴が原因となるようです。これはクリエイトなどのメーカーが行なっているネジ穴固定でなくネジで押さえつけて固定する方法を採用する理由が分かる気がします。ネジ穴は亀裂が入り易く折れる原因の元であることは間違いないです。Hi!このバーチカルはいままですべて折れた箇所はネジ穴で折れていました。クリエイトCL15の5エレ八木アンテナは同じ環境でも20年エレメントは折れたりせず現在までもっています。弱いところはラジエーターのプラスチックホルダーがありますが、太陽光線による劣化とラジエーターエレメントの重量負荷がホルダーの中心にかかる為、劣化が進み弱くなっってくると歪によりヒビがはいってヤジロベーの様に曲がってしまいます。過去2回程修理しています。一度ホルダーをテープをまいて補強しましたが、やはりヒビが入りヤジロベーになっています。ある程度消耗品と考えるのが正解かもしれません。あとはラジエータのホルダーを止める箇所を増やすとかすれば、ラジエータのエレメントの重量荷重がホルダーにかからない様に対策をとれば解決するのではないかと思っています。メーカーさんは余り対策は採りたくないかもしれません。
話がそれましたが、バーチカルの今回の折れた原因の対策はステンレスの棒を別の軽い金属棒に変えないとできない事なので行いません。やりませんが、出来るとするとステーを追加することぐらいでしょうか?とりあえず復旧作業のみということで、強風の回数が少ない事を祈ります。
エレメントの取り付け直し後のテーピング完了写真
修理完了し元の位置に取り付け直したバーチカルアンテナ写真
エレメントが15㎝程短くなった為、バランとアンテナエレメントまでの間の接続銅線を15㎝長くする事で折れた長さを補修対策し、共振周波数をチェックすることにしました。
エレメントを鋼管に取り付けバラン接続完了後、家に戻り7MHzにてネットワーク・アナライザでSWRを確認したところ共振周波数は7.125MHzでSWR:1.0でした。バンド帯域内は1.15以下です。珍しく調整作業することなかったので、修理完了としました。
早速無線室に戻り、テスト運用してみました。OMさん2局(1エリア、2エリア)コンタクト出来ました。まずまずです。
最近はトラブルが発生が多くなってきた感じがあります。長年何もなかったからなおさらトラブルが続くのかもしれません。オーバーホールを考えないといけない物が、考えてみると結構あります。タワーもしかり、アンテナも、無線機も、そして同軸ケーブルも、家の冷蔵庫なんかも最近トランスが唸るような音が出始めてきています。冷蔵庫はオーバーホール出来ないので買い替えとなると、トホホです。!
つづく? トラブルは続かないでほしい!
TS820-DDS-VFOその2
(2022/1/10 11:50:17)
if(digitalRead(CHANG_BAND)==LOW){ // IF pin36 L PULS IN (ordinary H level)
if((((digitalRead(BAND_BCD0)==HIGH) // "1" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==LOW)))){ //1.9MHz :1000
HET_FREQ = HET_FREQ01;
if(p==0){
frq = freq01;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN,HIGH); //13 CHANGE TO USE D0
digitalWrite(LED_BUILTIN1,LOW); //12 CHANGE TO USE D1
digitalWrite(LED_BUILTIN2,LOW); //14 CHANGE TO USE D2
digitalWrite(LED_BUILTIN3,LOW); //27 CHANGE TO USE D3
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "2" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==LOW)))){//3.5MHz :0100
HET_FREQ = HET_FREQ02;
if(p==0){
frq = freq02;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "3" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==LOW)))){//7.0MHz :1100
HET_FREQ = HET_FREQ03;
if(p==0){
frq = freq03;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "4" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==HIGH)
and(digitalRead(BAND_BCD3)==LOW)))){//14.0MHz :0010
HET_FREQ = HET_FREQ04;
if(p==0){
frq = freq04;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1, LOW); //12
digitalWrite(LED_BUILTIN2,HIGH); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "5" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==HIGH)
and(digitalRead(BAND_BCD3)==LOW)))){//15.0MHz :1010
HET_FREQ = HET_FREQ05;
if(p==0){
frq = freq05;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1, LOW); //12
digitalWrite(LED_BUILTIN2,HIGH); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "6" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==HIGH)
and(digitalRead(BAND_BCD3)==LOW)))){//18.1MHz :0110
HET_FREQ = HET_FREQ06;
if(p==0){
frq = freq06;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2,HIGH); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "7" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==HIGH)
and(digitalRead(BAND_BCD3)==LOW)))){//21.0MHz :1110
HET_FREQ = HET_FREQ07;
if(p==0){
frq = freq07;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2,HIGH); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "8" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==HIGH)))){//28.0MHz :0001
HET_FREQ = HET_FREQ08;
if(p==0){
frq = freq08;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1, LOW); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3,HIGH); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "9" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==HIGH)))){//28.5MHz :1001
HET_FREQ = HET_FREQ09;
if(p==0){
frq = freq09;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1, LOW); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3,HIGH); //27
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "10" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==HIGH)))){//29.0MHz :0101
HET_FREQ = HET_FREQ10;
if(p==0){
frq = freq10;
f_dchange = 1;
f_fchange=1;//add 2020Dec12
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3,HIGH); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "11" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==HIGH)))){//29.5MHz :1101
HET_FREQ = HET_FREQ11;
if(p==0){
frq = freq11;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3,HIGH); //27
}
p=1;
つづく?
少し間があきましたが、TS820のバンド情報のBCD変換回路を入力としたDDS-VFOのハードウェアは動作確認の実験完了し、残るはソフトウェアのコーディングです。相変わらずオリジナルは、JF3HZB局UEBO氏のDDS-VFOの素晴らしい公開ソフトウェア、VFOsysを使わさせてただいています。
コーディングしてゆきますが、仕様としては、TS820本体の中にあるアナログ式VFOをデジタル式サブダイアルのVFOsysをモデファイし全バンド対応で組み込む事です。そっくりアナログ式VFOをデジタルDDS-VFO(VFOsys改)で入れ替える事です。全バンド対応とは、サブダイヤルカラー液晶に表示される周波数も本体バンドSWに連動対応させると言う事です。前の外部VFO方式のDDS-VFOでは、TS820本体のバンドSW情報を外部に伝える方法として、独自コマンド仕様のシリアル通信方式を採りました。これも上手く動作してくれていますが、外部VFO用の接続ケーブルとRS−232Cのケーブルが必要でどちらかと言うとシンプルではありません。今回は、バンド情報を直接ESP32
DivKitCにBCDの4ポート化してカラー液晶上に本体バンドSWと連動した周波数を表示させたいと思っています。すべて前の実験回路をそのまま使い、処理はほとんどソフトウェアで行います。
ソフトウェアをコーディングしてゆきますが、前の経験で、バンド情報を単にESP32DivKitCの入力4ポートに入れて、検出をするコードを書いてもソフトウェアでは常にループ検出してますので、一端バンド情報を確認出来て周波数を設定しますが、別の周波数にエンコーダーを回しても、すぐまたループ検出で、初期設定の周波数に戻されてしまいます。これがある為に、ESP32DivKitCに、検出するのは、本体のバンドSWが回された時に発生するパルスがESP32DivKitCのパルス入力検出ポートに来た時だけBCDの入力4ポートの状態を検出するようにしています。
今回はかねて考えていましたTS820本体のバンドSWを回した時のVFOの周波数が各バンドとも同じVFO発振周波数でのバンド周波数表示となる、いわゆるアナログVFOとまったく同じ動作となるようにソフトウェアですべて対応したいと思います。これは同じTRIOのTS130のトランシーバー用に同じVFOsysを使いDDS-VFOを製作していたOM(JA6IRK
ex.JN3XBY)のDDS-VFOの実際の動作動画を見て上記仕様を既に対応されていた事に触発された事もあります。下記ページの中に動作動画が2つありました。
このTS-130のDDS-VFO動作動画を見た時は、どういう風にソフトウェアを組んでいるのだろうか?と言う思いでした。こんな事があって、ある程度頭の中でイメージした上で、私もTS820用本体用のデジタル式DDS-VFOにトライしていると言うわけです。
頭の中でのイメージした事とは次の様な事です。
まず、アナログ式VFOと同じであるという事が、第一です。つまり、ダイヤル指定の周波数でVFOは発振し続けていて、本体のバンドSWが変わってもVFOの発振周波数は変わらない。さすれば、デジタル式のVFOも本体のバンドSWが変わってもVFOの発振周波数は変わらない様にソフトウェアで組めば良いと言うこと、また、第二としては周波数表示だけバンドSWにて変わる様にソフトウェアで組めばよい、この2点を考えてコーディングする様にすれば良いと思ったわけです。VFOsysのカラー液晶には周波数も表示されるので、周波数表示も使うとなると、必然的に考える必要が出て来るわけですね。
今までEEPROM機能を使わない場合は、デジタルVFOではバンドSW情報を受け取ると各バンドの初期設定周波数になりました。今回は電源を入れた時だけ検出の各バンドの初期設定の周波数になりますが、電源が入ったままの状態でダイヤルをまわし周波数を変えたあとに本体のバンドSWを変えても初期設定の周波数にはならずに、アナログVFOと同じ様に設定したダイヤル周波数のまま発振し続け動作する仕様となります。
上記の文中の電源を入れた時だけ検出の各バンドの初期設定の周波数になりますについてですが555タイマーの入力に電源を入れた時に安定後
setup
ルーチン内の最後でLパルスをSTART_ONポートから送出するようにしています。(通常H状態)この555タイマー出力がパルス発生ICのSN74121のトリガーとなりESP32DivKitCのバンド情報検出用入力にLパルスが出力されます。(通常H状態)
■setupルーチンでのLパルス発生
digitalWrite(START_ON,LOW); // 0 Port Preset OUTPUT level "L"
digitalWrite(START_ON,HIGH); // 0 Port START TORRIGGER OUTPUT "H"
digitalWrite(START_ON,HIGH); // 0 Port START TORRIGGER OUTPUT "H"
■loopルーチンでのバンド情報検出は簡単なポートの状態をIF文で”L”を検出します。検出時はBCDの4ポートの状態に合わせてヘテロダイン周波数、初期値周波数、などを設定しています
また、電源初回投入時のみP=0
のルーチン処理で、電源入った後はP=1でのルーチン処理のみとなります。ここがバンドの周波数表示だけがかわりDDS発振周波数は変わらない様にp値で振り分けして対応しました
1.9MHzと3.5MHz.......29.5MHzのバンド情報検出のコードです。
延々とBCD4ポート状態をチェックしてゆく、同じ様なコードが続きます。
//***********************************************************************************************if(digitalRead(CHANG_BAND)==LOW){ // IF pin36 L PULS IN (ordinary H level)
if((((digitalRead(BAND_BCD0)==HIGH) // "1" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==LOW)))){ //1.9MHz :1000
HET_FREQ = HET_FREQ01;
if(p==0){
frq = freq01;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN,HIGH); //13 CHANGE TO USE D0
digitalWrite(LED_BUILTIN1,LOW); //12 CHANGE TO USE D1
digitalWrite(LED_BUILTIN2,LOW); //14 CHANGE TO USE D2
digitalWrite(LED_BUILTIN3,LOW); //27 CHANGE TO USE D3
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "2" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==LOW)))){//3.5MHz :0100
HET_FREQ = HET_FREQ02;
if(p==0){
frq = freq02;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "3" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==LOW)))){//7.0MHz :1100
HET_FREQ = HET_FREQ03;
if(p==0){
frq = freq03;
p=1;
}
else{
if(p==1){
frq = HET_FREQ - 5500000 + o_frq;
p=1;
}
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "4" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==HIGH)
and(digitalRead(BAND_BCD3)==LOW)))){//14.0MHz :0010
HET_FREQ = HET_FREQ04;
if(p==0){
frq = freq04;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1, LOW); //12
digitalWrite(LED_BUILTIN2,HIGH); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "5" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==HIGH)
and(digitalRead(BAND_BCD3)==LOW)))){//15.0MHz :1010
HET_FREQ = HET_FREQ05;
if(p==0){
frq = freq05;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1, LOW); //12
digitalWrite(LED_BUILTIN2,HIGH); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "6" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==HIGH)
and(digitalRead(BAND_BCD3)==LOW)))){//18.1MHz :0110
HET_FREQ = HET_FREQ06;
if(p==0){
frq = freq06;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2,HIGH); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "7" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==HIGH)
and(digitalRead(BAND_BCD3)==LOW)))){//21.0MHz :1110
HET_FREQ = HET_FREQ07;
if(p==0){
frq = freq07;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2,HIGH); //14
digitalWrite(LED_BUILTIN3, LOW); //27
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "8" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==HIGH)))){//28.0MHz :0001
HET_FREQ = HET_FREQ08;
if(p==0){
frq = freq08;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1, LOW); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3,HIGH); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "9" BCD port condition check
and(digitalRead(BAND_BCD1)==LOW)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==HIGH)))){//28.5MHz :1001
HET_FREQ = HET_FREQ09;
if(p==0){
frq = freq09;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1, LOW); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3,HIGH); //27
}
else{
if((((digitalRead(BAND_BCD0)==LOW) // "10" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==HIGH)))){//29.0MHz :0101
HET_FREQ = HET_FREQ10;
if(p==0){
frq = freq10;
f_dchange = 1;
f_fchange=1;//add 2020Dec12
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, LOW); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3,HIGH); //27
}
}
if((((digitalRead(BAND_BCD0)==HIGH) // "11" BCD port condition check
and(digitalRead(BAND_BCD1)==HIGH)
and(digitalRead(BAND_BCD2)==LOW)
and(digitalRead(BAND_BCD3)==HIGH)))){//29.5MHz :1101
HET_FREQ = HET_FREQ11;
if(p==0){
frq = freq11;
p=1;
}
else{
frq = HET_FREQ -5500000 + o_frq;
p=1;
}
f_dchange = 1;
f_fchange=1;//add 2020Dec12
digitalWrite(LED_BUILTIN, HIGH); //13
digitalWrite(LED_BUILTIN1,HIGH); //12
digitalWrite(LED_BUILTIN2, LOW); //14
digitalWrite(LED_BUILTIN3,HIGH); //27
}
p=1;
}
上記を実験しているブレッドボード一式の写真です。(煩雑です。)
次はDDSICへの周波数設定の心臓部となるtask0 ルーチンへのコード対応を予定しています。
つづく?
execution time : 0.122 sec