赤外線リモコン解析

H8-3069Fを購入したのに、まずはOSから離れてしまったのには、わけがあります。
ネットで情報をあさっていて、H83069Fさんのサイト(http://www.geocities.jp/h83069f/index.html)
をみると、赤外線リモコンの回路が載っている。簡単、しかもデバイスが安い。
赤外線LEDや赤外線受信モジュールが、100円だなんて知らなかった。さっそく購入して、扇風機を動かすぞ。
赤外線リモコン受信モジュールPL-IRM1261-C438(I-04169,¥100)
赤外線LED[5mm][940nm][55mW/sr]OSI5LA5113A(10個入)(I-04311,¥100)
最終的な回路は以下の通りというか、上記のサイトとほぼ同じ。
赤外線リモコン回路図
プログラムも上記のサイトを参考にして、YAMAZANの扇風機のリモコンコードを解析してみた。
ググった情報では、赤外線リモコンのフォーマットは、基本的にNEC式、家電製品協会式、ソニー式らしいが、リーダもないし、データのコード化も合わない。スキャンに誤差があるのかと、プログラムをソフトスキャンから、irq4割り込みに変更してみたが、やはり同じデータが得られた。ソニーのリモコンを解析するとソニー方式のパターンになっている雰囲気なので、とりあえずパルス・フォーマットをべたコピーして送信したら、扇風機がちゃんと動いた。書くとあっさりしているが、ほんとに動くのか疑心暗鬼のなかで、はじめて動いたときは感激した。あとで、送信プログラムをいろいろ調整してみると、搬送波の周波数もデューティ比も結構シビアで、試行錯誤で動いたのはラッキーだったと思った。
解析というより、パルスのコピーなので、最終的に16ビットタイマのインプットキャプチャ割り込みを使って、自分的にはカッコよく書き直してみた。これが、簡単にできるMESシステムと開発環境に改めて感激。

// 赤外線リモコン解析プログラム by K Fujio 2012
// 解析には16ビットタイマー1を8分周して使用します。
// カウントはインプットキャプチャ割り込みで取り込みます。
// タイマのオーバーフロー(約26ms)か、DATASIZE/2サイクルで終了します。
// ただし、最低1回の赤外線信号がなければ終了しません。
// タイマが競合しないならMESの割り込みは止めなくてもたぶん大丈夫。
#include <mes2.h>
#include <h8/reg3067.h>
#define DATASIZE 500
static unsigned short int p_value[DATASIZE];
static unsigned short int count;
#pragma interrupt
void int_imia1(void){
load_segment(28);
if(count

コメント