本年もよろしくお願いいたします。
ハードウェアの見た目はそのままですが、VFOもどきGUIを作ってみました。
VFOというとこのくらいの機能が欲しいところですが、ハード側で実現しようとすると大変なのでPC側でなんとかしました。
ハードウェアは微調整しました。
ログアンプの傾きはデフォルトでは25mV/dBですが、これはIC内部の抵抗が12.5kΩの時の値です。
出力に10kΩをパラに入れると、12.5kΩとの合成抵抗は5.55kΩとなり、傾きは2倍して11.1mV/dBのようです。
これに伴いArduinoのAD変換のリファレンスを1.1Vにしました。
また、単発の周波数設定用にfコマンドと、AD変換値送信用にgコマンドを追加して、今回の「VFO(も)」に対応しました。
VFOでの使用を意識してfコマンドの確認用のレスポンスは無しにしました。
画面です。
![](https://blogimg.goo.ne.jp/user_image/6c/56/d7b0112af89335bf450d144c3abca4af.jpg)
以下、使い方を忘れた時のためのマニュアルです。
<シリアル接続>
滅多に変更することがないので、プログラム内で「COM6」固定です。
USBシリアル変換ICの環境が変わったら修正する必要があります。
DDSに接続し、応答があると青線が出ます。
#Arduinoの自動リセットには時間がかかります。
<表示>
「A」「B]:
VFOの周波数です。単位はHzで、MHz、kHzの位置に線を入れてあります。
白字が選択されているVFOです。
<ボタン>
[↑][↓]:
選択されているVFOを「Step」単位でup/Downします。
マウスのホイールでも同様にup/Downします。
[A/B]:
VFOのA/Bを切り替えます。
[B=A]:
VFO Bの周波数をVFO Aと同じにします。
[FIX]:
ステップ周波数の桁で四捨五入します。
[Po]:
ログアンプの出力をバーグラフで表示します。
[END]:
終了ボタンです。
<周波数入力枠>
周波数を入力します。小数点の使用もできます。
単位はkHzかMHzを選択します。
[A][B]:
それぞれのVFOに周波数を設定します。
VFOの選択は切り替わりません。
[+][-]:
ヘテロダイン用にオフセット周波数を設定します。
VFOの表示は変わりませんが、DDSへ設定する周波数が下の式で変換されます。
[+]:入力周波数+VFO周波数
[-]:入力周波数-VFO周波数
設定すると、右側に変換式が表示されます。
もう一度押すと、オフセット設定が解除されます。
<ステップ周波数枠>
選択されているステップ周波数が表示されます。
[<<][<][>][>>]:
以下でプリセットされているステップ周波数を切り替えます。
1, 5, 10, 50, 100, 200, 500, 1000, 2000, 5000, 9000, 10000, 12500, 20000, 25000, 50000, 100000, 200000, 250000, 500000, 1000000
[<<][>>]は2倍速で切り替えます。
単位はHzなので、1Hzから1MHzまでです。
ステップ周波数切り替えボタンの下に、オフセットの設定式が表示されます。
[A]で10MHzに設定しました。
![](https://blogimg.goo.ne.jp/user_image/4b/31/11ea7cfa4f80dc856f3efe475d360b60.jpg)
[A/B]でVFO Bに切り替えました。
![](https://blogimg.goo.ne.jp/user_image/09/1c/3eadac5f910665bf34ccdb2ce7f7f88d.jpg)
[FIX]で周波数が半端なので四捨五入しました。
![](https://blogimg.goo.ne.jp/user_image/4c/d7/2b0d509d28bf8c6361c28e4ecbef8adc.jpg)
[B=A]でVFO BをVFO Aと同じにしました。
![](https://blogimg.goo.ne.jp/user_image/75/c3/8287137cbbb5d0c30c5b3a7c3b7922a4.jpg)
[↑]で周波数を10kHzUpしました。
![](https://blogimg.goo.ne.jp/user_image/71/45/64d3895f08a75c969321de6f18dd6332.jpg)
[Po]でログアンプの出力を表示しました。dBm表示とバーグラフで表示します。
![](https://blogimg.goo.ne.jp/user_image/2a/57/99eb22a2eec0000a7950b5fdc8d00873.jpg)
入力周波数に「5MHz」を設定しました。
#バグ発見。「Po」のPの一部が消えていません。(修正済み)
![](https://blogimg.goo.ne.jp/user_image/18/c6/86617909958d6d33aca9bb686bcb2174.jpg)
[A]でVFO Aに設定しましたが、選択はされません。
![](https://blogimg.goo.ne.jp/user_image/08/be/35462c385601aebcb1846dd898504aaf.jpg)
[+]でDDSに出力する周波数を5MHz加算するように設定しました。
![](https://blogimg.goo.ne.jp/user_image/75/93/266d0cc522f642a4ff49e2cf4657d760.jpg)
[-]で15MHzからVFO周波数を減算してDDSへ出力する設定にしました。
![](https://blogimg.goo.ne.jp/user_image/63/21/72cf191736ecd6d8fbe5450e0a22175c.jpg)
[<]でステップ周波数を9kHに設定してみました。
ハードウェアの見た目はそのままですが、VFOもどきGUIを作ってみました。
VFOというとこのくらいの機能が欲しいところですが、ハード側で実現しようとすると大変なのでPC側でなんとかしました。
ハードウェアは微調整しました。
ログアンプの傾きはデフォルトでは25mV/dBですが、これはIC内部の抵抗が12.5kΩの時の値です。
出力に10kΩをパラに入れると、12.5kΩとの合成抵抗は5.55kΩとなり、傾きは2倍して11.1mV/dBのようです。
これに伴いArduinoのAD変換のリファレンスを1.1Vにしました。
また、単発の周波数設定用にfコマンドと、AD変換値送信用にgコマンドを追加して、今回の「VFO(も)」に対応しました。
VFOでの使用を意識してfコマンドの確認用のレスポンスは無しにしました。
画面です。
![](https://blogimg.goo.ne.jp/user_image/6c/56/d7b0112af89335bf450d144c3abca4af.jpg)
以下、使い方を忘れた時のためのマニュアルです。
<シリアル接続>
滅多に変更することがないので、プログラム内で「COM6」固定です。
USBシリアル変換ICの環境が変わったら修正する必要があります。
DDSに接続し、応答があると青線が出ます。
#Arduinoの自動リセットには時間がかかります。
<表示>
「A」「B]:
VFOの周波数です。単位はHzで、MHz、kHzの位置に線を入れてあります。
白字が選択されているVFOです。
<ボタン>
[↑][↓]:
選択されているVFOを「Step」単位でup/Downします。
マウスのホイールでも同様にup/Downします。
[A/B]:
VFOのA/Bを切り替えます。
[B=A]:
VFO Bの周波数をVFO Aと同じにします。
[FIX]:
ステップ周波数の桁で四捨五入します。
[Po]:
ログアンプの出力をバーグラフで表示します。
[END]:
終了ボタンです。
<周波数入力枠>
周波数を入力します。小数点の使用もできます。
単位はkHzかMHzを選択します。
[A][B]:
それぞれのVFOに周波数を設定します。
VFOの選択は切り替わりません。
[+][-]:
ヘテロダイン用にオフセット周波数を設定します。
VFOの表示は変わりませんが、DDSへ設定する周波数が下の式で変換されます。
[+]:入力周波数+VFO周波数
[-]:入力周波数-VFO周波数
設定すると、右側に変換式が表示されます。
もう一度押すと、オフセット設定が解除されます。
<ステップ周波数枠>
選択されているステップ周波数が表示されます。
[<<][<][>][>>]:
以下でプリセットされているステップ周波数を切り替えます。
1, 5, 10, 50, 100, 200, 500, 1000, 2000, 5000, 9000, 10000, 12500, 20000, 25000, 50000, 100000, 200000, 250000, 500000, 1000000
[<<][>>]は2倍速で切り替えます。
単位はHzなので、1Hzから1MHzまでです。
ステップ周波数切り替えボタンの下に、オフセットの設定式が表示されます。
[A]で10MHzに設定しました。
![](https://blogimg.goo.ne.jp/user_image/4b/31/11ea7cfa4f80dc856f3efe475d360b60.jpg)
[A/B]でVFO Bに切り替えました。
![](https://blogimg.goo.ne.jp/user_image/09/1c/3eadac5f910665bf34ccdb2ce7f7f88d.jpg)
[FIX]で周波数が半端なので四捨五入しました。
![](https://blogimg.goo.ne.jp/user_image/4c/d7/2b0d509d28bf8c6361c28e4ecbef8adc.jpg)
[B=A]でVFO BをVFO Aと同じにしました。
![](https://blogimg.goo.ne.jp/user_image/75/c3/8287137cbbb5d0c30c5b3a7c3b7922a4.jpg)
[↑]で周波数を10kHzUpしました。
![](https://blogimg.goo.ne.jp/user_image/71/45/64d3895f08a75c969321de6f18dd6332.jpg)
[Po]でログアンプの出力を表示しました。dBm表示とバーグラフで表示します。
![](https://blogimg.goo.ne.jp/user_image/2a/57/99eb22a2eec0000a7950b5fdc8d00873.jpg)
入力周波数に「5MHz」を設定しました。
#バグ発見。「Po」のPの一部が消えていません。(修正済み)
![](https://blogimg.goo.ne.jp/user_image/18/c6/86617909958d6d33aca9bb686bcb2174.jpg)
[A]でVFO Aに設定しましたが、選択はされません。
![](https://blogimg.goo.ne.jp/user_image/08/be/35462c385601aebcb1846dd898504aaf.jpg)
[+]でDDSに出力する周波数を5MHz加算するように設定しました。
![](https://blogimg.goo.ne.jp/user_image/75/93/266d0cc522f642a4ff49e2cf4657d760.jpg)
[-]で15MHzからVFO周波数を減算してDDSへ出力する設定にしました。
![](https://blogimg.goo.ne.jp/user_image/63/21/72cf191736ecd6d8fbe5450e0a22175c.jpg)
[<]でステップ周波数を9kHに設定してみました。
![](https://blogimg.goo.ne.jp/user_image/78/62/a73a49c43a94b530819ae5f31609abcb.jpg)