nobcha23のエアバンド受信機自作ブログ DIY airband receiver BLOG

エアバンドレシーバーキットの組み立て、改造を手掛けます Assemble and remodel Chinese airband receiver kit

オリジナルケースにデジタル局発も同居させる(その1) I would like to install digital local oscillator with into the original case(Part1 :New sketch)

中国製エアバンドレシーバーキット改造に取り組んでいます。外部デジタル局発もオリジナルアルミケースに一緒に入れられないかと考えました。

 

まずは表示ですが、SSD1306コントローラ搭載のグラフィック液晶をキャラクタ液晶替わりに使いました。


グラフィック液晶の寸法はちっちゃくて、前面パネルに収まりそうです。またArduinoもPro miniならケースの空いているところに詰め込むことができます。

オリジナルケースの制限から、グラフィック液晶使用、更にスイッチ集約でファンクションスイッチはロータリーエンコーダーだけを使うことにします。

ブロックダイヤグラムは次になります。

 

I'm trying to install a digital local oscillator within the original Chinese airband receiver kit. Accordingly, I shall make up a compact local oscillator circuit with a tiny graphic LCD and Arduino Pro Mini board. To reduce function keys I made the newer sketch by using a Rotary encoder and its push switch operation approaching. Such combination leads to below circuit diagram.

f:id:nobcha23:20210530224245j:plain

ブロックダイヤグラム

 

そのためにスケッチを大幅入れ替えしました。
ファンクションスイッチ関連ではプッシュスイッチ付きのロータリーエンコーダーを採用し、シングルプッシュでファンクション切り替え応答、
ダブルクリックでメモリー書き込みとオートスキャンへの切り替えとする新たな操作方式としました。


1.ロータリーエンコーダー付属プッシュスイッチのONでファンクション切り替え待ち。
FUと選択中のファンクションをLED#13(ハートビート用)切り替えタイミングで切り替え表示

 

2.ファンクション選択中にもう一度プッシュスイッチONすると選択中の機能に切り替わる。
「周波数増減」「ステップ周波数選択」「メモリーチャンネルをREでスキャン呼出」「書き込みメモリーチャンネル選択」

 

3.各ファンクション状態で、プッシュスイッチをダブルON(500ms以内に二回押す)すると各機能で選択中の周波数などをメモリーへ記憶する。
「周波数増減」では周波数を、「ステップ周波数選択」ではステップ周波数を「メモリーチャンネルでスキャン呼出」では自動スキャンモードへ、「書き込みメモリーチャンネル選択」では表されている周波数を選択したメモリーチャンネルへ。
各設定はEEPROMに記録し、次回電源ON時に呼び出される。

 

To utilize the rotary encoder's push switch I adopted a double crick operation. Operation methods are below:

1. When the push switch is on, the machine's going into FUNCTION selection mode by the rotary encoder. The display of function code is blincking displayed by heartbeat timing('#13 LED on/off).

2. Then the rotary encoder's push switch is on, the function is determined temporarily decided.

FUNCTIONs are "Frequency increasing & decreasing", "STEP frequency increasing & decreasing", "Reading out the frequency of the selected memory channel",  and "Writing the frequency on the selected memory channel".

3. Then the rotary encoder's push switch is double click on ( 2 times during 500mS), memory write is performed.  Specially SCAN mode it changes into AUTOMATIC SCAN mode.

SKETCH

 

 

※ ロータリーエンコーダーはベンバクストンさんのLIBを利用してます。PU2CLRリカルトさんのLIBでも引用されています。ただで使っていて、不平言ってもまずいですが、このREのLIBはチャタリングには強いが、動き出しが弱い(チャタリングと判断するみたい)ので回しても応答がちょっと遅れます。コードはシンプルなのですが、まだ読めていません。

今回スイッチのチャタリングを取り、ダブルクリックにも対応するためTIMER関数を作りました。mSベースのタイミングモニターとして今後使えそうです。

 

I'm much thanking Mr.Ben Buxton for his giving Arduino LIB of the rotary encoder.

To avoid to use delay(), I had composed Timer() for semi real-time processing by using millis().

 

 

 

 

追伸

いつもだと、回路ができてからスケッチに取り掛かるんですが、今回はまずスケッチができて、次にSSD1306を中国製エアバンドレシーバーキット用ケースに入れる検討をしています。SSD1306LCDは取り付け穴とかが無くて、どうして取り付けるか、ケース開口部をどうするかなど逡巡中。Pro Miniの取り付けもどうするかです。