CDC - Basic を応用して赤外線リモコンの受信データをUSBでPCに送るものです。
PICのペリフェラルは以下の用途に使用しています。
- Timer1
- 信号の継続時間測定に使用
3MHzをカウントするので1/3 で、1us単位となる。
22msでカウントアップし割込みが入る。割り込み(Carry)もカウントし、1s以上になると、無信号 Gap として表示処理される。
- 赤外線信号
- RB7で常にモニタしその変化で割込みがかかる
割込み毎にTimer1リセットされる
動作の確認
- PCとPICをUSBケーブルで接続します。
回路を初めてPCのUSBに接続すると、自動的にUSBのドライバーがインストールされますが、インストールには、この機器の定義ファイルが必要です。
Microchip社のCDCソフトウエアをそのまま使用しているので、Microchip社の定義ファイルを使用してください。
- 通信ソフトを起動し,赤外線リモコンをこの赤外線センサーに向け、リモコンのボタンを押します。
- 赤外線のON/OFFの時間を測定し、USB CDC接続でPCにデータを送ります。
赤外線信号が2ms以上継続すると、データが送信開始されたと判断します。それ以降はデータとしてMark,Space継続時間を配列に収集。データ信号が変化するごとにTimer1はリセットされます。
プログラム
このプログラムはMicrochip社のUSBライブラリ(v2014_07_22)に収録されている「cdc_basic」をもとにして、赤外線受信部分を追記しています。 主な変更ファイルは:
- system.c :
- 割込み処理に APP_Interrupt() を追加している
- usb_config.h:
- #define USB_POLLING に変更している
- app_device_cdc_basic.h
app_device_cdc_basic.c:
- 赤外線関連プログラムの主体
Microchip社の定義ファイル inf.zip |
|
プロジェクトファイル B04_cdc_IrRx.zip |
|