ダイキン製のエアーコンディショナーのON(冷房)、OFF機能だけを持つ赤外線リモコンを作成します。
赤外線リモコンに関しては、tomcatなるサイトが有名です(アセンブリ言語です)。ここでは、赤外線を変調する部分はそのまま(アセンブリ言語のまま)用いることとし、その他の部分はC言語(XC8)を用いることにします。赤外線変調はC言語で行うことが難しいのです(きちんとした時間幅を持つパルス列を作ることが難しい)。アセンブリ言語とC言語の混合ファームウェアを作るための参考になればと思います。また、SLEEP関数とInterrupt-on-Change割り込みの使用法も参考になると思います。
回路図を以下に示します。電源電圧VDDは3Vです。
次の写真は実際のPIC回路です。
1.MPLAB Code Configurator(Classic)をインストールしていない場合はMPLAB Code Configurator(Classic)の導入を参照してインストールしておきます。
2.PICに書き込むファームウェアは1840_IR_DAIKIN.X.zipです。3.1840_IR_DAIKIN.X.zipを解凍して出てくる1840_IR_DAIKIN.XフォルダーをMPLABXProjectsフォルダー(私の場合はC:\Users\yts\MPLABXProjects)の中に入れ、 MPLAB X IDEにてPIC12F1840にファームウェアを書き込みます。
4.回路図でのSW1を押すとエアコンがON、またSW2を押すとエアコンがOFFとなります。
1.ダイキンのリモコンでは、1回の送信でエアコンの持つすべての機能を一度に設定しています。そのため、ON(冷房)、OFF機能だけに特化するといっても、ON(冷房)、OFF機能以外の機能も同時に設定する必要あります。ON(冷房)、OFF機能以外の機能設定は個々人で違うと思います。違う場合はファームウェア(main.cの中の配列tx_dataの値)を書き換えてください。なお、送信フォーマットについてはEH500_Kintarou氏のホームページが参考になります。
2.アセンブラファイルに対してコンパイル最適化を行わないようにします。最適化を行うと、タイミングが狂い、ファームウェアが正常に作動しません。具体的には、以下の図のように、Project Propertiesウィンドウ( MPLAB X IDEにてプロジェクト名の箇所をマウスで右クリックしてサブメニューを出し、サブメニューの一番下のPropertiesを選択すると現れる)にて、CategoriesでX8 compilerを選択し、Option CategoriesでOptimizationsを選択します。そして、アセンブラファイルに対してコンパイル最適化を適用しないようチェックボックス(図の赤矢印の所)のチェックを解除します。
下の写真はリモコン化したPIC回路です。上述のPIC12F1840回路を用いてPICにファームウェアを書き込んだ後、PICを外し、このPICを使用して回路を作って行きます。上記回路図中のJP1、C1(0.1μF)、R1(10KΩ)は不要です。また、リセットは不要なのでPICの4番ピン(リセットピン)はVDDに接続します。電池はVARTAのCR2450タブ付きで、ケースはTAKACHIのPS-85Wです。なお、コイン電池の場合、それと並列に470μF以上の容量の電解コンデンサーを入れます。