ブログパーツUL5

テスト用のワンキー送信機

 赤外線リモコン解析器2で解析できたので、写真のようにPIC12F975とLEDとキーだけの簡単なワンキーの送信機を製作してみました。解析データから多少のチューニングが必要です。
 サンプルプログラムに習って、ROBOZAK用のリモコンコードを1つだけ組んでみました。見事に、「1」に登録してある「お辞儀」のモーションが動作しました。これで、赤外線リモコン解析器2の解析が有効であることが判りました。

 フリーソフトのソフトオシロで波形も見てみましたが、オリジナルの波形と同じで問題なさそうです。

(1)ROBOZAKの純正リモコン

コード分析の結果
スタートビットHi:159
スタートビットLo: 32
データビットHi:31〜29
データビットLo:16〜14
データビット長:12bit


(2)テスト用ワンキー送信機
 上記の製作したワンキーリモコンで、これも余り物で作ってみました。赤外線LEDは入らないリモコンのものを再利用しました。この時に電流制限抵抗が1Ωだったのには驚きましたが、パルスなので熱問題はなさそうです。ここではPICマイコンのドライブ能力の関係から33Ωにしておきました。


(3)学習リモコン送信機

 bit数は正しいのですが、左のようにコードが最初から出力コードがおかしいようで、プログラムを解析して修正しないと駄目なようです。やっばり学習して記録するというのは動作が不安定なのでしょうか。
 最悪の場合、コードがわかったのでプログラムに盛込んでしまう方がよいかもしれません。以前より1歩前進したようです。


【テスト用プログラム】テストするために利用したCプログラムです。

/*   Infrared controller PIC12F675   */

#include

__CONFIG(
INTIO
& UNPROTECT
& BORDIS
& MCLRDIS
& WDTDIS
& PWRTEN
);

__IDLOC(F675);
#define SW GPIO0
#define IR GPIO4

#define RH 159
#define RL 32
#define TH 15
#define SH 30
#define SL 15
#define N 12

const unsigned char sig[N] = {
0,1,0,1,0,0,0,0,
0,0,0,0
};

/* 38KHz */
void shot(unsigned char s){
IR = s;
NOP(); NOP(); NOP();
NOP(); NOP(); NOP();
NOP(); NOP(); NOP();
IR = 1;
}

void main(void){

unsigned char i;

CMCON = 0b00000111;
ANSEL = 0b00000000;
GPIO = 0;
TRISIO = 0b00000001;
WPU = 0b00000001;
GPPU = 0;
OPTION = 0b00000100;

IR = 1;

while(1){

while(SW);

//Start bit H
TMR0 = 0;
while(TMR0 < RH) shot(0);
//Start bit L
TMR0 = 0;
while(TMR0 < RL) shot(1);

for(i = 0; i < N; i++){

//Data bit H
TMR0 = 0;
while(TMR0 < TH) shot(0);
//Data bit L
TMR0 = 0;
if(sig[i])
while(TMR0 < SH) shot(1);
else
while(TMR0 < SL) shot(1);
}

//Stop bit
TMR0 = 0;
while(TMR0 < TH) shot(0);
}
}
0

    コメント
    コメントする








       
    この記事のトラックバックURL
    トラックバック

    カレンダ

         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    << September 2017 >>