PIC16F1459の基本動作から応用プログラムまでを学びます。

ホーム
16F18313
16F18325
16F18346
16F1619
Curiosity
---
---
    
12F1822
16F1455
16F1459
18F14K50
18F26J50
dsPIC
その他
USB - CDC 赤外線受信

CDC - Basic を応用して赤外線リモコンの受信データをUSBでPCに送るものです。

PICのペリフェラルは以下の用途に使用しています。

Timer1
信号の継続時間測定に使用
3MHzをカウントするので1/3 で、1us単位となる。
22msでカウントアップし割込みが入る。割り込み(Carry)もカウントし、1s以上になると、無信号 Gap として表示処理される。
赤外線信号
RB7で常にモニタしその変化で割込みがかかる
割込み毎にTimer1リセットされる

動作の確認

  1. PCとPICをUSBケーブルで接続します。
    回路を初めてPCのUSBに接続すると、自動的にUSBのドライバーがインストールされますが、インストールには、この機器の定義ファイルが必要です。
    Microchip社のCDCソフトウエアをそのまま使用しているので、Microchip社の定義ファイルを使用してください。
  2. 通信ソフトを起動し,赤外線リモコンをこの赤外線センサーに向け、リモコンのボタンを押します。
  3. 赤外線の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