モールス信号ON/OFFのパルス幅をPICで測定し、USB経由でPCに送信するプログラムを以前作成ました。
前回までは、Curiosity開発ボードに搭載されている PIC16F1619を利用したプログラムでした。
今回は、秋月電気で販売されている「PIC18F14K50使用USB対応超小型マイコンボード」¥800 を使い実現しました。必要となるハードウエアは、写真のようにマイコンボードと、圧電スピーカー、電鍵だけです。これで、自分の送信の癖が客観的に把握できる装置が完成します。
回路図
1 プログラム概要
このプログラムは、Microchip社のソフトウェアライブラリ MLA v2018_11_2 を元に、電鍵のOn/Off時間の測定、サイドトーンの発生機能を追加しました。サイドトーンは500Hz方形波出力で周波数の変更はできません。追加したプログラムコードは前回のプログラムをほぼそのままコピペしています。プログラムでは以下の周辺モジュールを使用しています。
- TMR2
- システムクロックをカウントして、1 mSec 毎に低優先割込みをかけています。この割込み処理の中で、電鍵のチャタリング防止や ON/OFF 時間の測定を行います。
- USB
- MLAの設定をそのまま使用しています。高優先割込みでUSB関連は処理されます。
2 マイコンボードにプログラムを書き込む
プロジェクトをコンパイルした HEXファイル(14K50_CCWT_2_hex.zip)を下のリンクからダウンロードですることができます。その HEXファイルを MPLAB IPE を使用しマイコンボードに書き込んでください。このプログラムは LVP対応ではないためSnapでは書き込めません。PICkit3、PICkit4 などを使用してください。
---> 14K50_CWT_2_hex.zip
3 動作の確認
書き込み終了後に、USBシリアル変換器とPCをUSBケーブルで接続し、CoolTermなどの通信ソフトを立ち上げます。通信ソフトの設定画面で
- 9600 baud,
- 8 bit data,
- none parity,
- 1 stopbit
に設定し接続を有効にします。
電鍵のキーを押すとサイドトーンが聞こえ、CoolTerm画面にパルス幅が表示されます。 PCから半角数字の 4、または、5 を入力すると出力フォーマットを変更することができます。
参考までにプロジェクトを掲載します。
---> 14K50_CDC_CWT.zip